MAST:关于隐私和脚本的比特币改进提案

最近几周,开发商Pieter Wuille发布了两个新BIP的来源,用于在比特币上实施Schnorr和Taproot。后者包括MAST的可能演变,MAST是一种旨在改善隐私和比特币脚本的协议。

MAST是BIP–比特币改进提案的缩写 – 最初由刘博士于2016年提出。

MAST有几个提议,每个提议都有不同的实现机制。正是由于这个原因,没有单一的BIP而是不同的代码。有BIP114,MAST开发的第二个分支,仅次于BIP116和117. 117在去年2月/ 2018年1月更新,而114则在2017年9月更新。

什么是MAST?

Merkelized抽象语法树的首字母缩写,该协议是Merkle Tree和AST或抽象语法树的结合。可以将merkle树视为一种加密货币工具,以减少块内数据的使用。它允许确认Merkle树中的数据是否为真,而无需重新下载所有数据。

另一方面,抽象语法树(AST)由一系列算法组成,这些算法将程序或数据集分成其组成部分,目的是更容易理解和分类。通过轻松排除多余数据,此细分有助于更快地访问所有重要数据。

结合Merkle树和AST允许将更多复杂的数据集添加到将插入比特币区块链的交易中,同时还允许通过使用Merkle Proofs来减少交易数据大小。

事实上,使用这个概念,执行交易的人可以用merkle证明替换交易本身的未使用数据,以便减少交易规模,从而增加隐私并使非常可能的创建成为可能。复杂的智能合约而不影响网络。

一个澄清是必要的。实际上,MAST本身并不能在比特币上实现智能合约。它通过上面列出的功能简单地允许减少比特币脚本所需的数据大小,从而允许在事务中插入复杂的集合,从而在区块链的块中插入。

比特币脚本的问题

当中本聪创建比特币时,可以使用可以充当动态公钥和数字签名的程序(称为脚本)。这样就可以根据由脚本本身强加的约束(例如费用的时间限制)确定的行为来使用比特币。这是智能合约的真正第一种方法。

但是,这种方法对于更复杂的用途有一些限制。白皮书中提出的示例如下:

“爱丽丝希望能够随时使用她的比特币,但如果她的比特币没有在三个月内消费(也许是因为她已经死亡或丧失能力),她希望她的兄弟姐妹鲍勃和查理能够拥有她的比特币,只要他们可以同意在哪里花钱“。

在这种情况下,指定上述策略的脚本不仅包括Alice的公钥(验证来自其私钥的签名所必需的),还包括Bob和Charlie的条件,超时和公钥。

在当前的比特币协议中,当使用Alice的比特币时,必须在区块链上输入所有上述数据。但是,也应该包括未使用的部分脚本,例如Bob和Charlie的公钥,如果Alice自己花费她的比特币,那么这些公钥是无用的。

所有这些未使用的数据都会增加事务的大小。不仅如此,它们还通过公开披露超出必要的信息来减少隐私。此外,他们根据规模而非交易验证成本限制智能合约。

MAST:一种可能的解决方案

MAST协议试图通过消除在区块链上直接包含脚本的未使用部分的需要来尝试显着改善当前情况。这不仅减少了交易的规模,还提高了隐私,并且可以批量创建复杂的智能合约。

比特币开发人员Luke-jr在2016年11月写道:

“Merkelized抽象语法树(MAST)的想法是使用Merkle树来编码脚本中的操作。在消费时,用户可以仅提供他们正在执行的分支以及将分支连接到固定大小的Merkle根的哈希。这将兑换堆栈的大小从O(n)减小到O(log n)(n作为操作数)“。


总之,使用AST的MAST允许将脚本分成单独的部分,而Merkle树允许验证这些部分属于完整的脚本而无需拥有整个代码,因此不必每次都包含整个代码。在区块链上。

将这个想法运用到上面的例子中,爱丽丝可以随时使用她的比特币,但如果她不花三个月就会把它们送到兄弟鲍勃和查理(一种虚拟遗嘱),这是必要的首先创建一个Merkle树。

