交易细节中的Tezos地址可能与任何正常地址类似。然而,此地址不是由私钥控制的常规Tezos地址。事实上,据我们所知,这个地址是第一个由门限签名方案(TSS)控制的Tezos地址,也是第一个由TSS控制的用于EdDSA签名的代币地址。
如果你一直在密切关注我们,这可能并不令人惊讶。我们已经在Binance Coin (BNB)和Zilliqa (ZIL)上实现了同样的效果。
通过使用TSS,我们消除了单个原子私钥的负担,并将责任划分给多个参与方。在这种情况下,由双方控制地址,双方都需要签署交易。
使用TSS没有私钥
在这篇博客文章中,我们将分享一些关于这个概念验证(PoC)项目的细节,这个项目由KZen(构建ZenGo钱包)的区块链研究团队进行。
门限签名方案(TSS)
门限签名方案(TSS)消除了单个原子私钥的负担,并在多方之间分担责任。
每一方都生成自己的秘密,并使用这个秘密在不向其他方透露情况下对交易进行分布式签名。有关TSS的高级概述,请参阅我们的博客文章。
对于这个概念验证(PoC)项目,我们使用TSS的开源实现来实现EdDSA签名。值得注意的是,该项目首次利用了我们的通用MPC(安全多方计算)网络层。目前,我们只支持“N out of N”方案,即所有相关方都需要签署。在未来,我们还计划支持“T out of N”场景,即只需要签署一个子团队的协议。
双方EdDSA密钥生成和签名
我们投入了大量的资源来实现TSS,使其兼容并可重用于不同类型的区块链和数字签名算法(DSA)。这种兼容性使我们能够快速地集成TSS支持的新的区块链。
为什么是Tezos ?
在KZen中,我们已经实现了对比特币、以太坊(Ethereum)、Binance和Zilliqa的门限签名方案(Threshold Signatures Scheme, TSS)支持,我们想用其他代币进行试验。
我们选择Tezos的主要原因如下:
· Tezos对我们项目的信任:Tezos基金会很早就认识到我们工作的重要性,并授予我们一笔赠款,用于开发对他们的区块链https://tezos.foundation/news/an-update-on- The -role-of- Tezos - Foundation的TSS支持
· 经济创新: Tezos用户积极参与共识,从而帮助确保网络安全。赚钱一直是用户追求的终极目标。
· 技术成熟度: 要使用区块链实现TSS钱包,我们需要一个足够成熟的开发环境。Tezos network在它的测试网络中包含了所有必需的成分:
· 一个插口,这样我们就可以在不花大钱的情况下测试所有东西
· 一个区块链资源管理器,以便我们可以确认我们的交易已成功记录在区块链上
· 通过API和开源SDK访问测试网,这比设置完整的节点舒服得多)
· 技术新颖性: 我们之前用实际代币进行的TSS实验仅限于ECDSA和Schnorr签名。这是我们(或据我们所知的任何人)首次为基于EdDSA签名的代币实现TSS。
即使Tezos支持多重签名,也需要TSS
值得注意的是,尽管Tezos支持允许用户添加多签名安全性的智能合约,但是使用TSS仍然有明显的优势。一个主要优点是TSS交易看起来与常规交易完全相同。与多重签名交易不同,TSS“魔力”应用于数学层,而不是应用程序层。
· 如果多重签名是通过智能合约实现的,它可能会给智能合约执行者带来额外的费用。此外,多重签名智能合约功能可能难以验证,一些基于以太坊的多重签名智能合约所遭遇的多个事件就说明了这一点。
· 控制机制不向外界公开:使用TSS,签名方永远不会公开,因此,对手无法了解各个方或它们的控制结构,也无法监视对它们的更改。
· 综合控制机制: 使用TSS,用户可以创建各种综合的任意控制机制(例如,组合来自一个组的几个参与方和来自另一个组的几个参与方)。
Tezos资助KZen研究团队的事实表明,他们有兴趣将TSS功能集成到Tezos中。
概念证明
Tezos的区块链网络是创新的,引入了一些概念,如Pos(权益证明)。然而,由于TSS是与区块链无关的,所以它能够轻松地与这个独特的体系结构集成。这种兼容性使我们能够在一天内完成PoC,而不需要在Tezos端进行“集成”。
使用SDK,我们首先确保可以生成一个正常的交易。
在Tezos上创建普通事务
1. 生成:我们修改了代码,使公钥由KZen TSS setup生成并导出到Tezos客户机。
从公钥生成地址
当然,由于任何随机字符串都可以成功地转换为地址,所以从公钥生成地址并不能证明任何东西。现在真正的挑战是从这个地址签署交易。
在这个过程中,我们了解到对于新创建地址的第一个交易需要一些存储费用。
2. 签名:主要的变化是在签名功能;我们更改了消息的导出方式,以便由我们的TSS演示程序而不是私钥来签名。在这个过程中,我们了解到,对于一个要发送金钱的地址,它必须“显示”,这只是我们必须创建和签署Tezos区块链上的另一条消息(当然是使用TSS)。作为副产品,这表明我们可以创建任何Tezos消息,包括与堆栈过程相关的初始化和委托消息。
然后,通过从API获得成功的结果并在explorer中验证交易,我们验证了TSS可以与Tezos区块链一起工作。
结论
我们计划重构代码,以便与我们的TSS设置直接交互,并很快将其作为开放源码项目发布。我们将包含到相关特性的接口,例如初始化和委托消息,以支持堆栈过程。
总而言之,我们只花了几个小时就为这个领先的加密货币资产添加了TSS支持。该实验成功地证明了区块链可以多么容易地集成到我们通用的TSS基础设施中去。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』