金色荐读 | Schnorr签名哪里好? 2020年比特币可能为它软分叉

2020-04-07 21:26:31    /    来自:金色财经

金色财经推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读。

正如我们在“BTC第三次减半全解读”中所说,比特币在2020年值得关注的一个进展就是Schnorr/Taproot软分叉,计划的这次分叉将包含三个比特币改进协议BIP 340、341和342。我们将对这三个BIP进行系列解读,本期金色硬核(Hardcore)解读BIP340,主要是Schnorr签名。enjoy it

2020年1月21日,开发者Pieter Wuille提交请求,要求比特币进行下一个软分叉升级。这一请求意味更多开发人员将检查代码。这对比特币而言意义重大,因为意味着这些协议整合进比特币协议中更进了一步。这些升级被称为比特币改进协议BIP340、341和342,其中包括Schnorr签名,Taproot和Tapscript。

这三个BIP,代表了迄今为止比特币最大的升级,也是两年前隔离见证(SegWit)激活后的第一次升级。三个协议捆绑在一起升级,对比特币的功能、可扩展性和隐私性具有显著的改进。

这一次软分叉的激活方法正在讨论中。BIP没有规定网络升级的确切方法。BIP 340–342所述的升级最早可能在2020年冬季实施,当然可能需要更长的时间。

作为本系列的第一篇文章,我们将解释比特币交易的工作原理,介绍比特币使用的脚本系统,概述Schnorr签名以及BIP 340的优点。未来两篇文章将介绍Taproot(BIP 341)和Tapscript(BIP 342),请关注金色硬核。

比特币如何进行交易

比特币交易不是基于大家可能比较熟悉的如银行交易那样的账号余额形式进行的。

相反,比特币交易基于未花费交易输出(UTXO),由输入和输出组成。每个UTXO与一个私钥及交易数据相关联。当你进行比特币转账时,你是在转让UTXO的所有权,你需要通过加密签名证明所有权。

UTXO由比特币脚本标记,该脚本描述了花费策略,这些脚本包含了一笔交易的指令列表,说明某个比特币的新所有者如何使用它们。通过使用Script编程语言,交易可以包含许多条件,其中包括多重签名(multi-sig)方案。

一笔交易的输入是UTXO要花费掉的 ,而输出是交易创建的UTXO 。比如,当你创建新的比特币交易时,你将使用自己拥有的一组UTXO,并提供证据证明你拥有这些比特币。要签署和授权交易,你需要提供与私钥相关联的数字签名,以证明你是所有者。

交易的输出包含两个元素:比特币数量和锁定脚本(或scriptPubKey),该脚本通过限定花费某些输出的条件来锁定比特币数量。锁定脚本会将输出锁定在特定的比特币地址,该地址将比特币的所有权转让给新的所有者。

新的所有者通过提供解锁脚本(或scriptSig)以及与其私钥相关联的签名来解锁输出,然后花费这些比特币。解锁脚本是下一笔交易输入的一部分。

为了确保你不会花费你不拥有的UTXO,比特币客户端通过执行脚本来确认交易。每个输入中的解锁脚本与相应的锁定脚本一起执行,以查看是否满足花费条件。全节点跟踪并验证全部UTXO集,从而确保每个人只能花费他们自己拥有的比特币。

举例来说明

下图说明了比特币交易的工作方式。

Alice想付给Bob 1个BTC,为此,她使用Bob的公共地址创建了一笔交易。为了转移比特币,Alice提供了她的数字签名(由私钥和交易数据历史产生),以证明她在UTXO集中拥有至少1个BTC,同时没有泄露她的私钥。

比特币典型交易的可视化

作为交易的一部分,只有Bob可以解锁锁定脚本。交易转账后,UTXO便被转移,并将其添加到比特币区块链中。通过提供签名,Bob可以解锁锁定脚本(或scriptPubKey),并且可以将UTXO用作下一笔交易的输入。

比特币交易最常见也是最基本的形式是使用“ 付款至公钥哈希”(P2PKH)脚本。比特币的脚本语言使用命令(或函数)来确定每笔交易记录的指令以及更复杂的交易。它们被称为操作码(OP_CODE),使我们能够设置某些条件来转移比特币的所有权。

例如,多重签名方案(简称multi-sig)可以指定5个参与者中必须有3个参与者提供签名才能花费比特币。另一个示例是时间锁(例如nLockTime)的使用,将比特币锁定到将来指定的某个时间点。

另一种高级的交易类型是支付到脚本哈希(P2SH),它允许付款方将资金转入到任意有效脚本的哈希中。P2SH的例子包括多重签名和非原生SegWit交易。此外,可以组合几个花费条件来创建复杂的智能合约

P2SH交易中的锁定脚本现在被“赎回脚本”(redeem script)替换。当比特币的所有者花费它们时,所有脚本都会显示出来,以及锁定比特币脚本的解决方案。使用区块链中脚本的哈希,任何人都可以检查花费这些比特币的脚本条件。

