分布式私钥控制(Distributed Private Key Control)
写文档看到了这个跨链技术,深究了一下(资料太少,看不懂想了半天),把自己的理解写出来,不保证正确,但合乎逻辑,有错误请指正!。
话不多说,先上图:
各个跨链技术的性能比较图
性能太好,不得不研究一下啊~
概念
分布式私钥控制通过分布式节点控制各种资产的私钥,并将原链资产映射至跨链中,确保各种资产在区块链系统中实现互联互通。分布式私钥控制的核心在于分布式控制权管理,即将资产的所有权和使用权分离,将原链上数字资产的控制权安全地转移至非中心化系统中
一句话就是可以提供一个网络系统,将用户账户的私钥通过在该网络上的分布式存储而实现账户控制权的转移 -> 锁定账户。
分布式私钥就是把一个区块链里面的私钥分成了N份,把它拆分成N份之后,同时再把它分给N个参与者,参与者每个人就掌握了一部分私钥,只有集齐了其中的K个私钥的分配之后,才能恢复出这个完整的一个私钥,恢复完整私钥,才能够对这个私钥上面的资产,进行一个解锁。
两种状态:
以区块链项目Fusion为例
锁定Lock_in:将**分片并将分片**分布式保管,即分布式生成**;随后将资产转入原链上指定账户并由Fusion节点进行验证,实现控制权的分布式管理。
Fusion 项目中Lock-in 过程示意图:
解锁Lock_out:先检查Fusion映射账户中数据情况,满足具体条件后发起交易,Fusion各节点通过各自保存的分片**进行验证,解除分布式控制权管理以及资产映射。
概念难懂,看实例。
具体流程举例
情景:
当时的汇率为:1BTC = 10ETH
比特币用户A和以太坊用户B想跨链使用对方的币
步骤:
- A账户和B账户同时向分布式**网络系统(成熟的有FUSION、Wanchain等)发出跨链申请。
- 系统生成账户C产生对应的公钥和私钥,公钥就是C的地址。其中将私钥分为N份,然后分发给N个分布式网络中参与者,参与者每人掌握一部分私钥。
- 系统将C的地址发送给A。
- A账户在比特币链中实现交易A—>C(1BTC),交易在一段时间的等待期后被收集写进区块链中。并在后续有连续的多个区块确认。
- 此时,系统开始检查账户C中的金额是否是B账户所要求的金额(是否符合当时汇率)。验证通过后,即达成了对A的锁定。
- 系统再生成账户D产生对应的公钥和私钥,公钥就是D的地址。同样的,其中将私钥分为N份,然后分发给N个分布式网络中参与者,参与者每人掌握一部分私钥。
- 系统将D的地址发送给B
- 在以太坊中B->D(10ETH).同样的要等待多个确认。
- 此时,系统开始检查账户D中的金额是否是A账户所要求的金额(是否符合当时汇率)。验证通过后,即达成了对B的锁定。
- 系统将分布式系统中D账户的私钥收集起来,可能达到K个私钥就可以恢复出这个完整的私钥了(k < N),将私钥交给A,A就有了在以太坊链上的10ETH使用权。同样的,系统将分布式系统中C账户的私钥收集起来,可能达到K个私钥就可以恢复出这个完整的私钥了(k < N),将私钥交给B,B就有了在比特币链上的1BTC使用权。
以上是跨链资产的交换的过程,跨链资产的转移也可实现,当然要结合每种链的铸币交易。
问题分析
-
为什么将**交给这个系统是可信任的?
因为采用了分布式的**分发,类似于分布式签名公证人机制,所以很好的完成了去中心化的过程,在这样一个分布式系统中,个人想拿到完整的**是非常困难的。
-
这样的设计怎样保证跨链交易的原子性?
如果在中途发现所要求的转入账户的金额不对,那么系统会收集私钥将资金转回该账户,并终止整个交易过程。
-
为什么要等单链上的交易最终确定后(等一定的区块确认)才开始验证?
因为不确定交易的话可能造成双花问题。
-
为什么只要求k个碎片就可以解锁,而不是要求拼凑出完成的**才能解锁?
是为了防止分布式系统中的恶意节点被分配到碎片后不交出来
-
这个机制的优缺点是什么?
优点:
- 私钥的保存使用分布式保存,不存在单点依赖,并且采用分布式存储一定程度上避免了公证人机制下的中心化风险。
- 账户锁定不需要采用双向锚定方式,所有交易在验证节点重构后传入原链网络,不改变原链特性,各链均可自由且低门槛地接入原链,降低跨链接入成本,因此适用范围广,易于实现。
- 互操作性很高。
- 其他见上面的性能对比表格
缺点:
- 对于交易的最终确定性,需要等待一定的区块或者其他的方式,这是需要一定的时间的延迟。
- 开发有一定的难度。
本文章为原创文章,转载请注明出处!
-------------本文结束 感谢您的阅读-------------