金色财经近期推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读。
尽管3月12日比特币大跌,让币圈人士很是受伤。但作为一名投资人还是应该多关注技术进展,毕竟技术进步是比特币的价值根源。正如2017年的“隔离见证”见证了2017年的比特币大牛市,希望比特币新的技术突破能带领比特币走出泥沼。
正如我们在“BTC第三次减半全解读”中所说,比特币在2020年值得关注的一个进展就是Schnorr/Taproot/Tapscript软分叉,计划的这次分叉将包含三个比特币改进协议BIP 340、341和342。我们将对这三个BIP进行系列解读,上两期金色硬核(Hardcore)解读了Schnorr签名的BIP340和Taproot的BIP341。
本期聚焦Tapscript。看什么是Tapscript协议以及如何激活比特币改进协议(或BIP),enjoy it
Tapscript(BIP 342)
本次升级提案的第三部分BIP 342描述的是Schnorr和Taproot的补充升级,称为Tapscript。如我们在Schnorr/Taproot/Tapscript的第一篇文章中所述,比特币脚本用于决定比特币的花费策略。
BIP 342改进了签名的哈希算法,因此我们可以验证taproot脚本,从而引入灵活性,添加了新的操作码以增强比特币的智能合约功能,并且还更改了对资源要求的一些限制。
金色午报|1月21日午间重要动态一览:7:00-12:00关键词:推特、Robinhood、内马尔、block.one
1.推特在iOS端上线NFT头像功能;
2.Robinhood 开始测试加密钱包;
3.足球明星内马尔购买BAYC NFT并更换为推特头像;
4.加密货币总市值跌至2万亿美元下方;
5.前Coinbase副总裁加入a16z任CMO;
6.原block.one首席技术官BM回归并进行EOS开发工作;
7.美国金融业监管局考虑修改加密法规以更好地保护投资者;
8.萨尔瓦多小镇EI Zonte:使用比特币支付可以享受许多折扣。[2022/1/21 9:03:42]
什么是操作码(Opcodes)?
操作码(Opcodes)是操作码(operation codes)的缩写,基本上是脚本语句或命令。这些命令可以返回“ TRUE”或“ FALSE”,用于发送/接收交易。
例如,脚本指令指定了解锁脚本所需的签名数量。它们还指示了交易的比特币数量以及收款人地址。
操作码可用于删除堆栈中的项目并执行计算,然后将结果添加回堆栈中。请记住,作为基于堆栈的编程语言,脚本指令是按照从堆栈顶部到底部的顺序执行的。
什么是Tapscript?
作为比特币编程语言(脚本)的升级版,Tapscript更容易添加新功能,且提供基于Schnorr签名的批量验证(batch verifiability)。
什么是批量验证?Schnorr/Taproot/Tapscript系列第一篇讲过。
金色晚报 | 11月21日晚间重要动态一览:12:00-21:00关键词:国会议员、英伟达、萨尔瓦多、Bitfinex
1.美国国会议员要求众议院议长修订基础设施法中的加密条款;
2.三箭资本联合创始人:比特币和以太坊都对过去有太多的怀旧之情;
3.《2020-2021中国城市区块链发展水平评估白皮书》发布;
4.世界经济论坛报告:CBDC在实现互操作性方面是很复杂的;
5.英伟达CEO黄仁勋:元宇宙能帮企业省下数十亿美元;
6.萨尔瓦多将发行10亿美元BTC债券并用其中五亿购买更多BTC;
7.Bitfinex母公司IFINEX宣布与萨尔瓦多合作创建数字资产和证券监管框架;
8.在线礼品卡商店GiftChill接受SHIB作为支付方式。[2021/11/22 7:03:09]
Tapscript还补充了BIP 341(Taproot)中提出的对比特币脚本结构的改进,该结构需要更改某些操作码,而BIP 342则涉及需要进行的更改。
理解Tapscript的另一种方法是考虑Taproot的Merkle树,其中每个叶子(leaf)都是一个脚本,可称之为叶子版本,类似于SegWit的脚本版本控制。
但是不同之处在于,脚本不会在付款时显示,而只会在花费时显示。不同的叶子可以具有不同的版本,其中仅显示实际使用的叶子。Tapscript是Taproot下版本0的叶版本。
Tapscript与传统和SegWit的比特币脚本共享大多数操作,但有一些区别:
签名操作码验证Schnorr签名(而不是ECDSA签名)。
金色晨讯 | 3月4日隔夜重要动态一览:21:00-7:00关键词:乌克兰、Libra、澳本聪、BTC减半、区块链工程
1. 乌克兰国家预防腐败局将加密货币定义为无形资产。
2. 彭博社:Facebook考虑重新设计Libra以获监管机构批准。
3. 港交所行政总裁李小加:考虑利用区块链等提升对市场的监管能力。
4. 山东省将建设区块链金融重点实验室和区块链与新技术融合重点实验室。
5. 广州市税务局:大力推行包括区块链发票在内的电子普通发票。
6. 澳本聪诉讼进展:Kleiman要求传唤前nChain CEO出庭作证。
7. 距离BTC第三次减半不到10000个区块,预计5月12日进行减半。
8. 中国首个“区块链工程”本科专业获批。
9. BTC现报8779美元,近24小时下跌1.53%,市值为1602.09亿美元。[2020/3/4]
多签操作码OP_CHECKMULTISIG和OP_CHECKMULTISIGVERIFY被操作码OP_CHECKSIGADD代替,允许使用Schnorr进行签名批量验证。
由于签名验证是比特币脚本中最耗费CPU的操作,因此这些操作码对实现与基于Schnorr的多重签名方案相关的效率提升至关重要。
当前,用于2-of-3的多重签名交易的脚本如下所示:
2 <公钥A> <公钥B> <公钥C> 3 CHECKMULTISIG
使用Taproot/Tapscript,可以以批量验证的方式创建相同的多重签名策略,其脚本是:
<A pubkey> OP_CHECKSIG <B pubkey> OP_CSADD <C pubkey> OP_CHECKSIGADD OP_2 OP_EQUAL
金色财经现场报道 中国银行原副行长王永利:比特币区块链是完全脱离现实的“乌托邦”式的“网络世界”:金色财经现场报道,在2018全球首届万国区块链技术博览会上,中国银行原副行长王永利进行《区块链、数字币需要关注的核心问题》主题演讲。他指出: 比特币挖矿造币的区块链是一个完全封闭的网络体系,难以解决现实问题,区块链追求点对点的方式。比特币区块链体系内主要解决的是比特币的“挖矿”产生及其在体系内转让的验证与分布式记录存储,运行多只有比特币,而没有其他任何资产或价值。比特币区块链是完全脱离现实的“乌托邦”式的“网络世界”,成为耗费巨大能源却难以解决问题的“网络游戏”。交易平台并不受区块链网络的控制,交易平台是中心化的运营平台,也没有受到严格的线下监管,跑路、破产等事件频发,交易平台出问题时,不会影响比特币本身的发展。但因为交易平台是外化的平台,因此有很大的风险。[2018/4/21]
许多操作码被重新定义为OP_SUCCESS操作码,它无条件使整个脚本有效,以简化软分叉升级。
与现在正使用的机制OP_NOP相比,新操作码OP_SUCCESS的引入更容易验证。
以前无法使用的操作码通常返回“FALSE”状态,Tapscript会将它们返回“TRUE”状态。只要脚本中存在这些操作码,你就可以无条件地使用它,而实际的好处是可以将操作码重新定义为任意值,并且不需要向后兼容。
这种用新的操作码扩展脚本的新机制,比现有的见证版本控制机制更易于协调和使用。后果是,它有望为将来比特币脚本添加更多有用的操作码开辟道路。
现有的NOP操作码可能是专门为了具有升级机制而添加的,以便我们可以轻松地向比特币脚本语言添加新的操作码。
金色财经讯:10月24日,由贵州省大数据发展管理局、贵阳市人民政府共同发起成立的贵州省区块链标准建设指导协调组和贵州省区块链标准工作组,在贵阳国家高新区召开了“贵州省区块链标准工作组会议”,组织开展区块链标准研制工作。[2017/10/26]
但到目前为止,它们仅用于CHECKLOCKTIMEVERIFY和CHECKSEQUENCEVERIFY。为了与软叉兼容,这些NOP只能执行以下两项操作之一:1)中止或2)根本不执行任何操作。
由于它们重新定义了NOP,目前CHECKLOCKTIMEVERIFY和CHECKSEQUENCEVERIFY两操作码无法以任何方式修改堆栈。结果是,它们不会从堆栈中弹出参数,而你总是需要在后面跟一个OP_DROPafter。
操作码不执行任何操作(即NOP),Tapscript是一种解决方案,它引入了一个新的操作码OP_SUCCESS,它“返回TRUE”。这些操作码只有在被使用时才被用到,并且直到它们在网络上定义了锁定的语义后才被使用。
结果是,禁用和从未定义的操作码编号将变为“return TRUE”。随后,可以将这些操作码重新定义为任何内容,因为所有内容是软分叉的,与“return TRUE”兼容。
签名哈希(SIGHASH)的计算方式不同于旧脚本或BIP143 v0隔离见证中的计算方式。
什么是签名哈希?简而言之,签名哈希是比特币签名的标志,用于指示对交易的哪些部分进行签名。
使用scriptsigs,签名可以证明你有权花费某些比特币。这些签名以某种方式构造,签名后附加了一个字节,用于指定以哪种方式对交易进行签名。因此已经有一些SIGHASH被部署和实施。
最常用的是SIGHASH_ALL,其中除scriptsigs之外的所有内容均被签名。而当仅对当前输入进行签名并且交易中的所有其他内容均不视为签名的一部分时,将使用诸如SIGHASH_ANYONECANPAY,承诺(commitment)不包括在内。
对于这些SIGHASH类型,已经提出了许多改进建议,比如你只想在交易的某些方面签名,以及可以指定在花费比特币时对什么条件感兴趣(不感兴趣)的条件。SIGHASH已经提出了许多有关如何执行此操作的标志,包括SIGHASH_NOINPUT。
它的工作方式是屏蔽交易的不同部分。SIGHASH_NOINPUT背后的想法是,你不在乎提供的是什么特定输入,你不在乎为交易提供输入的交易ID是什么,但你在乎的是金额。在SegWit之前,这是在2015年提出的可延展性修复程序,它本身就是可延展性修复的。因为围绕SIGHASH_NOINPUT的担忧和风险,社区没有将其合并到比特币协议中(但是SegWit的引入重新打开了此升级的大门)。
SIGHASH_NOINPUT的主要好处是,它极大地简化了诸如闪电网络等支付渠道。一个关于改变闪电工作方式的提议是eltoo,当有人试图作弊时,对其进行处罚时,它通过传输已失效的先前状态从而不必再关闭通道,简化通道使用。
这需要更改比特币脚本。尤其是,更改涉及将签名应用于交易(即Sighash系统)的方式,这使用户可以重新平衡到其他输入。
尽管对现有的某些Sighash类型进行了一些调整,但是Schnorr/Taproot/Tapscript提案所提供的功能与BIP 118即SIGHASH_NOINPUT完全不相似(已经有很多关于使其安全的各种方法的讨论)。
Tapscript并未包括SIGHASH_NOINPUT,而是提供了几种灵活性机制(比如带标签的公共密钥),这些机制将允许在不增加成本的情况下开放此功能。这种机制将使以后的软分叉很容易使用新的Sighash类型,或其他更改来扩展签名检查操作码。
使用Tapscript,以你不知道的字节开头的公钥会自动生效。因此,可以引入新型的签名方案和新的Sighash方案,而无需为每种方案添加新的Checkig操作码。像SIGHASH_NOINPUT这样的功能,可以作为新的公共密钥版本不增加成本地包含在内。
Tapscript还更改了资源限制。
例如,今天的比特币脚本有10000字节的脚本大小限制,该限制将被删除。它还消除了操作码数量的限制。
由于签名哈希中没有直接包含scriptCode(仅通过可预先计算的tapleaf哈希间接包含),因此签名检查所花费的CPU时间不再与所执行脚本的大小成比例。
在Tapscript中,签名操作码的数量不会计入BIP141或旧的sigop限制。旧的sigop限制使在创建区块中选择交易很繁琐,因为它是一个随着权重附加的约束。相反,Tapscript签名操作码的数量受见证人权重的限制。
Tapscript与BIP 340/341一起扩大了比特币可能的有趣应用的数量,例如特殊的Taproot合约。特殊的Taproot合约允许执行更复杂的多方合约,并为基于比特币的分散式自治组织(DAO)开辟了可能性。
在比特币上激活BIP 340–342
如何将升级添加进比特币协议?
提交BIP后,将编写代码以匹配规范,然后将其作为拉取请求(pull request)提交。此阶段之后,用户和开发人员对拉取请求进行投票。即使将其合并,用户也可以通过运行新代码(或不运行并坚持使用旧代码)进行实际投票。
Schnorr/Taproot/Tapscript升级目前处于社区反馈阶段(如下图所示)。下一步是处理代码,获取对比特币的拉取请求,并准备好测试网络。
尽管下图表明进展是线性发生的,但是在社区反馈和协议实施阶段之间可能会有一些反馈循环(例如,当规范转换为工作代码时,提案可能会进行进一步的更改)。
BIP如何进入比特币协议中概览
从2017年的SegWit升级可以看出,BIP 9的使用(需要95%的矿工表示已做好激活准备)可能导致社区不同参与者、开发人员/用户与矿工之间进行拔河比赛。
一些人认为,比特币矿工可能将BIP 9用作强大的工具,并根据自己的利益打造协议。例如,SegWit无法通过BIP 9激活,而是转向了由shaolinfry创建的变体,即用户激活的软叉或BIP 148。
为了激活BIP 340–342,比特币开发人员Matt Carallo借鉴了SegWit升级的经验教训,提出了“大共识清理”作为一种可能的方法。该提议结合了BIP 8和BIP 9的理想特性,看起来像这样:
1、激活方法最初以类似于标准的BIP 9的方式部署(通常在一年的时间范围内需要95%的矿工准备就绪),
2、如果此途径激活失败,则需要六个月的时间来让社区讨论未激活升级的原因,
3、用户可以选择两年激活期的BIP 8部署。
这种激活方法试图在遵循社区意愿的基础上进行平衡,但同时又要使激活期足够长,以确保比特币协议的更改不会成为负面先例。
时间是不确定的,因为不知道将这些建议转换为工作代码时是否会发生意外的问题。到2020年末或许更晚,我们才能看到BIP 340-342的激活。
Schnorr/Taproot/Tapscript可以说是比特币迄今为止最重大的变化,它可以改善扩展性,提高隐私性和智能合约功能。以SegWit采用作为标准,尽管至少要花两年甚至两年以上的时间才能看到它们的广泛采用,但比特币的收益将是深远的。
延伸阅读:
金色硬核 | Schnorr签名哪里好 2020年比特币可能为它软分叉(1)
金色硬核 | 什么是Taproot?它将为比特币带来什么好处(2)
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。