P2SH地址以“ 3 ” 开头,而P2PKH地址以“ 1 ” 开头。P2SH交易的一个缺点是它们会揭示多重签名中所有可能的条件和身份。

从上图比特币富豪排行榜中,我们可以轻松区分P2PKH和P2SH地址。上面“ 3”开头的地址被标识为多重签名地址(3-of-5和2-of-3)。以“ 3”开头的地址也可以是SegWit脚本或Lightning Network客户端。以“ 1”开头的地址是P2PKH地址,并且未启用SegWit。

一旦花掉比特币,P2SH交易会显示整个脚本,因此网络参与者可以发现满足他们条件的所有不同方式(从而可以区分多签名交易和P2PKH交易)。网络参与者也可以推断出使用了哪种钱包。

在可扩展性方面也有一个缺点:复杂的脚本具有更大的交易数据,需要在区块链上占有更多空间(导致更高的交易费用)。

Schnorr签名(BIP 340)

Pieter Wuille提出的三个BIP中的第一个是BIP 340,提出了针对比特币的、更有效的数字签名方案:Schnorr签名。

什么是Schnorr签名?

正如前面关于比特币交易如何工作的部分所述,脚本语言控制着比特币的花费,并使用数字签名来转移比特币的所有权。比特币使用椭圆曲线数字签名算法(ECDSA)来验证加密签名(该算法不原生支持多签交易的,导致了2012年P2SH交易的标准化)。

简而言之,Schnorr签名方案是一种更有效的签名方案。该签名方案是由Claus-Peter Schnorr在1989年开发的,直到2008年专利才过期。

Schnorr建立在“ 隔离见证”之上,该见证于2017年8月在比特币上激活,以解决可延展性( malleability)问题。SegWit将所有脚本和签名数据移至“见证”部分。见证是交易的一部分,作为一个单独结构,不再包含在输入列表中。

让我们看一下Schnorr的主要属性以及对比特币的好处。首先,我们看一下密钥聚合,它具有线性属性。

密钥聚合

Schnorr的主要好处涉及多重签名交易。

Schnorr签名是线性的,因为它们可以加或减。对公钥进行加法(或减法),等同于对应的签名的加法或减法。而ECDSA并不具有这个特性,加或减ECDSA的数字签名是没有意义的。

因为线性特性,Schnorr可以密钥和签名聚合。聚合意味着我们可以将多个公钥组合为一个,因此所有方只需要一个签名。通过对输入的密钥求和,它们被汇总为一个签名,每个签名者贡献部分签名。

下面的方程式通过Schnorr的线性特性说明了如何聚合。除了参与者之外,没有人知道在公共密钥/签名后面有三个人。

3-of-5的多重签名是如何工作的。观察者可以识别a)这是一个多签设置,和b)多签背后的公共密钥。

M-of-n多签交易至少需要M个签名者(并且每个签名都需要验证),并且要证明对多签密钥的UTXO的所有权,scriptSig(或解锁脚本)必须包含M个ECDSA签名。scriptSigs的大小根据M个签名呈线性增长,这增加了这些交易的大小(也增加了交易费用)。

同样,观察者将知道A,B和C签名了交易,并且他们还可以识别所使用的多签设置。

但是,使用Schnorr,M个签名被聚和到单个签名中。一旦提供了阈值公钥和阈值签名,该交易即被授权,并且在观察者看来就像正常的P2PKH交易。

Schnorr进行3-of-5多签交易。观察者无法识别这是一个多签设置,只能将聚合的签名/公钥链接到交易。

Schnorr使我们只需为所有M方提供一个签名。解锁脚本将只需一个代表参与者签名集合的签名。观察者不能再将交易签名链接到个人。

尽管地址和交易金额仍然是公开可见的,但Schnorr本身使钱包/用处的识别变得更加困难(两者均可用于交易分析)。

Schnorr的加法或减法可以进一步产生新的有趣的应用程序。一个例子是无脚本脚本(Scriptless Scripts),这是一种在比特币上执行智能合约的方法。无脚本脚本依靠Schnorr的线性属性创建适配器签名(adaptor signatures),从而允许原子交换。

下表显示了无脚本脚本原子交换的优点。

比特币现金开发人员已经看到Schnorr签名的价值,并将其部署到它们协议中。

不使用复杂花费策略的普通用户,将很难注意到新的Schnorr签名方案(SegWit地址中的一个字符除外)。它们不会替换比特币中的ECDSA签名(两种签名方案将并存)。就像SegWit一样,一旦实施,钱包开发人员/用户须采用Schnorr才能收到好处。

在下一篇,我们将研究Schnorr签名与Taproot(BIP 341)的结合,如何为比特币提供更好的隐私性和可扩展性。

原文:How will Schnorr Signatures Benefit Bitcoin?

https://medium.com/interdax/how-will-schnorr-signatures-benefit-bitcoin-b4482cf85d40

声明:本站内容均采集自互联网,作品版权归原创作者所有。所有展现内容均以传递信息为目的,不代表本站同意其观点,不作为任何投资指导。币圈有风险,投资需谨慎!
延伸阅读