伟大的脚本恢复:比特币的前进之路

2024年05月19日17:31:58 动漫 6577
文章作者:shinobi
文章编译:block unicorn

伟大的脚本恢复:比特币的前进之路 - 天天要闻


尽管提案范围相当广泛,但rusty russell的“伟大的脚本恢复”可能是比特币发展的前进之路的原因是什么?

block unicorn注释:rusty russell是比特币社区的活跃开发者,在社区中非常受人尊敬。他曾在linux内核开发方面有过卓越的工作,也参与了许多比特币核心开发项目。

比特币最初设计时拥有一个完整的脚本语言,旨在涵盖和支持用户未来可能提出的任何潜在安全用例。正如中本聪在消失之前所说的那样:

“ 比特币的本质是,一旦版本0.1发布,核心设计就被确定为其余生命周期。因此,我希望设计它来支持我所能想到的每一种可能的交易类型。问题在于,每件事都需要特殊的支持代码和数据字段,无论是否被使用,这会导致出现过多特殊情况。解决方案是脚本,它将问题概括化,这样,交易双方可以用特定条件来描述他们的交易,节点网络会根据这些条件进行评估或是验证。” - 中本聪,2010年6月17日


他的整个目的是给用户一个通用到足以让他们按照自己的意愿组织自己的交易类型的语言。即,给用户设计和实验如何编写他们自己的货币的空间。


在他消失之前,中本聪删除了其中的15个操作码,完全禁用了它们,并且在脚本引擎堆栈上添加了一个硬限制,限制了可以操作的数据块大小(520字节)。这是因为他实际上搞砸了,留下了大量使得复杂脚本可能被用来对整个网络进行dos攻击(发送大量垃圾请求,导致网络瘫痪)的方式,创建了巨大且成本高昂的交易,会导致节点崩溃。


这些操作码并不是因为中本聪认为这些功能是危险的,或者人们不应该利用它们构建能够实现的东西而被移除的,而仅仅(至少表面上是如此)是因为它们在没有资源限制的情况下对整个网络构成的风险,这样它们可能在不受限制的情况下对网络施加的最坏的验证成本。


从那时起,比特币的每次升级最终都是对剩余功能的功能优化,纠正中本聪留给我们的其他不那么严重的缺陷,并扩展我们剩下的脚本子集的功能。



伟大的脚本恢复


在五月初的奥斯汀比特币++大会上,核心闪电网络开发者拉斯蒂·拉塞尔在会议的第一场演讲中提出了一个非常激进的提案,他基本上提出了重新启用中本聪在2010年消失之前禁用的大多数操作码的想法。


自2021年taproot(taproot 是比特币的一个重要升级,旨在提高隐私性、安全性和可扩展性)激活以来的几年里,开发领域实际上有点毫无目标。我们都知道,比特币并不具备足够的可扩展性,无法真正为世界上任何可观规模的人口提供自我主权的服务,甚至可能无法以最小化信任或托管的方式为能够超越非常大的托管机构和服务提供商、无法真正摆脱政府长臂约束的服务提供商提供扩展性。


这篇文章指出了比特币技术层面上的认识,这不是一个需要争论的问题。值得争论的问题是如何解决这个缺陷,这是一个非常有争议的话题。自从 taproot 提出以来,每个人都在提出非常狭窄的提案,旨在解决只有特定使用案例才能实现的问题。


例如,anyprevout(apo)是一个提案,允许签名在不同的交易中重复使用,只要输入的脚本和金额相同,这个提案是专门为了优化闪电网络和其多方版本而设计的。checktemplateverify(ctv)是一个提案,要求硬币只能由与预定义交易完全匹配的交易来支出,这个提案是为了通过使它们完全无信任来扩展预签名交易链的功能而设计的。op_vault 是专门设计用来为冷存储方案设置“超时期”,这样用户就可以通过将其发送到更冷的多签设置来“取消”从冷存储中提取,以防止其密钥被泄露。


