工作原理
分布式密钥算法
跨链桥
发送资产从A链到B链
在资产原始链上,要跨越的资产被发送到一个特殊的SMPC钱包地址并安全地保留在那里,这就是去中心化管理账户。在目标链上,一个智能合约与去中心化管理账户中持有的资产进行1:1的代币交换,并将它们发送到用户的钱包中。反之,当代币被发送到智能合约时,它们将被销毁,然后SMPC节点会将它们释放到原始链上。
SMPC节点在将一个原始链和一个目标链连接起来时,完全自主地、无需人工干预地执行多个功能:
- 当创建两个区块链之间的新桥时,SMPC节点会生成一个去中心化管理账户,其地址用于发送资产。这些资产在跨链资产在目标链上创建时被安全保留。这个地址只由SMPC节点控制,而不是由任何人或其他外部所有的地址所控制。
- 同样,在创建两个区块链之间的新桥时,SMPC节点将连接到目标链上的一个新智能合约,用于封装资产。该合约可以由第三方或Multichain团队创建。它用于在目标链上创建新代币,或在将资产赎回到其原始链时销毁它们。该合约可以是AnyswapV5ERC20.sol,也可以是进行了适应性修改以包括项目所需自定义代码的合约,如交易税等。
- MPC节点监视去中心化管理账户。当有新的资产到达时,会触发目标链上的Wrapped Asset智能合约进行代币铸造。
- 如果资产被赎回,MPC节点会触发Wrapped Asset智能合约销毁代币。之后,MPC节点将从去中心化管理账户中释放资产,并将它们发送到原始链上的用户
跨链路由
(a)本地资产
为什么要使用SMPC网络
单一签名在跨链资产转移或智能合约互操作时的单点故障问题。如果只使用一个签名来发送资产或与跨链智能合约交互,那么这个签名就是整个操作的单点故障。如果这个签名的私钥管理不当,就可能被攻击者利用,导致资产被盗或智能合约被篡改。多重签名钱包是解决这个问题的一种方式(发送方和服务托管商或者合作伙伴作为多重签名),但是它也存在一些问题:这些多重签名的私钥仍然是外部拥有地址(Externally Owned Addresses);签名者必须预先定义,这导致这种方案缺乏灵活性;签名地址是公开的,这使得访问权限结构是众所周知的;同时加密以及用于签名的数据可能很大,可能需要多个密钥。
解决方案是使用阈值签名方案(TSS),将密钥拆分。从n个可能的签名者中,至少有t个(n/2+1≤t≤n)签名者可以签署交易。至少只有t个串通的玩家才能伪造签名。这具有以下优点: (a) 它是私有的,所以没有人知道使用了哪些t签名, (b) 如果有许多可能的签署方,那么可以选择表现良好的签署方, (c) 它是有效的,因为链上只有一个签名,看起来像一个常规签名。
TSS全称Threshold Signature Scheme,是一种基于分布式算法的签名方案,可以在多个签名者之间进行安全且高效的签名操作。TSS方案的目的是在多个参与方之间,实现对一个签名中的私钥进行分享,并且只有在设定的门限值以上的参与方共同合作才能恢复出原始的签名,从而实现更安全的数字签名应用。TSS方案通常使用在区块链技术中,特别是在多方进行多签名、跨链交互这些场景中。
目前,有一些TSS方案已经呈现出较成熟的实现。例如,dFinity发布的Hige Threshold Scheme方案,以及由公司 Unbound 基于 MPC(multi-party computation)技术实现的TSS方案。此外,还有一些开源的TSS方案,例如CryptoLib4PBC和ToinLeit这两个库都实现了TSS方案,并提供了可直接使用的API接口。而在以太坊智能合约层,已经有一些现成的TSS合约实现库,例如BarnBridge团队开发的Solidity语言合约库bonded curve购买和赎回合约中就大量使用了TSS方案。
安全模型
门限分布式签名算法
SMPC是一种基于安全多方计算的阈值分布签名算法,用于 Multichain 跨链解决方案。该算法能够在独立运行的节点上生成一组私钥,并通过分布式计算生成相应的公钥。与秘密共享等技术相比,该算法不会显示完整的私钥,因此无法访问或显示私钥。此外,在分布式计算期间,每个节点不会彼此传递它们持有的私钥。多方计算确保在分布式计算期间生成的中间结果无法用于推导相应的私钥。
将该算法应用于数字资产的跨链连接是一种去中心化的方式,可安全有效地处理数字资产。
SMPC网络
它由几个独立运行和维护的节点组成,这些节点在需要初始化生成公钥或执行签名时执行阈值分布签名算法。
为实现数字资产的跨链交互,需要将MPC网络作为一个分布式网络,以便在链之间实时处理跨链请求。这反映在触发机制上,即实时检测原始链上的状态,然后将其转换为目标链上的行为。当前的MPC网络是一个分布式系统。每个节点将独立验证原始链的状态,并使用所有节点之间的阈值分布签名算法,以达成对验证结果的共识。
基于密码算法的这种方法可以产生强大的共识。它要么产生一致的正确结果,要么没有结果。这确保了Multichain的MPC网络能够准确处理跨链请求。