作者?|?在比特币亚洲大会上,傅、SatoshiLab和万屋岛BTC工作室讨论了一个与技术相关的话题。应该用比特币的脚本语言还原OP_CAT操作指令吗?随后,在上海万物岛BTC工作室的闭门会议上,大山先生也讨论了相关问题,并鼓励我们工作室的学生写一篇系统的总结文章。为什么在行业会议上讨论指令的恢复?有那么重要吗?这件事涉及哪些问题?相信很多人都会有相关的疑问。一、OP_CAT的基础知识要了解恢复OP_CAT的问题,我们应该先了解一些与OP_CAT相关的基础知识。在开发语言中,操作码也称为指令或函数,是开发语言的基本组成部分。在本文中,我们都称之为指令。1。1?OP_CAT有什么功能?Concat在许多开发语言中通常用于连接两个字符串,因此OP_CAT的缩写也应该来自concat一词,以形成OP_CAT的指令。示例1:concat string str1=“Hello”在Java开发语言中;string str 2 =“world“;//注意有一个空格字符串str 3 = str 1。concat(str 2);system . out . println(str 3);输出结果为Hello world示例2:Concat Select Concat(“my”、“SQL”)from result in 2:MySQL;执行的结果是显示字符“MySQL”。Concat(即字符串拼接)在高级开发语言中经常使用,并且在许多情况下也非常重要。例如一些场景:数据显示和输出:在许多场景中,我们需要以字符串的形式显示或输出数据,例如将不同的数据项连接成一个完整的句子,将数据格式化为特定的字符串形式等等。这时,我们需要使用字符串拼接操作。数据处理和操作:在数据处理和操作中,有时需要拼接多个字符串以生成新字符串,例如将多个文件路径拼接成一个完整的路径,将多个URL参数拼接成一个完整的URL等。这也是字符串拼接操作的一个重要应用。如果比特币的语言是一种高级语言,毫无疑问会有这种字符连接功能,但比特币的开发语言具有一些特殊性,因此是否包含此指令存在争议。比特币的语言是一种与波兰范式相反的脚本语言,波兰范式是非图灵完备的。比特币脚本指令的常见类型:关键字:1。不变。如:OP_0,OP_FALSE2。过程控制。如:OP_IF、OP_NOTIF、OP_ELSE、...3.堆叠。如:OP_TOALTSTACK(将输入压入辅助堆栈的item部分并将其从主堆栈中删除),...4.字符串。如【比特币期货】:OP_CAT(连接两个字符串,禁用),OP_SIZE(将栈顶元素的字符串长度推入栈中(无需弹出元素))5。位逻辑。如:OP_AND、OP_OR、OP_XOR6。算术逻辑。如:OP_ 1ADD(输入值加1)、OP_ 1SUB(输入值减1)7。加密。例如:OP_SHA 1(输入是SHA- 1算法哈希。)、OP _ check SIG()8。伪关键词9。保留关键字比特币脚本指令的常见类型:脚本:1。支付到公钥哈希到比特币地址2。从支付到公钥再到标准比特币。3.证明了它不能被消耗/可移动输出4。任何人都可以消费产出5。猜测交易的五种标准交易脚本类型包括:支付给公钥哈希(P2PKH)、支付给公钥、多重签名(最多限制为15个密钥)、支付给脚本哈希(P2SH)和数据输出(OP_RETURN)。网站上有详细的说明:https://en.bitcoin.it/wiki/Script./克洛克-0/。2?比特币语言中OP_CAT的删除和其他指令的删除在早期的比特币脚本语言中实际上具有字符连接的功能,即最初存在“OP_CAT”操作码,后来被删除。在比特币的脚本语言中,OP_CAT能实现几个?UTXO?解锁脚本字节串的组合连接处理可以提高BTC主网的可编程特性和计算复杂度。然而,出于中本聪对安全性(以及可能的稳定性)的考虑,在20 10年8月,该操作码从比特币协议中删除。在比特币的脚本语言中,一开始有许多与字符操作相关的指令,此后大多数都被删除了。删除了OP_CAT、OP_SUBSTR、OP_LEFT和OP_RIGHT,仅保留了OP_SIZE。如下图所示。不仅删除了字符串操作指令,还删除了许多其他指令。(1)位操作相关指令winxash 4(2)算术运算【数字货币区块链】为什么要删除这么多指令?有关比特币技术发展和变化的详细信息,读者可以阅读导致比特币再次爆发的新技术发展摘要。2?为什么有人要“恢复OP_CAT”网上很多人都在说比特币要“恢复OP_CAT”,这是对这件事的严重误解。但是你真的需要像OP_CAT这样的字符连接函数。你该怎么办?Tapscript?把这个类似的函数加进去,这样就会产生“恢复OP_CAT”的东西。2.1?“恢复OP_CAT”的提议和人们的误解在介绍相关内容之前,我们需要了解一下BIP。BIP是比特币改进提案的缩写,直接翻译为:比特币改进提案。它包括以下状态,它们之间的状态转换如下图所示:tddqmbeh【DGC在数字货币中崩溃了吗】2023110月,比特币核心?开发商伊森·海尔曼和?Botanix实验室?首席软件工程师阿明·萨博里联合推出了一份名为“OP_CAT”的比特币改进提案(BIP)草案,将这一讨论推向了一个新的高度。有关该提案的详细信息,请参考网站:https://github.com/bip420/bip420Tapscript's提案的新脚本(1 2行)在以下提案中有一个重要段落:该实现受op _ cat的原始实现的启发,因为该实现在MMIT公司“误改”4bd 188c禁用它之前就存在于比特币代码库中:原始比特币脚本代码(13行)如下:BIP420该草案仅包含简明的/klo实现该操作码的灵感显然来自最初删除的OP_CAT。该文本用不同的颜色进行标记,这强调了它并不是要恢复比特币原始指令中的相关指令,而是在tap script(tap root的扩展)中重新实现一个类似的指令。恢复比特币指令中的一些指令和在Tapscript中生成新指令是不同的概念,影响范围也不同。2.2?在1部分中。1,我们已经知道字符连接是编程语言中非常常见和重要的函数,在高级开发语言或功能丰富的编程语言中都需要它。有了这个共识,再了解比特币的变化,我们就明白恢复OP_CAT的根本原因了。目前,一些希望在主比特币网络上开发功能的团队和项目方希望恢复这一指令。有了这个指令,可以实现更强大的智能合约(比特币上有一个智能合约,但它与图灵不完整)。这一功能的增加将支持许多其他依赖智能合约的创新方法,还可以将比特币从一个仅作为支付服务的网络发展成为一个功能更丰富、可扩展的计算平台。(2)比特币已经为通过Taproot扩展功能做好了准备。这里我们需要详细了解一些东西:主根、MAST、主根脚本。最好阅读“导致比特币再次爆发的新技术发展概述”,以了解比特币技术爆发的底层变化。比特币技术通过隔离Segwit扩展了比特币OP_RETURN的功能,直接扩展了比特币的实际存储空间,最大区块可达4M。这些扩展的空间目前被广泛用于存储文本或图片等场景,但设计者的目的是扩展比特币的功能。由于几个BIP协议BIP340、BIP34 1和BIP342,其中BIP340引入了可同时验证多个交易的Schnorr签名,而不是椭圆曲线数字签名算法(ECDSA),网络容量再次扩展,批量交易的处理速度加快,这为部署复杂的智能合约提供了可能。BIP34 1实现了merkerized抽象语法树(MAST),以优化区块链上的事务数据存储;bip 342(tap script)使用比特币的脚本编码语言来扩展比特币的原生脚本功能。隔离见证的Segwit和Taproot的空间扩展导致了Schnorr、MAST tree和TapScripts的出现。他们的使命是扩展比特币主网的功能。4M的存储空间可以存储大量的程序代码。只要Tapscript足够强大,就可以开发许多应用程序。但是Tapscript刚刚诞生,许多指令还不完善,这将逐步扩展Tapscript指令的功能。3?比特币协议在Web3.0中的地位和作用即使我们通过第2节知道了恢复OP_CAT的提案的内容和原因,但如何判断此类事件呢?因为不仅会添加OP_CAT,Tapscript还会添加其他指令,所以掌握这种增加的基本原则是什么?我们还需要从更宏观的角度来看待比特币。3.1?Web3.0的应用架构和分层协议设计思想在《从状态机的角度观察比特币的第二层,可以看到未来Web3.0应用的架构和构建路径》一文中,我们已经大致勾勒出了Web3.0的应用架构,如下图所示:heufhb1我们可以看到,区块链是Web3.0中的重要基础设施,只有比特币网络适合作为分层结构中的最底层基础设施。这就是为什么区块链“以比特币开始,以比特币生态结束”,而所有其他区块链系统都是比特币的广义二级或测试技术。了解了Web3.0的应用架构,我们还需要了解一些分层设计思想(尤其是底层应该具备的特性)。分层设计是人类处理复杂系统的一种手段和方法。通过将系统划分为多个层次结构并定义各层之间的关系和功能,可以实现系统的模块化、可维护性和可扩展性,从而提高系统的设计效率和可靠性。我们用现有的案例来说明以下TCP/IP协议:处于协议的底层,TCP和IP协议只需要实现最简单、最基本的功能。那些应用层协议,如FTP、SMTP、IMAP、HTTP等。,都是在高层实现的,并将封装在TCP和IP协议中。如果比特币是类似于TCP/IP协议的最底层协议,那么原则上比特币的主网络应该保持最简单和最基本的功能。那些丰富的功能,尤其是应用层的功能,需要在比特币的第二层或第三层协议上实现。利用这个原理,我们可以准确判断清楚底层协议和上层协议。那么,我们如何判断像Tapscript这样在主比特币网络上实现的扩展功能?3.2?为了增加我们判断的准确性,我们应该首先了解两种做事哲学:过度设计和充分性。(可能我们知道也没用,因为比特币的发展决策是由很多因素决定的。比特币的去中心化文化使其发展由许多因素决定,或者说由人类的群体思想决定。)过度设计和适可而止是两种不同的做事哲学,各有利弊。以下是它们的优缺点和一些示例:(1)过度设计过度设计的优点:可扩展性强:过度设计通常会考虑未来的需求变化,可以应对各种扩展和变化。更多的灵活性:过度设计的系统可以适应不同的情况和需求,具有更高的灵活性。提高长期效率:后期之间调用底层可以开发很多功能,长期来看效率提高了。过度设计的缺点:耗时:过度设计需要更多的时间和资源来完成,这可能会导致项目延迟。资源浪费:过度设计可能会引入冗余功能或复杂结构并浪费资源。可能过于复杂:过度设计可能导致系统结构过于复杂,增加系统维护和理解的难度。过度设计适用场景(总结了我的一些个人经验,参考了ChatGPT的部分内容):过度设计通常适用于非全新的项目,并且有实例可以参考,而全新案例的初始需求较少或不够清晰,但预计需求可能会经常变化,因此我们可以借鉴现有经验,在一定程度上使用过度设计原则。例如,大型软件系统或平台的底层可以考虑过度设计。(2)适可而止的优点:简单明了:适可而止的思想是专注于解决当前需求,并保持系统简单易懂。节省资源:足够的想法可以避免过度设计和不必要的功能,并节省时间和资源。快速交付:足够的理念可以快速交付可用的产品或系统,以满足用户的基本需求。足够的缺点:无法适应变化:足够的想法可能无法适应未来需求的变化,需要进行大幅度的修订和调整。可扩展性差:刚刚好的想法可能会导致系统缺乏可扩展性,并且很难添加新的功能和组件。适合的场景:要实施的项目没有实例可以参考,或者很少有实例可以参考。如果不知道发展方向和目的地,可以采用适可而止的方法。而小项目完全适用于足矣的理念。对于创新项目,通常采用这一原则,因为未来是完全不确定的。过度设计和充分性不是对立的概念,而是一种思维方式的不同取向。比特币的原生脚本BTCscript大多采用“适可而止”的原则,但Tapscript是原生步骤的扩展,可以参考一些编程场景稍微过度设计。还需要考虑使用Taproot和Tapscript。它们只是第一层和第二层之间的连接技术,不应过度使用,甚至仅限于Tapscript以上的功能。通过这种方式,我们找到了设计Tapscript的下限和上限。3.3?Web3.0(下一代互联网)的辉煌未来在3.2节中,我们表达了Tapscript的指令设计可以适当地过度设计,但上限是满足连接比特币第一层和第二层的需要。然而,在早期,特别是当比特币的价格不太高时(一个简单交易的执行不超过100 USD,这被认为太高)以及当分布式系统的第二层或第三层不成熟时,许多人仍然会开发太多的功能,这可能导致Tapscript包含太多的指令。另一方面,区块链技术和相关分层建设,作为整个Web3.0的基础设施,比特币的Tapscript技术不应开发太多功能。请参考第3节中的Web3.0应用程序架构图。1。在“从状态机的角度观察比特币的第二层,我们可以看到未来Web3.0应用的架构和构建路径”中,我们通过中国互联?网络发展统计报告了解Web2.0的丰富应用在统计报告中,我们可以看到Web2.0中的应用非常丰富,拥有庞大的用户群。这些应用包括:即时通讯、在线视频、短视频、在线支付、在线购物、搜索引擎、在线新闻、在线音乐、在线直播、网络游戏、在线外卖、网络文学、在线租车、在线办公、在线旅游预订、在线教育、在线医疗……,几乎涵盖了人们生活的所有领域。除了这些消费互联网内容,在产业互联网中也有很多应用。9bve2iwx2020。12-2021。6用户规模、网民使用率等各类主流应用尚未进入Web3.0的世界,当这些应用进入Web3.0时代后,用户对规模和性能的要求更高。因此,未来比特币主网承担的任务非常繁重,这使得有必要使用分层结构来构建一个真正的Web3.0世界。然后比特币主网上的功能主要是简单稳定,主要使用第一层和第二层之间的连接技术。我个人主张不要过度使用比特币第一层和第二层之间的连接技术,给Tapscript一个扩展空间,但功能不要太多。4?谁有权决定是否恢复OP_CAT?我们知道这个提议的真实内容,那就是在Tapscript中生成一个类似于OP_CAT的指令函数,而不是在比特币脚本中恢复原始的OP_CAT。谁对这项提议有决定权?比特币核心的开发团队?矿工?生态开发商?社区?如果我们从利益的角度来分析,Tapscript中OP_CAT指令的生成将增加比特币主网的可编程性,并将生成更多的比特币主网程序和应用程序,这将增加主网上的手续费。矿工将是最积极的支持者,生态开发者也将支持他们,因为他们增加了开发的可能性。比特币核心团队怎么看?核心团队一直坚持保守风格。它会同意吗?存在很大的不确定性。其实这个事件还涉及到一个很大的问题。对于Tapscript的开发来说,有必要制定一套规则。它不同于比特币主网的BTCScript。决策是否应该放松?比特币的BIP协议参考了以太坊的EIP协议,这可能是一个很好的分级方案。每份建议书采用不同的审核标准。通过整理这篇文章,我个人判断这个提案最终会通过,否则Tapscript的功能会太弱,也许过程会有点曲折。在比特币的世界里,由于没有权威机构,权利不是比特币世界的直接因素。只有经济因素将是决定性因素,通过什么最终是由大多数人的利益驱动的。即使Tapscript被过度设计,它也会因使用中的经济因素而得到纠正。根据央行等部门发布的《关于进一步防范和处置虚拟货币交易投机风险的通知》,本文内容仅用于信息分享,不为任何商业和投资行为所宣传或背书。请读者严格遵守所在地区的法律法规,不要参与任何非法金融行为。不提供交易入口、指引、分销渠道指引等。与任何虚拟货币和数字收藏品相关的分销、交易和融资。武硕内容未经许可禁止转载或复制,违者将追究法律责任。
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论