Merkle树的根仅使用32个字节的数据唯一地标识Alice和参与者的脚本。为此,树中的每个节点都有自己唯一的哈希标识符。然后将这些标识符中的每一个耦合到另一节点的标识符。

然后再次生成唯一的散列标识,这次是指那对节点。重复该步骤直到仅剩下一个标识符,即Merkle根。它在几个字节的数据中唯一标识整个集合,在此示例中仅为32字节。

此时,Alice添加了一个约束,在该约束中,她强制Spender必须提供Merkle将Merkle根链接到其中一个下标的证明。此下标必须返回值“True”以允许实际支出。

因此,可以在交易中获得可观的存储器节省,通过利用该系统,仅包括严格必要的内容。

优化区块链的使用

首先要突出的是保存块内的数据。在前面的示例中,我们使用了一个相当简单的比特币脚本,但也可以使用新条件和约束添加多个下标。因此,通过使用MAST,不仅可以显着减小数据的大小,而且还可以创建越来越广泛和复杂的脚本。

Merkle树方法还进一步优化了内存使用,从而在实际使用的情况下实现了更好的数据减少。简单来说,参考前面的“数字意志”的例子,最现实的情况是,爱丽丝继续花费她的比特币,因为她继续生活。另一方面,悲观的是爱丽丝去世的情况,因此她的比特币传给了她的兄弟。

树结构奖励 – 就内存使用而言 – 是最现实的情况,即Alice没有死(黄色),允许她以最少的内存使用量执行她的事务与其他所有其他更不可能的情况相比(红色/紫色) )。

在任何情况下,比特币协议的优势至少要好一个数量级,特别是对于复杂的脚本。

更多的比特币隐私

除了其他优点外,它还提高了比特币的隐私性。原因很简单:只有基本数据输入区块链而不是多余的数据。

在原始方案中 – 没有MAST – ,所有脚本数据都将上传到区块链。其中还有Bob和Charlie的公钥,因此攻击者可以追踪谁将继承Alice的比特币。另一方面,对于MAST,不可能仅仅通过共享的信息来追踪所施加的条件和继承人。

在隐私方面还有其他优势,但它们涉及大规模采用MAST以实现真正有效。为了避免攻击者识别出Alice使用特定脚本,可以创建一个对所有MAST用户都相同的“大规模”脚本,目的是使个别案例与其他案例无法区分。

但这是一个非常特殊的情况,这不是由于MAST本身,而是由于可能的实现。

在隐私方面,Taproot取得了进一步的进展,这是MAST的真正演变,结合Schnorr的签名,为比特币的隐私提供了切实的改进。

更复杂的比特币脚本

MAST最有趣的功能是创建越来越复杂的智能合约(脚本)的可能性。到目前为止,比特币有三种不同的字节大小限制,可以根据约束由各个脚本使用。对于Bare脚本,2010年7月增加了10,000个字节的限制。 P2SH脚本的限制降至520字节。另一方面,Segwit的限制为10,000字节。

查看K线走势图可以注意到,使用MAST,您可以拥有比其他机制更复杂的脚本(更多重复,下标,条件等)。这一切都在P2SH限制范围内。

还有其他限制适用于MAST允许绕过的比特币脚本,因为它不需要完整节点处理未使用的脚本。总的来说,MAST维护并显着提高比特币脚本的可扩展性,最大限度地利用资源,将合约管理的大部分负担转移给参与者自己,从而对网络产生最小的影响。

因此,MAST的实际结果是不允许比特币用户创建比以前更先进的脚本(它可能已经完成但使用了大量资源),但允许这样的操作而不会压缩比特币网络。

Taproot:MAST的可能实现

目前最有可能在比特币协议中实施的BIP是最近由Pieter Wuille提出的BIP,它提供了MAST在最近的演变中的集成:Taproot。

当用于升级比特币的实际分支发生时(软分叉可能不够),很难假设。但是,最近在Github上发布的第一个源代码将允许社区检查和测试提议的BIP,同时评估任何更改以及最终升级的最终确认。

资讯来源:由0x资讯编译自CRYPTONOMIST。版权归作者Emanuele Pagliari所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