还有很多其他提案,但我想你已经明白了要点。过去几年来,每个提案都是为了要么稍微增加可扩展性,要么改进单一的小功能,因为这被认为是可取的。这是为什么这些讨论没有取得进展的根源。没有人对其他提案感到满意,因为它们没有满足他们想要看到的使用案例。


除了提案发起者之外,没有人认为任何提案是足够全面的,可以被视为合理的下一步行动。


这就是“伟大的脚本恢复”背后的逻辑。通过推动并分析对脚本的全面恢复,就像中本聪最初设计的那样,我们实际上可以尝试探索我们需要的整个功能空间,而不是争论和内讧关于现在哪种小型功能扩展足够好的问题。



opcodes(操作码)


  • op_cat:从堆栈中获取两个数据,并将它们相加形成一个数据。


  • op_substr:接受一个长度参数(以字节为单位),从堆栈中获取一段数据,将该长度的字节移除并放回堆栈。


  • op_left 和 op_right:接受一个长度参数,从堆栈中获取一段数据,并从其一侧或另一侧移除指定长度的字节。


  • op_invert、op_and、op_or、op_xor、op_upshift 和 op_downshift:接受一个数据元素,对其执行相应的位运算。


  • op_2mul、op_2div、op_mul、op_div 和 op_mod:数学操作符,用于乘法、除法和取模运算(返回除法的余数)。


除了上面列出的要恢复的操作码之外,rusty russell还提出了另外三个操作码,旨在简化不同操作码的组合:

op_ctv(或 txhash/等效操作码):允许对交易的某些部分进行精细化的强制执行,要求这些部分必须与预定义的内容完全一致。


csfs:允许对签名进行验证,不仅限于整个交易,这样可以要求脚本的某些部分或使用的数据必须进行签名才能执行。


op_tweakverify:验证基于 schnorr 的操作,涉及公钥,例如从聚合公钥中添加或减去单个公钥。这可以用来确保在某个参与方单方面离开共享的未使用交易输出(utxo)时,其他所有参与方的资金都被发送到一个不需要离开的参与方签名就能进行合作支出的聚合公钥。



我们为什么要这样做


第二层网络本质上是比特币基础层的延伸,它们在功能上受到基础层功能的约束。闪电网络在实际实现之前需要三个单独的软分叉:checklocktimeverify (cltv)、checksequenceverify (csv) 和隔离见证(segregated witness)。


如果没有更灵活的基础层,就无法构建更灵活的第二层网络。唯一的捷径就是信任第三方,这是非常简单明了的,我希望我们都渴望尽可能从与比特币规模化交互的每个方面中移除信任第三方。


我们需要能够做一些目前无法做到的事情,以便安全地将两个以上的人合并到一个单一的未使用交易输出(utxo)中,并能够在基础层上无需信任地执行。比特币脚本目前的灵活性还不足够。在最基本的层面上,我们需要契约,我们需要脚本能够实际强制执行关于执行交易的更精细细节,以确保像一个用户安全地退出其自己的 utxo 不会将其他用户的资金置于风险之中。


在更高的视角上,这就是我们需要的功能:


自身审查(introspection):我们需要能够实际检查堆栈上有关支出交易本身的特定细节,比如“这笔钱的这部分金额会流向某个输出的这个公钥”。这使得我可以使用我自己的特定 taproot 分支自行提取我的资金,同时确保我无法取走其他任何人的资金。执行的脚本将确保其他所有者的资金,被发送回其他用户的公钥组成的地址,以防其他参与者造成资金损失。


前向数据传递(forward data carrying):假设我们进一步发展了比如一个具有大量人的单个utxo的概念,任何人都可以随意进出。在这种情况下,我们需要一种方式来追踪谁有多少钱,通常会使用默克尔树及其根。这意味着当有人离开时,我们必须确保“记录”谁有权获得什么作为其他所有人资金的找零utxo的一部分。这基本上是内省的一个特定用途。


公钥修改:我们需要确保可以在堆栈上验证对聚合公钥的修改。在未使用交易输出(utxo)共享方案中,我们的目标是通过一个包含所有参与者的聚合公钥来促进资金的合作和高效流动。当有人单方面离开共享的utxo时,我们需要从聚合公钥中删除他们的个人公钥。如果事先没有计算所有可能的组合,那么唯一的选择就是验证从聚合公钥中减去一个公钥是否会生成由其余个人公钥组成的有效公钥。


