在本文中,我们将研究阈值签名方案(TSS)是什么,它可以给区块链空间带来哪些优势,如何在区块链客户端中实现,如何与Shamir的秘密共享方案和多重签名相提并论。如何使用TSS进行分布式密钥管理,最后还有哪些风险和局限性。
阈值签名方案(TSS)是用于分布式密钥生成和事务签名的加密货币原语。在区块链客户端中使用TSS是一种新的范例,具有很多好处,尤其是在安全性方面。更广泛地说,TSS可以影响密钥管理系统(例如,数字货币包)的设计,并为去中心化金融的各种实施的内置支持铺平道路。但是,TSS仍然是一项新技术,因此也应考虑风险和限制。
加密货币学的力量
要了解TSS,需要具备一些加密货币学的基本知识。自1970年代以来,Internet系统(例如TLS和PGP)越来越多地使用非对称加密货币,也称为公钥加密货币(PKC)。PKC使用两个密钥:公共(公共)和私有(私有)。公钥不是秘密的,任何人都可以发布和使用,但是私钥是系统安全性所依赖的秘密信息。
有趣的话题:众所周知的加密货币人的未知故事
加密货币和数字签名是PKC的两个主要用途。加密货币和数字签名方案依赖于三种算法。第一个生成一对公共和私有密钥,第二个生成密文或签名,第三个执行解密或验证。在数字签名方面,签名算法需要只有其所有者知道的私钥才能生成唯一的签名。签名附在消息上,以便拥有公钥的任何人都可以验证其真实性和有效性。
区块链
区块链无疑是一项非常强大的技术。它提供了组织和记录事件的共识级别。这种基础设施使我们-用户-能够建立去中心化的经济体甚至政府。出乎意料的是,最简单的区块链运行所需的加密货币可以完全基于数字签名。在区块链的上下文中,私钥代表一个身份,签名代表该身份的公开声明。区块链对语句进行排序,并根据一组规则(包括确保签名是真实和正确的)对它们进行验证。
与区块链中使用的更传统的加密货币技术相比,现代加密货币工具包括许多令人印象深刻的技术:零知识证明,同态加密货币,多边计算等。在过去的十年中,区块链研究极大地推动了应用加密货币技术的发展,包括最近在所有方面的突破。以上。
本文重点介绍一种这样的突破-阈值签名安全性(TSS)。
相关阅读:BLS签名:替代Schnorr签名的最佳选择
多边计算和阈值签名
多方计算(MPC)是加密货币学的一个分支,其历史可追溯到现年将近40年的Andrew Yao。在MPC中,互不信任的多个参与方尝试根据其输入共同计算某个功能,而不显示该数据。
假设某公司的n名员工想知道他们中的哪些人收入更高而没有透露其实际工资。在这里,敏感的输入是薪水,输出是薪水最高的员工的姓名。使用MPC,不会透露工资。
MPC的两个主要属性是正确性和机密性:
- 正确性:算法产生正确的结果(正如你所期望的)。
- 保密:双方的秘密输入都不会透露给对方。
让我们看看这些属性如何应用于使用MPC创建分布式数字签名。回想一下,在签名的情况下,分三个步骤:
- 密钥生成:第一步是最难的。有必要生成一个用于验证未来签名的公共密钥。但是你还需要为每个参与者生成一个秘密,我们将其称为秘密共享。关于正确性和保密性,我们说该功能将为所有参与者提供相同的公共密钥,并为每个参与者提供不同的秘密份额,从而:1)保密性:秘密份额不会透露给其他参与者;2)正确性:公钥是根据所有秘密份额计算得出的。
- 签名:此步骤生成签名。每个参与者的输入是他对秘密的共享,即上一步(分布式密钥生成)的输出。还有一个众所周知的开放入口-签名消息。解决方案将是数字签名,并且机密性属性可确保在计算过程中不会泄漏任何秘密份额。
- 验证:验证算法与经典条件下相同。与简单签名一样,任何知道公钥的人都必须能够验证并验证签名。这就是区块链节点的工作。
分布式密钥生成和分布式签名的这种组合称为阈值签名方案(TSS)。
将TSS与区块链结合
在区块链上应用阈值签名的最明显方法是修改区块链客户端,以便它使用TSS生成密钥和签名。在这里,区块链客户端是由完整节点执行的一组命令。实际上,TSS技术允许将与私钥关联的所有命令替换为分布式计算。
为了更详细地说明,让我们首先描述如何在经典区块链中创建新地址。简而言之,你可以通过生成私钥,然后为其计算公钥来创建新地址。最后,区块链地址是从公钥派生的。
使用TSS,我们将有n个参与者共同计算公钥,每个参与者都有私钥的秘密共享(不与其他参与者共享)。可以通过与传统系统相同的方式从公钥获取地址,并且密钥生成方法对于区块链而言无关紧要。优点在于,私钥不再是单点故障,因为每个参与者都只拥有一部分。
你也可以签署交易。在这种情况下,不是由一方使用其私钥对交易进行签名,而是使用由多方进行的分布式签名生成。只要足够诚实,每个成员都可以提供有效的签名。同样,我们已经从本地计算(单点故障)转移到交互式计算。
值得一提的是,分布式密钥生成可以允许不同的访问结构:在涉及私钥的操作中,一般的“ t out of n”条件最多可以承受t次任意拒绝,而不会损害安全性。
TSS和多重签名
一些区块链提供TSS功能作为其软件的嵌入式或可编程部分。我们称其为多重签名。要了解两者之间的区别,可以在区块链的应用程序级别将多重签名视为TSS。
换句话说,多重签名和TSS本质上具有相似的目标,但是TSS使用链外加密货币(链外)和区块链上的多重签名(链上)。但是,区块链需要一种加密货币多重签名的方法,这会损害隐私,因为访问结构(签名者的数量)在区块链上可用。多签名交易的成本较高,因为有关签名者的信息也必须在区块链上传输。
在TSS中,签名者信息被包含在看起来像普通交易的交易中,从而降低了成本并保持了机密性。另一方面,多重签名可以是非交互式的,从而消除了复杂级别的签名者通信的需求。
主要区别在于多重签名是特定于区块链的,必须为每个区块链重新实现,并且在某些情况下根本不支持。同时,TSS依赖于纯加密货币技术,因此始终可以提供支持。
请继续阅读以获取有趣的内容:Schnorr签名和比特币中隐私的必然性
TSS和Shamir的秘密分享计划
Shamir秘密共享方案(SSSS)提供了一种以分布式方式存储私钥的方法,以便在不使用私钥时将其存储在多个位置。SSSS和TSS之间有两个区别:
- 密钥生成:在SSSS中,一个参与者(称为“经销商”)负责生成私钥的秘密部分。即,私钥在一个地方生成,然后由发牌人在参与者之间分配。TSS中没有交易者,因为他的角色是分布式的,并且在任何地方都没有完整的私钥。
- 签名:在SSSS中,为了进行交易签名,参与者必须恢复完整的私钥,这又在每次需要签名时创建一个单点故障。在TSS中,签名是以分布式方式完成的,完整的私钥不会从共享机密中恢复。
如你所见,在TSS中,私钥(负责系统安全性)根本不在一个地方。
门槛钱包
基于TSS技术的钱包与传统的数字货币包略有不同。通常,传统钱包会生成一个种子短语,并使用它来确定性地检索钱包。然后,用户可以使用该分层确定性(ID)结构来:1)获取与钱包地址相对应的私钥并与其进行交易;2)使用种子短语恢复所有钱包密钥。
门槛钱包的事情变得更加复杂。尽管可以生成ID结构,但是必须使用单独的MPC协议以分布式方式完成。参与者共同决定下一步将使用哪个密钥。换句话说,每个参与者都有自己的种子短语。种子短语是单独生成的,并且永远不会合并,因此一个参与者无法从他的种子短语中获取私钥。
基于TSS的钱包还有一个有用的安全选项:无需更改区块链上相应的公钥和地址即可旋转私钥的能力。私钥轮换,也称为主动秘密共享,是另一个MPC协议,它使用秘密共享作为输入并输出一组新的秘密共享。可以删除旧的秘密共享,而可以使用新的共享。
这种结构为安全性增加了一个临时的维度,也就是说,攻击者必须同时在多个地方才能攻击阈值钱包。如果攻击者想要伪造签名,则在轮换之前和之后组合股份不会给攻击者带来额外的优势。
这种钱包的缺点是缺乏种子短语,使其与单键钱包不兼容。因此,重要的是要考虑谁将保守秘密。
有几种可能的体系结构:
- TSS外包:用户允许n台服务器为他执行计算。本质上,密钥生成,管理和交易签名委托给不拥有资产但提供一定安全级别以换取某种奖励的服务提供商。
- 使用多个设备:用户在属于他的多个设备上使用TSS。例如,一侧可以是物联网的某些设备,另一侧是用户的手机,第三侧是他的笔记本电脑,依此类推。
- 混合方法:TSS中的某些方由外部服务控制,而其他方则是用户拥有的设备。
第一种方法使用户免于繁琐的计算。但是,另一方面,服务提供商可能会合谋(尽管实际上有可能,但它们不会同时受到足够数量的攻击),并且会窃取用户的资产。
第二种方法使用户可以完全控制,但是使交易变得困难,因为必须同时使多个设备联机并执行计算。
第三种选择被认为是最好的,因为它允许用户轻松,快速地进行交易,并且未经他的授权无法进行交易。
TSS和智能合约
研究人员发现了数字签名的许多用途,其中有些令人惊讶地是不平凡的。如前所述,TSS是可以显着提高安全性的加密货币原语。在区块链的背景下,可以说许多功能可以被基于TSS的加密货币学所取代。可以在TSS框架之上构建去中心化应用程序,第二层扩展解决方案,原子交换,硬币改组,继承机制等。最终,这将允许使用更便宜,更可靠的替代方案,用智能合约代替昂贵的链上交易。
对于特定示例,Multi-Hop Locks巧妙地使用了双向签名,可以通过更安全和私有的支付渠道来替代比特币的闪电网络。仅基于一个阈值签名验证,ShareLock可以说是最便宜的以太坊硬币洗牌解决方案。
风险性
近年来,TSS实施的数量已大大增加。但是,由于这仍然是一种相对较新的技术,因此它具有局限性和问题。与经典的公钥加密货币术相比,TSS协议可能非常复杂,并且尚未经过现场测试。通常,与简单的数字签名相比,TSS需要其他更弱的加密货币假设。结果,发现了传统方案中不存在的攻击媒介。TSS的安全实施需要信息安全和应用加密货币学专家的参与。
但是,好消息是,由于越来越多的高质量开发,同行评审,审计和算法改进,现有和新的实现方式变得更加可靠。
结论
在本文中,我们介绍了阈值签名方案(TSS)的基础,它是一种好奇的加密货币原语,可以极大地改变我们使用区块链的方式。
如果你想尝试TSS实施,可以在此处找到币安链双向钱包代码,也可以尝试ZenGo的混合钱包提供非托管的双向解决方案。
资源
你总是可以感谢翻译者所做的工作:
BTC:1BHr4jrPPVwdWRpFTekaD34EZ2vo9p8FoC
ETH:0xf45a9988c71363b717E48645A412D1eDa0342e7E
内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。