一个例子,讲讲“抽象/账户抽象”的意义。
最近,一种名为“MPC钱包”的钱包形式吸引了大家的关注。从原理上说,应该称为“基于分布式密钥生成的门限签名钱包”:DKG会形成n个私钥碎片,但这n个碎片对外将仅表现为1个公钥。
而TSS则使得只需要其中m个私钥碎片的签名,即可生成可用集体公钥来验证的有效签名。当前,这类钱包的想法是,让一个可保证全时响应并可验证用户身份的运营方,控制其中1个碎片,而用户自己控制其它的碎片,这就帮用户消除了任一个碎片的单点故障。
假定用户跟运营商形成了2-of-3的设置,那么,用户自己控制两个碎片就可以随时签名,同时运营商无法独自转走用户的资金;当用户发现某一个碎片丢失、损坏或泄露时,就可以向运营商证明自己的身份并跟运营商联手转走资金。
敏锐的读者会意识到:
我在描述这种钱包时,使用的语言跟描述比特币多签名钱包的别无二致;对于原生支持多签名的比特币来说,只需使用多签名钱包,而无需使用这样的技术来达到相同的效果;
这样的DKG-TSS钱包,实际上是对抽象性不足的账户模式的补救;当前大部分账户模型的链使用的都是单签名的账户,因此要消除单点故障就只能借助DKG这样的技术。但是,人们可能没意识到,更抽象的UTXO模式可以做得比这还要好。
在这种DKG-TSS-账户钱包中,其一,运营商明确知晓用户的账户,隐私性差;其二,用户往往只能使用一个运营商,难以约束运营商的行为。你说,这问题,使用多签名的托管钱包就不存在吗?不存在,或者说可大大缓解。
我们假定愿意提供这样的服务的服务商公开了自己的公钥,你可以自行把TA的其中一个公钥放在你的多签名合约中,无需知会他。比特币的UTXO的链上信息是一串哈希值,他们看区块链也不知道你有没有使用他们。
至于身份验证,你可以向服务商先用闪电支付一笔费用,然后提交加密的UTXO信息和身份验证手段信息,DKG-TSS服务商能用的手段我们都能用。由此,我们就解决了上面说的隐私性问题。
有了taproot,我们还可以在一个输出中安排多套多签名锁,而且曝光其一不会导致其它条款曝光。什么意思呢?意思是我可以安排将10个服务商分别安排在10个多签名锁中,从而消除服务商的单点故障!一个服务商拒绝服务或者想趁火打劫是没用的,他根本不知道我有多少个备选服务商。
此外,由于最终曝光的条款只有一个,对用户来说,经济性和复杂性都是大差不差的。最后,多签名对比DKG-TSS还有一个好处:当服务商签名了,就无法抵赖自己没签过名。因为比特币multisig会要求各参与解锁的公钥提供单独的签名,所以它会曝光在链上。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。