如何确保安全:varops正如我上面所说的,禁用所有这些操作码的原因是为了解决dos攻击(通过发送大量垃圾请求,导致网络崩溃),这种攻击可以导致组成网络的节点崩溃。有一种方法可以解决这个问题,就是限制任何这些操作码可以使用的资源量。


当涉及到签名验证时,比特币脚本中最昂贵的部分,我们已经有了这样的解决方案,它被称为签名操作(sigops)预算。每次使用签名检查操作码都会消耗一定的“预算”,即每个区块允许的签名操作次数,这对于交易可以对用户产生的验证一个区块所需的成本设定了一个硬限制。


taproot 改变了这种工作方式,它不再使用单一的全局区块限制,而是每个交易都有自己的 sigops(签名操作)限制,与交易的大小成比例。这基本上等于相同的全局限制,但更容易理解每个交易有多少 sigops 可用。


taproot在处理每个交易的sigops(签名操作)限制方面的变化,为一种泛化方法提供了可能性,这也是rusty russell在varops限制方面提出的建议。这个想法是为每个重新激活的操作码分配一个成本,以考虑到每个操作码可能创建的最坏情况,即验证时产生的最昂贵的计算成本。这样,每个操作码都会有自的“sigops”限制,限制它在验证过程中可以消耗的资源量。这也将基于使用这些操作码的任何交易的大小,因此可以方便进行推理,同时仍然累积到每个区块的隐式全局限制。


这将解决dos攻击(通过发送大量垃圾请求,导致网络崩溃),因为这些垃圾交易,也是导致中本聪最初禁用所有这些操作码的原因。



前进的动力 


我相信你们中的许多人会想“这个改变太大了。”我能理解这种想法,但我认为作为一个提案要理解的一个重要方面是,我们不必全部做到。这个提案的价值并不一定在于完全恢复所有这些功能,而在于我们会全面审视一个庞大的基础组件套件,并问自己我们在功能方面真正想要的是什么。


这将是对过去三年争吵和辩论的完全转变,过去三年我们只是在争论微小的狭隘变化,这些变化只有某些功能。这就像一个大家都能聚集在一起的广场,共同审视未来的方向。也许我们最终会恢复所有这些功能,也许我们最终只会激活一些功能,因为共识是这些功能,是我们所有人都同意需要开启的功能。


无论最终结果如何,这都可以是对我们未来方向的整个对话产生积极影响的变化。我们可以实际绘制并全面了解情况,而不是在争论下一步该走哪条暗淡不清的路线时摸索前行。


这绝不是我们必须走的前进之路,但我认为这是我们决定要采取哪条路线的最佳机会。是时候再次开始以实际而有成效的方式合作了。


本文提供的信息仅用于一般指导和信息目的,本文的内容在任何情况下均不应被视为投资,业务,法律或税务建议。对于根据本文做出的个人决定,我们不承担任何责任,我们强烈建议您在采取任何行动之前进行自己的研究。尽管已尽最大努力确保此处提供的所有信息都是准确的和最新的,但可能会发生遗漏或错误。

动漫分类资讯推荐

“萌崽”猫头鹰蜷缩居民楼道,他们及时救助…… - 天天要闻

“萌崽”猫头鹰蜷缩居民楼道,他们及时救助……

日前,经由警民的爱心接力,一只意外“落难”的国家二级保护动物长尾林鸮(俗称猫头鹰)得到救助,被安全放归大自然。图片由大海林分局东岗派出所提供6月12日,黑龙江省大海林分局东岗派出所接到辖区居民的求助:“警察同志,我在小区楼道里发现了一只小猫头鹰,麻烦你们救救它!”当日清晨,辖区居民李先生“捧”着一只小...
《真女神转生V:复仇》评测:黑暗世界观,抓神魔比宝可梦快乐! - 天天要闻

《真女神转生V:复仇》评测:黑暗世界观,抓神魔比宝可梦快乐!

