如何实现区块链的私密性和可替代性

区块链

580人已加入

描述

在不牺牲吞吐量的情况下实现区块链的私密性和可替代性一直是一个众所周知的困难挑战。增强隐私的相关升级,如zk-SNARKS和机密交易,通常会导致更低的交易容量和更高的交易成本。

另一种区块链设计MimbleWimble有望克服这一挑战。2016年,Tom Elvis Jedusor在一个开发者网站上发布了这个从哈利波特小说里咒语命名的设计,由此MimbleWimble进入公众视野。从那时起,来自不同区块链项目的研究人员和开发人员为其开发做出了贡献。目前有几个团队正在寻求将MimbleWimble区块链引入公共使用。

让我们揭开MimbleWimble的神秘头纱,探寻它有什么秘密。

替代区块链设计

MimbleWimble的设计与比特币等UTXO区块链有显著不同。首先,比特币没有地址,也没有脚本语言,这是比特币使用的基本编程语言。

在比特币交易中,旧的输出符号表示新输出。所有这些输出都有自己独特的脚本化公钥。用户通过使用他们的私钥签署交易来证明他们拥有他们所要求的资金。

然而,在MimbleWimble中,我们完全不使用脚本。相反,输出有自己对应的公钥。一个大的多签名密钥,也称为一个过剩值,是通过减去一个交易的所有输入加上所有输出的交易费来计算的。通过证明该值等于零,它可以验证没有铸造新币,同时不显示任何交易金额。此外,它消除了对节点处理的所有输出键的需要和存储。这极大地减少了交易在块中占用的数据量和区块链的总大小。

该协议使用盲因子和Pedersen模式来混淆交易值。结合起来,这些特性以加密方式确保只有交易中的发送方和接收方知道交换的金额。在进行交易处理时,收件人生成盲因子并仅与发送方共享。

MimbleWimble交易只包含输入、输出和一个多签名密钥。输入只是引用以前的输出。输出类似于交易量,但也包含了盲因子和范围证明。最后,多签名密钥充当签名,并验证发送方是否拥有它们所声明的资产。

MimbleWimble中没有新的密码假设,只是对交易和块的结构进行了创新性的重新设计。因此,底层的密码假设得到了很好的验证。然而,就像比特币一样,MimbleWimble也容易受到量子计算进步的冲击。

比特币

通过可扩展性实现隐私

MimbleWimble能够提供几乎完全的隐私,而不需要进行重大的可扩展性权衡。交易金额以及发送方和接收方都是隐藏的。

通常情况下,像Monero和Zcash这样的以隐私为重点的区块链,其吞吐量比不注重隐私的项目低,费用要比不不注重隐私的项目高得多。

实际上,使用MimbleWimble节点可以在交易之间维护更新的摘要。这种机制与比特币不同,在比特币中,他们存储并验证返回到创世块的每个交易签名。其结果是,尽管采用了隐私加密技术,但MimbleWimble区块链的规模和交易能力可以与比特币相当。

限制

尽管解决了隐私和可扩展性的难题,MimbleWimble确实有两个明显的缺点。

脚本

MimbelWimble最大的缺点之一是它完全删除了脚本语言。这减少了区块链的其他功能,除了保留简单的价值转移和货币目的。这种功能的减少意味着像闪电网络这样的第二层协议将更加难以集成。

但是,可以通过多签名和timelock交易复制脚本当前提供的一些功能,毕竟这两个功能在MimbleWimble中仍然是可实现的。比特币开发者Andrew Poelstra表示,通过结合防弹协议和无脚本的脚本,可以实现更智能的合约功能。

量子计算

不幸的是,MimbleWimble与当前UTXO区块链一样,在量子计算发展方面也存在同样的漏洞。

该协议依赖于椭圆加密算法(ECC)(是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。公钥密码体制根据其所依据的难题一般分为三类:大素数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。)的隐私和币发行控制。量子计算理论上可以破坏ECC,完全破坏协议。

但是,需要注意的是,开发人员应该能够在这些进展生效之前先发制人。这些进展的结果将以某种方式影响大多数区块链项目,并且很可能在我们达到这一点之前发生量子安全的更改。实际上,根据Poelstra的说法,大多数MimbleWimble都可以使用量子安全原语进行更新。然而,要找到令人满意的量子安全距离证明,还需要进一步的工作。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分