区块链替代签名方案优劣势对比,Schnorr签名最适合比特币

当前位置:首页 > 币圈百科 > 区块链替代签名方案优劣势对比,Schnorr签名最适合比特币

区块链替代签名方案优劣势对比,Schnorr签名最适合比特币

2022-11-17币圈百科493

作者:Leland Lee(独立作者)和Dev Ozha(加州大学伯克利分校/前TenderMint)

p6(图片:有时我们需要多个签名才能完成工作)

讽刺的是,一些市值数十亿美元的加密货币本身并不支持多个签名。m-of-n的签名者需要对交易进行授权。我们不需要试用,因为也许我们只设计了一个私钥[0]。但这不是我们想要生活的世界,因为没有人希望因为错误的智能合约或丢失的私钥而损失数百万美元。

今天我们将研究适用于UTXO和account模型的各种交易签名多重签名方案。请注意,一些方案仍在积极研究中,将有各种不同属性的构造。如果读者因为本文涉及的技术内容太多,不想看这些无聊的东西,可以直接跳转到“称重空间”一节,查看各个签名方案的优缺点。

在当前情况下,现有的区块链采用了几种不同的系统,允许多个所有者控制同一个区块链令牌。以太坊基于智能合约,比特币基于脚本(如P2SH)。

基于智能合约的例子:以太坊、Tezos、EOS、Vechain等;基于脚本的例子:比特币、莱特币、Iota、Cardano、Zcash[1]、NEO、DASH、Decred;内置客户端:恒星和涟漪;自定义密码系统:GRIN[2]和Monroe[3];

一、签名是如何工作的

为了在任何区块链上发送一个有效的交易,必须采取几个步骤:s1构造一个有效的交易;用帐户或UTXO的相应私钥对交易进行签名;向网络提交签名的交易;挖掘者(或节点验证者)验证交易和签名;交易被置于块中,并且相关的区块链状态被更新;

二。非密码技术及其问题

智能合约:虽然基于智能合约的多签名账户提供了极大的灵活性(无限定制),但从历史上看,它们在代码、语言、虚拟机和编译器方面都存在缺陷。由于人为失误,价值数亿美元的区块链代币被永久锁定。

脚本:与智能合约平台不同,比特币拥有更原始的脚本语言。区别也很明显:非图灵完全,非编译,没有虚拟机,没有“状态”的概念。这是否会让加密货币变得不那么有用,这个争论将在别处展开。但更重要的是,它有一个用于多重签名的特定操作代码。在比特币和比特币相关的分叉中,有一种特殊的脚本叫做Pay-to-Script-Hash,用于创建多重签名账户。在这里,读者可以找到深入的解释。

比特币的多签名地址和以太坊的多签名钱包都要求发送交易时提交所有相关签名。我们今天将探讨的一些方案只需要提交一个签名,从而节省了链上的宝贵空间,并可能使地址与单个私钥地址无法区分(增加了隐私)。

三。各种加密签名技术

在本文中,我们将探索各种技术来为区块链协议添加多重签名。请注意,这些技术并不是万能的,因为每个方案都有各种各样的权衡,在确定哪种技术最适合特定情况之前,我们需要进行彻底的探索。

1。Chamil秘密共享算法(SSS)

注意:这不是经典的多重签名,虽然这里的讨论是为其他形式的密码多重签名提供一个反例。

s2这里用一个私钥导出N个片段,其中需要M来重建私钥。这种方案通常用于密钥恢复。如果用户丢失了私钥,可以使用用户分发给不同朋友的片段来重构原始密钥。但不适合多重签名,因为:

必须生成私钥才能派生片段;在对事务进行签名之前,必须从片段中重新组装私钥;

这意味着有一个可信生成和重组步骤,这是一个故障点。另外,个人碎片持有者没有话语权,提供的都是碎片。 可信硬件可以缓解可信生成和签名的问题,但这会导致边信道攻击和可用性等问题。

然而,应该注意SSS的一些独特特征,它可以在不修改基本密钥/私钥的情况下创建尽可能多的不同共享集。因此,如果爱丽丝原本拥有10个秘密,但不是朋友的鲍勃是秘密持有人,那么爱丽丝可以重新生成9个秘密,并将其交给其余可信方(他们想销毁旧的持有部分,使鲍勃的秘密持有变得无用)。

2。门限ECDSA

在门限ECDSA方案中,我们消除了Chamil方案中的一个缺陷。这里,我们描述一个由Steven Goldfeder在他的ECDSA MPC论文中发起的新构造,它在密钥生成和签名效率方面超越了以前的ECDSA工作。

使用分布式密钥生成(DKG)方案,所有密钥持有者都参与一个交互过程,该过程为他们自己生成一个私钥和一个公钥。这确保了没有人知道真正的私钥。在生成这个构造密钥之前,只能使用一个可信方,因为计算时间对于两个以上的参与者来说太长了。s3

据我们所知,Keep Network和Kzen Networks都在使用这种门限ECDSA方案。

3,门限ed 25519

ECD sa的一个问题是由于签名算法的复杂性,门限签名非常复杂。但对于其他签名方案,如EdDSA(Edwards曲线数字签名算法),尤其是曲线Edwards25519,其签名方案ED25519具有相对更有效、更直接的门限签名。用户生成自己的密钥,然后有一个聚合步骤来创建单个公钥。事务签名有三轮交互协议。

Kzen Networks已经为ED25519门限签名实现了一个参考库。Stellar [4],Near协议和Cosmos使用相同的曲线,但不实现加密门限签名。

s44、Schnorr签名

在比特币中,Schnorr签名是签名聚合的一种形式。与P2SH相比,它随着密钥数量的增加而线性增加,而签名聚合允许使用大小不变的签名。验证者不需要知道签名者的个人公钥,从而增加了私密性。在这方面,Blockstream正在大力推动这项技术在比特币上的应用。

