目录
众所周知,比特币应用“椭圆曲线数字签名算法”(简称“ECDSA”)来执行所有权。通过该算法,用户使用一个数字(即私钥)即可衍生公钥。
神奇之处在于,从私钥能轻而易举地获取公钥,反向操作则无法实现。私钥是进入比特币网络的通行证,能够生成接收代币的地址,并让用户在后期花费代币。
在本文中,我们将了解ECDSA的替代方案,即Schnorr签名算法,以及其即将为比特币带来的振奋人心的改变。
数字签名的运行原理与传统手写签名类似,但安全更有保障。任何人花费一些精力和时间都能伪造手写签名。但就算历经数十万年都难以攻破强大的数字签名。
数字签名拥有诸多用例。常见的是向公众传达特定消息。如前文所述,通过私钥(需保密的一串数字)即可创建公钥,而这个过程使用secp256k1曲线的复杂数学运算就能完成。接下来,通过公钥还能生成公共地址。
请注意,公钥对外分享绝对安全。公钥发布在个人网站或Twitter的个人简介中,他人可验证发布者的身份。同样,公共地址可以分享给他人,以便接收他人发送的加密货币。
通过私钥即可创建个人数字签名。撰写信息并通过私钥执行操作就能创建签名信息。任何人把签名信息与个人公钥进行比较,以检查签名的真实性。
这又与比特币有什么关联呢?其实,所有比特币交易均内含数字签名信息,表明“我正在发送此前接收到的代币”。当信息发送至网络的其他节点,节点核实ECDSA签名是否与之匹配。如果不匹配,节点将驳回信息。
Schnorr签名则属于截然不同的机制,其运行方式类似于目前使用的椭圆曲线数字签名算法,但优点更为突出。事实上,Schnorr签名早于ECDSA问世,因此很多人好奇,为何该机制一开始没有在比特币中应用。
一种合理的解释是,该机制的发明者Clasu P.Schnorr申请了专利。专利于2008年初,即比特币白皮书发布之前到期,但该机制当时尚未全面标准化。所以,中本聪选择了更获广泛接受的开源ECDSA。
相比其他机制,Schnorr签名简单得多。因此,也比其他备选机制更安全。Schnorr签名乍一看似乎意义并不大,但却有另一个强大特性:线性。
通俗来讲,拥有该特性的机制更适合于某些操作,尤其是多重签名交易。众所周知,比特币已支持多重签名,但效果不尽如人意。
用户创建多重签名地址时,资金发送方无需了解用户设置的花销条件,甚至不知道自己正在向多重签名设置发送资金,地址唯一的特别之处在于以“3”开头。
但是,在需要转移资金时,就会显露其本质。假设有人与Alice、Bob 3人同时使用设置。一人花费5枚比特币必须由三人同时提供公钥和有效签名。如有资金转出地址,通过查看区块链,整个网络都会了解到这个情况。
从隐私角度出发,这种模式并不理想。此外,假如创建更复杂的多重签名(例如,10人签名,需8人批准),会占用区块链更多的空间。这样会造成冗长交易,因此费用昂贵。请记住,交易中的字节越多,支付的费用就越多。
Schnorr签名被认为是隐私性和可扩展性的解决方案。正如我们所见,Schnorr签名支持签名聚合,即多位签名者的签名整合为单一签名。这样一来,“主签名”的长度与常规的单人签名相同,从而大大节省了空间。
此外,旁观者很难从混合签名中辨认出哪些人签(或没签)交易。也就是说,在 m-m 机制中,所有参与者签名后才能动用资金,他人根本无法辨别这是单方交易还是多重签名交易。
关键是,Schnorr签名是区块链进一步发展的基石。签名一经实施,即可用来改进加密货币的相关技术,例如原子交换和闪电网络。
➠ 想要开启加密货币之旅?欢迎前往币安购买比特币!
具体时间尚未确定。与比特币协议的大多数升级一样,Schnorr签名需获得更广泛比特币用户群体的认可才能实施,而这仍需假以时日。比特币的主要贡献者Pieter Wuille、Jonas Nick和Tim Ruffing已提交比特币改进提案(BIP),但还有一些方面有待改善。
Blockstream已发布了MuSig签名方案。该方案允许签名和密钥聚合,很有可能成为比特币自有Schnorr签名机制的基础。
Schnorr签名可作为软分叉并入代码,意味着该变更不会拆分网络。相反,这次升级会需要“选择加入”。尽管如此,乐观估计Schnorr签名的集成指日可待,但要达成共识也并非一朝一夕之事。
Schnorr签名是比特币目前路线图中最受瞩目的里程碑之一。只需一次升级,隐私性和可扩展性将会大为改观。而且Schnorr签名还可为比特币智能合约和Taproot等更高阶的结构进一步发展铺平道路。