《真女神转生V:复仇》游戏类型:角色扮演发售日期:2024/06/14制作发行:Atuls/Sega游戏语言:中文游戏平台:PC、PS、NS《女神转生》最早是由Atlus在1987年制作的一款PC88和FC的游戏,改编自西谷史1986年的同名幻想小说,由Namco发行。该作讲述了女神伊邪娜美转生于1969年日本东京,成为一名女子高中生。因一位疯狂天才黑...
一次巡逻历四季!这条巡边路是战士们踏出来的 - 天天要闻

一次巡逻历四季!这条巡边路是战士们踏出来的

近日,新疆军区某边防团木孜边防连组织连队官兵,进入海拔3500米的木扎尔特冰川深处展开巡逻。木扎尔特冰川,是伊犁河支流特克斯河地表水的主要源头,该支流水流量占伊犁河流域总流量的三分之二以上,是我国重要的淡水资源。新疆军区某边防团木孜边防连就驻扎在这道冰川附近。“木孜”是蒙古语“冰川”的意思,该边防连也被...
不良人:李星云最信任四个人,姬如雪上不了榜?第一实至名归 - 天天要闻

不良人:李星云最信任四个人,姬如雪上不了榜?第一实至名归

李星云是动漫《不良人》的主角,也是继承了不良帅的高手。不过他在第6季混得非常悲催,因为他一直不敢以真实身份示人,仅有少数人提前知道了他的身份。若不算不良人的话,数来数去李星云只信任4人,其中还没有女帝。 没有女帝。本来女帝也是一路扶持李星云的贵人,但李星云却没有把自己的身份告诉她。降臣救活了李星云,而...
【欧锦赛早报】英雄总是最后登场! - 天天要闻

【欧锦赛早报】英雄总是最后登场!

北京时间昨夜今晨,2024德国欧锦赛进入了第三比赛日。本届欧锦赛阵容最为豪华的英格兰队迎来了他们的首场比赛,最后一位归队的英格兰新星贝林厄姆完成了他的欧锦赛处子球,帮助球队1-0拿下比赛。而在率先开打的D组第一轮波兰vs荷兰的比赛中,波兰队的布萨克头球破门,加克波扳平比分。最后时刻关键先生韦格霍斯特再次发挥作...
悬空寺刺杀,贬谪叶家只为皇城安全?其实庆帝早早挖了个巨坑 - 天天要闻

悬空寺刺杀,贬谪叶家只为皇城安全?其实庆帝早早挖了个巨坑

近日和媳妇看《庆余年2》,里面悬空寺刺杀一案,动静大,雨点小。媳妇一直说有点看不懂,于是只好冒着剧透风险,给媳妇解释了这段剧情。后面的解读涉及一定剧透,请慎点。悬空寺刺杀,牵扯3个人,一个胡人混进禁军的卧底,一个被满门抄斩漏网的家族子弟改名
《玫瑰的故事》中,为何苏更生与黄振华的结局,结婚却分居生活? - 天天要闻

《玫瑰的故事》中,为何苏更生与黄振华的结局,结婚却分居生活?

最近热播的电视剧《玫瑰的故事》中,苏更生和黄振华的结局是他们结婚了,但选择了分居的生活方式。苏更生和黄振华的关系经受了多次考验。其中最大的挑战之一是前女友白晓荷的意外闯入,给他们的关系带来了不小的冲击。然而,苏更生最终选择了原谅和接受黄振华,显示了她对这份感情的重视和珍惜。在经历了种种波折后,苏更生...
斗破苍穹年番停播两周,网友一片骂声,萧薰儿和萧潇要登场了 - 天天要闻

斗破苍穹年番停播两周,网友一片骂声,萧薰儿和萧潇要登场了

斗破苍穹年番动漫居然停播了,改成播放集合了,这到底是什么回事?其实官方早就公布了停播的公告,从公告来看,这周和下周确实是停播,改成播放集合了,不过今天斗破的热度还是很高的,虽然没有更新,但还是有不少的热度和讨论,估计是被网友骂上热搜的。