在Schnorr的签名方案论文(5.3节)中,有几种方法可以实现m-of-n多重签名,并进行各种权衡。在一些方案中,用户提供自己的密钥,而在另一些方案中,必须有一个DKG。一般来说,至少有一轮密钥生成和事务签名通信,事务签名不能很好地扩展到一个大的M或n

5。BLS签名方案s5

所谓的BLS签名称为(Bohen-Lynn-Shacham)签名方案,在签名集很大的情况下非常有效。也就是说,我们可以有10个中的2个或1000个中的2个多重签名方案,它们在设置和签名时间上几乎没有区别。对于设置阶段,唯一需要做的就是为每个私钥生成一个成员密钥,只需要一轮通信。由于用户提供自己的私钥,因此可以使用HD派生等技术轻松管理多个密钥。用户离线签署交易,单个聚合器收集签名并提交它们。

这种使用成员密钥的特殊构造是相当新的。另一种方法是使用Chamil秘密共享方案(dfnity和dash正在使用),但它需要一个可信方或DKG。BLS签名方案的一个缺点是它的签名验证会很慢,比ECDSA慢一个数量级。

四。权衡空间

蓑衣网小编2022s6从远处观察这些技术时,我们可能会认为某些技术会优于其他技术。不幸的是,当我们深入到权衡的领域,我们会发现事实并非如此。有些技术更适合较大的签名者群体,而有些则更适合低带宽环境。在这里,我们探索一个非详尽的属性列表来分析上述技术。

原图:有没有必须拆分的私钥?

可信设置:是否存在生成密钥的单一实体,或者是否存在分布式密钥生成方案?

多重签名的检测:区块链的查看者能否确定一个特定的地址是否是多重签名地址?

HD推导:是否可以为相关加密过程设置硬件确定性密钥?

(用户可以使用像bip32这样的技术,这样只需要记住自己的种子,而不是一堆私钥)

Weight:有没有可能给特定的私钥分配不同的权重?(例如:1-of-2多重签名,其中密钥持有者A的权重为2,密钥持有者B的权重为1,这意味着A不需要B的签名,但B总是需要A)。

可见性

签名者的隐私:区块链的查看者能确定谁是交易的具体签名者吗?签名大小:多重签名交易是否需要链上更多的空间,空间大小是否随着签名者的数量而变化?

Time

密钥生成时间:生成一个密钥需要多长时间?密钥生成时间是否随着参与人数的增加而增加?密钥生成回合:如果密钥生成是交互的,那么参与者需要交互多少次?验证时间:验证签名需要多长时间?签字时间:交易签字需要多长时间?

签字

互动:签订一笔交易需要多少轮沟通?曲线效率:虽然其中一些技术适用于所有曲线,但需要考虑曲线效率和辅助因素的选择等问题。

图:考虑到以上方案的权衡,注意每个方案都有几个构造,导致属性不同。

蓑衣网小编2022

五、未来发展

虽然有很多不同的技术可以实现区块链的多重签名账户,但是我们必须认识到协议中的设计考虑。其中一些技术需要改变底层协议,而另一些则不需要。协议设计者应该意识到用户体验和未来密码技术进步校对之间隐含的权衡。

s7有趣的事实:签名比发送事务有更多的用途。它们可用于公平证明系统中的分组签名、具有较小区块链的集合签名和事务压缩。

六有趣的问题

现在,你可能知道一些关于加密多重签名的知识。在决定实现协议时选择哪种签名方案时,这里有一些问题值得探讨:

是否有一个用例希望能够区分链中的多签名账户和单签名账户;门限密码系统提供了单个密钥签名者未知的属性。这哪里是有利或者有害的?有没有可能存在一个允许选择性公开的签名方案,在这个方案中,签名者在某些交易中是公开的,而在另一些交易中是不公开的?有没有可能有一个只显示签名者的子集而不是所有签名者的签名方案?有没有可能存在这样一种方案,其中签名者不能确定交互步骤中的其他签名者是谁?当高清钱包无法使用时,密钥管理是如何工作的?对于BLS方案,人们可以使用HD密钥,但需要生成其他成员密钥。当用户丢失其成员密钥时,协议应该是什么样子?多重签名应该完全属于加密领域,还是应该在智能契约/脚本和加密之间保持平衡?有没有签名大小根本不重要的情况,因为签名被丢弃了,或者有了新的压缩形式?

脚注

[0]技术上,假设存在加密签名,所有区块链都具有原生多重签名的形式。然而,对于任何签名算法来说,找到一个有效的门限签名方案都是相当困难的。

[1]zcash目前使用P2SH,在即将到来的Blossom更新中,它将切换到自定义加密结构。

[2]GRIN是加密货币中唯一基于密码学的多重签名方案,类似于比特币的保密交易。这种方法的一个缺点是根据他们的协议定制,很难通用化。

[3] Monroe Coin只支持n-of-n和(n-1-of-n)多重签名方案。前者与Splitkey非常相似。

[4] Stellar有多个签名,但它们不是用密码学实现的,而是通过使用它们的脚本语言实现的。

[5]注意,对于UTXO模型,有一个生成公钥的一次性交互步骤,这是用户要花的解锁脚本所必需的。

感谢Tarun Chitra、Joyce Yang、Dan Robinson、Jeremy Rubin、Jeremiah Andrews等人对本文中提到的各种密码技术的回顾和解释。

预览:在下一篇文章中,译者将重点翻译两种技术方案,施诺尔签名和BLS签名。前者很可能应用于比特币,后者有非常有意义的应用场景。

区块链替代签名方案优劣势对比,Schnorr签名最适合比特币 | 分享给朋友: