链资讯 链资讯
Ctrl+D收藏链资讯
首页 > ICP > 正文

MAST:干货 | 什么是比特币默克尔化抽象语法树?_NFTNDR币

作者:

时间:

默克尔化抽象语法树是一项为比特币提议的升级,可以实现更小的交易体积、更好的隐私性,以及更大的智能合约。在本文中,我们会解释MAST的基本原理,讲解其潜在好处,并总结目前一些包含这项技术的提案。

问题:没用到的脚本数据

中本聪给了比特币一个有趣的特性,是他没有写在比特币白皮书里的。除了可以通过公钥来接收比特币、用私钥数字签名来花费比特币,用户还可以编写程序,当成动态的公钥和签名来用。

当你指定一个脚本后——这在每一种比特币钱包里都是基本操作——由比特币网络强制执行的比特币协议就不会让任何人花费这个脚本所控制的比特币,除非脚本返回True。这让你可以指定资金的花费条件,称为“encumbrances”,比如要求花费的交易一定要得到你的私钥签名。

更加复杂的财产条件也是有可能实现的,比如下面这个例子,我们会用它贯穿整篇文章:Alice希望能够随时花费她的比特币,但如果她连续三个月没有花费自己的比特币,她希望自己的兄弟姐妹Bob和Charlie拥有自己的比特币,在任何两人能达成一致的地方使用这些财产。

下面这个条件脚本就实现了上文所说的目标,它不仅纳入了Alice的公钥,但也加入了以下条件性逻辑:一个超时条件,以及Bob和Charlie的公钥。

在当前的比特币协议中,上述所有的数据都必须添加到区块链中,在Alice的比特币花费的时候,也包括在特定的花费行为中完全无关的脚本部分,也要曝光。就比如在Alice花费自己的比特币时Bob和Charlie的公钥也要曝光。

Messari前主管:目前正处于DeFi顶峰阶段,但实际的顶峰可能会是现在的两倍:2月6日消息,Messari前主管Qiao Wang发推称,“我不知道在目前的DeFi mini周期中,我们离顶端有多远,但是事情并没有像2020年8月下旬那样疯狂。如果当前的DeFi mini循环到此结束,那么这就是完美的顶峰,我确实认为我们正处于顶峰阶段,但实际的顶峰很可能会是现在的两倍。完全基于互联网泡沫,我不会感到惊讶,在当前加密货币周期的顶峰时期,顶级DeFi资产的价值将超过超过100B美元。”[2021/2/6 19:03:49]

未使用的条件数据增大了交易的体积,也使用户在必要之外曝光了更多的隐私,同时,也使体积而非验证代价成为智能合约大小的主要限制因素。MAST旨在改善这些情况,办法就是移除在区块链上直接包含未使用的脚本部分的需要。

MAST初始构想

MAST?1?背后的观念来自于两种久已存在的概念,?抽象语义树和默克尔树。抽象语义树是一种通过将一个程序分割成独立的小块来描述程序的方法,这样会让程序变得更容易分析和优化。为了生成一个AST,你需要把所有的方程与其前提用箭头连接起来,直至所有的前提都被找出。下图即是上文示例脚本的AST。

另一方面,默克尔树则可用来验证某个元素是否是属于某个集合,且无需知晓整个集合的全貌。举个例子,比特币的简易支付验证钱包就使用默克尔树来验证某笔交易是否存在于某个区块中,这样无需下载完整的区块,可以节省带宽。

经济学家王福重:比特币本身不需要其他货币计价,也不需要现在的货币政策:中央财经大学教授、经济学家王福重在微博上表示,所谓比特币暴涨暴跌,不能作为货币,是一种错误认识。暴涨暴跌是用美元等法币计价的结果。比特币本身是不需要其他货币计价的。比特币没有类似美联储的管理机构,根本不需要调节供应量,也就是不需要现在的货币政策。它就是一个商品计价工具,无所谓多少,或者说供应量总是适当的。货币不再对实际福利产生作用。这才是真正意义上的货币,世界货币,最佳货币。人类在货币这个事情上,走弯路已经太久。[2020/12/27 15:49:34]

要生成一棵默克尔树,先要把每个元素都各自哈希一次,生成各自唯一的标识符;然后这些标识符配对之后再次哈希,生成这一对标识符的标识符;如此不断重复,直至只剩下一个标识符,称为“默克尔根”,它就是一个短小精悍、但是标记了整个集合的标识符了。

在验证某个元素属不属于某个集合时,拥有整个集合的人可以向你提供从那个元素到默克尔根路径上的所有标识符。这样就能证明,这个元素确实在这个集合内。

简而言之,AST背后的技术让你可以把一个程序分成多个小块,而默克尔树让我们可以验证这些小块确实是一个完整程序的一部分,且不必暴露整个程序。这就是MAST的基本原理,可以让花费者用一个默克尔证明来替换在单次交易中没有用到的条件——减少交易体积、提高隐私性,并支持更大的合约。

MAST的一个例子

我们以上文的财产条件为例,为我们希望的两种可能场景分割为两个子脚本:

Alice可以随时花费自己的比特币或者,如果连续三个月使用Alice的签名来花费,则需要Bob和Charlie的签名来花费此中的比特币基于这两个独立的子脚本,创建一棵默克尔树:

声音 | BTG创始人 廖翔:比特币暂时的上涨对现在的熊市不构成任何逆转:近两日币价回涨,比特币重返4000美元上方,BCH更是涨幅50%以上,就此事,金色财经采访到BTG创始人廖翔,廖翔表示:此次反弹是正常的反弹,从六千块钱的三天跌了百分之五十,而晚此次反弹只对现在的熊市构不成任何的这个逆转。他只是一个超跌反弹。[2018/12/22]

这棵默克尔树的树根最终标识了Alice的完整财产条件,而且只有32字节的体积。此后,Alice可以使用一个替代性的条件脚本,声明:一笔花费交易,只有提供其中一个子脚本连接到默克尔根的证据、并且子程序返回True的时候,才是有效的。

子脚本的默克尔证据,形象地画出来会像下图这样,就看用的是哪个子脚本了:

好处#1——更小的交易

我们先来看看MAST如何能让复杂财产条件的用户创建更小的交易。这是MAST给我们带来的第一个好处。

在上文的例子中,我们使用了一个具备两个子脚本的财产条:要么Alice自己花自己的钱,要么Bob和Charlie在等待三个月之后一起花她的钱。我们来设想一个无限延伸的版本:其第三个子脚本指明,三个月零一天后,Dan和Edith可以花费此中的资金;第四个子脚本指明,三个月零二天后,Fred和George可以使用这笔资金;等等等等

这个思维实验可以使我们得到下面的这张图,它显示了,子脚本的数量与需要加入区块的条件数据量,在有和没有MAST时候的关系。

声音 | “计算机安全教母”宋晓冬:现在的区块链其实没有任何隐私保护:“计算机安全教母”宋晓冬近日在接受媒体采访时表示,区块链中的安全性和隐私性是两个概念,现在的区块链上的大多数数据和智能合约都是公开的,其实没有任何隐私保护。其实很多人会比较因特网早期和现在区块链的情况,但是我们看到在因特网早期的时候,虽然经济模型不清晰,但其实用户增长率非常高,但是在区块链的经济应用中我们确实还没看到很多应用。[2018/9/27]

只有这些信息,你是没法知道Alice以外是否还有人能花费这里的资金、以及他们花费是需要面对什么约束条件的。你可以从MAST中猜测可能有一些别的条件,但也仅限于猜测而已——Alice可能只是假装她的默克尔树还有其它可以花费的部分。

对应地,如果你看到的是另一个分支,你不会知道这笔资金在超时之前是否能花费,也不知道是不是只需一把私钥就能花费它。你同样可以猜测存在其它的花费条件,但你没法在区块链上确证这一点。

保证未使用的财产条件不曝光在某些时候非常有用,比如某些商人可能希望自己的智能合约尽可能保密,不要被潜在的竞争对手看到。这一点与某些标榜自己是专为智能合约设计、但实际上又不能为这些合约提供隐私性的山寨币恰好相反。

隐私性也可以为所有的比特币用户提供额外的好处,即使某些用户根本不在乎财产条件的隐私性。假设从本文一开始,Alice就是唯一一个使用非MAST条件模板的人。因为所有条件都是公开的,那么任何人都可以跟踪Alice的花费行为,只需在区块链上观察这个模板被使用的情形即可,这样Alice的隐私就荡然无存。

金色财经现场报道 Alex XU:现在的区块链各团队缺少协同 :金色财经现场报道,今日粤港澳大湾区新金融论坛上关于区块链的底层技术讨论中,去中心化交易协议Ox运营总监Alex XU谈到,关于未来的区块链和交换数字资产,世界各个地区都应该是开放的,人们在完全分散的条件下获得基础设施,在多个层次,免费开放使用,并在此基础上发展。而目前有一个“疯狂的环境”即,各个团队之间的协调相当松散,每个人都建立自己的开放软件,而不是联合找到统一的方法和途径。[2018/4/7]

任何让识别特定用户更容易的设计,也会让人们可以更容易地区别对待他们的比特币和别人的比特币,这叫做“同质性的缺失”。如果某些人知道了Alice的财产条件长什么样,他们就可以贿赂或者强迫矿工不要打包这些人的交易,以此阻止Alice使用自己的比特币。

MAST不能完全解决这个问题,因为Alice仍然需要揭示部分的产权负担,但是许多别的复杂财产条件可以解析成少量的简单MAST类型条件。

举个例子,Alice的默认花费行为看起来就像其它只需提供单签名的普通支付行为,所以Alice的基于MAST的交易跟其它基于MAST的单签名交易就没有任何分别。这反过来提高了Alice的隐私性,也提高了她的资金的同质性,以及所有使用基于MAST的单签名条件的用户的货币同质性。

MAST的这一好处还很有可能与其他提高比特币隐私性和同质性的提议结合在一起。有些提议是让某些复杂的财产条件可以用单签名来使用,比如PieterWuille和GregoryMaxwell的“通用门限树”、AndrewPoelstra的?“无脚本式脚本”,还用ThaddeusDryja的?“离散对数合约”;MAST就可以和这些方案相结合。

但即使这些方案都不能在比特币上实现,MAST自身也能为复杂财产条件的用户提供更多的隐私性和可互换性,不论是与当前相比,还是与支持用户自定义智能合约的山寨币相比。

好处#3——更大的智能合约

比特币现在为单个脚本设置了三种不同的体积限制:裸露脚本大小不能超过1万字节,在2010年7月引入;P2SH脚本不能超过520字节;segwit脚本不能超过1万字节。我们把这几个大小在上面的图中展示出来:

可以看出来,即使是极端的无限延长的例子,MAST也比当前所有的机制支持更多的条件分支。实际上,MAST的扩展性非常之好,以至于即使你拥有现在可观测的宇宙中所有的能量,若是只用来创建一棵标准的默克尔树,其默克尔证据也只有8448字节。即使是这么大的默克尔证据,任何现在的笔记本电脑,都能在1毫秒之内完成验证。

因为免去了全节点处理未使用的子脚本的任务,MAST还能帮比特币脚本绕过别的一些硬性限制。在这一方面,MAST很好地保存和延伸了比特币智能合约长期的设计目标,也就是合约的负担应尽可能由合约的参与者承担,而节点付出了带宽、内存和处理能力,却无法得到补偿,因此应尽可能少承担。

所以,MAST的真正成就不是让比特币用户可以创建更加高级的合约,而是它打开了这种可能性,还不会给比特币的节点增加新的负担。

实现MAST:现有的多种提议

迄今为止,bitcoin-dev邮件组里提出了两种方法在比特币协议中启用MAST,两种方法都仍在草案阶段,可能会有所变更。

第一种提议是JohnsonLau提出的?BIP114,使用了一个基于隔离见证的延伸特性,使得原生的隔离见证地址可以成为对MAST财产条件的默克尔根的承诺。花费交易因此可以从树上选择一个子脚本。

第二种提议是MarkFriedenbach提出的两个未命名的BIP,它提高了脚本语言的灵活性,使得编程者可以编写脚本来验证基于MAST的财产条件。如果用Friedenbach更喜欢的方式来实现,那会让比特币现在支持的三种脚本类型都可以使用默克尔证据。

这几种提议互有短长,但都提供了上文所说的MAST的好处。每一个都可以用软分叉来激活。

结论:我们什么时候才能用上MAST?

上文我们讲解了MAST的好处,也简要提及了两种在比特币上实现MAST的提案,你可能也好奇,什么时候我们能用上MAST。遗憾的是,我也不知道。

从理念,到提案,到完整的实现,到提议软分叉,到激活软分叉,道阻且长。围绕隔离见证升级,为期两年的大戏已经很清楚地展现了这一点。

但从我的角度看,MAST背后的基本理念已经在比特币技术社区中获得了广泛的支持,而对MAST最感兴趣的开发者也会继续开发,除非有人能证明这种技术完全不靠谱。有朝一日这些开发者成功提出可供同行审议的软分叉代码,就轮到读者你们和其他比特币用户,来决定MAST是否能成为比特币协议的一部分了。

延伸阅读

BIP114:MerklizedAbstractSyntaxTree?byJohnsonLauTailCallSematics?byMarkFriedenbachMerkleBranchVerifyopcode?byMarkFriedenbachDiscussionatcore.techmeetup?byMarkFriedenbach(transcribedbyBryanBishop)MerklizedAbstractSyntaxTrees?byJeremyRubin,ManaliNaik,NityaSubramanianAnexplanationandjustificationofthetail-callandMBVapproachtoMAST?byMarkFriedenbachMakingMASTMeaningful?byBrianDeeryThenextsteptoimproveBitcoin?byAaronvanWirdum

致谢

感谢MarkFriedenbach、JimmySong和JohnNewbery对本文草稿的评论。当然,文中出现的所有谬误,都属于我的责任。

脚注

RussellO’Connor被公认为是第一个描述了MAST雏形的人,有些来源则还会加上PieterWuille。来源:PeterTodd、GregoryMaxwell和MarkFriedenbach。感谢JohnNewbery。

根据自由创作-分享协议4.0,保留署名权,且在后续分享和改编中应维持同样的要求。

原文链接:

https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

作者:DavidA.Harding

翻译:?阿剑

标签:MASTLICNFTPUNMASTER币alice币创始人NFTNDR币GPUNKS20价格

ICP热门资讯
TRA:无聊猿高攀不起?BAYC艺术家团队推出吸血鬼项目Sneaky Vampire Syndicate_Lift.Kitchen ETH

本文来自?Decrypt原文作者:TimHakkiOdaily星球日报译者|余顺遂 摘要: SneakyVampireSyndicate团队希望其项目能发展成一个元宇宙社区.

MAST:Visa为NFT市场“添把火”,CryptoPunks 24小时交易额涨逾10倍,总交易额破8亿美元续刷历史新高_NFT

支付巨头Visa是最新加入NFT热潮的大公司,周一宣布于8月19日以近15万美元的价格购买了CryptoPunk7610,这是NFT收藏品项目CryptoPunks3,840名“女性”朋克之一.

数字资产:现在的数字资产:资本管理公司新的“竞技场”_NFT

近年来随着数字资产的名声大噪,以及市场基础设施和监管框架的不断发展,加密货币、证券代币和加密证券等数字资产逐渐出现在投资者的视野之中.

元宇宙:科幻作家陈楸帆:Metaveres(元宇宙)将延展生命,打破限制|8问_Octaverse Games

2021年,Metavers第一股Roblox在纳斯达克的上市,Facebook宣布成立Metavers公司打造元宇宙,Metavers这一概念在一夜之间引爆市场.

DNS:教程丨接受加密支付?如何将DNS域名变成ETH地址_INE

撰文:WilliamM.Peaster本文编译自Bankless加密地址并非人性化设计。把钱寄到我的ETH地址,它是0x123asd1231……想象一下,这必须大声说出来?显然不能.

区块链:资产管理公司KB Asset推出韩国首只区块链共同投资资金_metamask病

据KoreaTimes消息,韩国资产管理公司KBAssetManagement周一推出了该国首只专注于区块链的共同投资基金:KB全球数字链经济基金.