原文标题:《干货|详尽解释隔离见证》
原文作者:MagomedAliev
原文编译:阿剑,以太坊爱好者
比如说,有个设想是“闪电网络”;但是,要在比特币网络中实现闪电网络,条件似乎还不具备,因为比特币自身的一些缺陷。另一个解决方案“隔离见证”也致力于提高可扩展性,但它同时也解决了许多问题,包括闪电网络实现所需修补的一些缺陷。本文中我们会讲解隔离见证的优势及其工作原理。
隔离见证是一个由多个BIP描述的软分叉,其主要用意是优化比特币交易和区块的结构,将交易的签名”、“witness”或“解锁脚本”)从交易中移到一个独立的结构中。它不仅允许降低比特币交易的数据量大小,也能解决“交易熔融性”问题,对支付通道和闪电网络这样基于比特币交易结构的技术来说极为关键。
隔离见证如何工作
在开始之前
我们先要简单回顾一下比特币的支付系统。它并不像银行那样,是一套账户和余额的列表。相反,每个比特币地址的余额都是由一系列发送给这个地址的交易来表示的;交易这一数据结构的主要部分就是输入和输出。输入是我们想要花费的前序交易,而交易的输出就是我们的资金发送的目的地址。下图展示了比特币交易的结构:
数据/机器智能美学先驱Refik Anadol推出解读量子物理的艺术NFT:金色财经报道,根据德国知名画廊“国王画廊”(K?NIG GALERIE)披露,媒体艺术家、导演和数据/机器智能美学先驱Refik Anadol在misa.art平台上已售出1000 NFT,这些NFT是Refik Anadol系列作品《QUANTUM MEMORIES : NOISE》的一部分,Refik Anadol使用 Google Quantum AI量子计算研究数据和算法来探索平行世界的可能性,并开发了一种定制的程序相干噪声实现,利用超越经典测量的计算surflets(Surflets:包含平滑不连续性的多维函数的稀疏表示)。这件作品的灵感来自于量子物理学中的多世界解释,并对其进行了推测——该理论认为有许多平行世界与我们自己的空间和时间存在于相同的时空。[2021/9/27 17:08:54]
输出中的PubKeyScript字段就是我们所说的“锁定脚本”。它用来保证只有接受地址的所有者才能使用这个支出。SignatureScript字段也就是所谓的“解锁脚本”,因为它是用来打开锁定脚本的钥匙,是用来证明地址所有权的。
分析 | 币安中签解读:最新中签率显示持仓逐步分散 机构投资者或有一定撤离:据TokenGazer观察BNB最新的中签信息,TokenGazer猜测机构投资者可能已经有一定程度撤离。
本次elrond中签率仅为11.07%,大幅度低于one的30%和matic的58%;
总签数10833,共计锁定978.5万BNB,约占BNB总体供应的10%,远远高于之前锁定2%左右的量,说明BNB的持仓已经有了一定程度的分散。
而币安自6月中宣布在9月隔离美国用户后出现较大幅度的跌幅,时间点上和本次Launchpad抽签时间段重合,可能说明机构投资者对监管有所顾虑已经出现一定程度撤离。[2019/7/2]
有关比特币交易和锁定脚本、解锁脚本功能的更多细节,可看此处。
后向兼容性
实际上,隔离见证不仅改变了交易的结构,也改变了交易的输出。不过,这不是说传统类型的UTXO和SegWit类型的UTXO无法在同一笔交易中花费:这种情况下,传统类型的UTXO将在输入内加载所有权证明,而隔离见证类型的UTXO将在交易输入以外的结构中加载证明。
不管怎么说,隔离见证的定位是一个软分叉,这个升级应该是可以忽略,无需强制的,而且,这也意味着,未升级的节点应该可以处理隔离见证类型的输出。实际上,旧的节点和钱包将以为任何人都能花费这些UTXO,也即这些UTXO是空签名也可花费的,因此即使在交易中没有看到签名,交易也仍然是有效的。而升级后的节点和钱包将在交易输入以外的地方,一个专门的“witness”字段寻找签名。
声音 | 最高人民法院工作报告解读:探索司法区块链等互联网模式:据新华网消息,12日,最高人民法院办公厅副主任陈志远接受专访,解读最高人民法院工作报告中网民高度关注的热点内容。陈志远介绍,杭州互联网法院通过全流程在线审理平台,实现案件全流程在线办理,让当事人打官司“一次都不用跑”;采用司法区块链等技术,让存证取证更方便,让电子证据更可靠。[2019/3/12]
案例
Pay-to-Witness-Public-Key-Hash
我们用例子来说明一下隔离见证会如何改变交易的数据结构。从标准的Pay-to-Public-Key-Hash(P2PKH)交易类型开始。
我们感兴趣的部分是输出,尤其是其“scriptPubKey”字段。我们先考虑一种标准的锁定脚本:
而隔离见证之后的锁定脚本如下所示:
如你所见,隔离见证的输出比传统类型的输出要简单很多:只有两个值会被推入脚本执行栈中。如我们上面说得,旧版本的比特币客户端会以为这个输出是掉在地上的钱——无需提供签名就能花费这个输出。不过,新的客户端会将第一个数字解释为版本号,而第二个则对应着一个锁定脚本。在现实中,只有压缩公钥的哈希值可以用在这里。这一点我们后面再说。
动态 | 媒体:蚂蚁金服成立区块链公司只是事务性公司 不要过度解读:据上海黄埔2月25日报道,蚂蚁金服旗下蚂蚁区块链科技(上海)有限公司在黄浦区正式揭牌成立。据了解,除蚂蚁区块链科技(上海)有限公司之外,蚂蚁金服旗下另一创新企业蚂蚁双链科技(上海)有限公司也在同期成立。消息人士称,蚂蚁金服旗下的子公司众多,而这些子公司往往跟注册地有关,跟实际负责业务关联不大。而成立这两家公司只是属于事务性的,为了当地办事方便,不必做过分解读。(财经网)[2019/2/26]
再来看看这个输出被花费时的情形。传统交易的输出在花费时的数据结构如下:
但是,在花费一个隔离见证输出的时候,交易的scriptSig将为空,而所有的签名都会放到一个专门的地方:
在P2SH中嵌入隔离见证
我们已经看到,使用隔离见证是有好处的。不过,上面的例子只对发送者和接收者都有升级软件的情形才适用。但现实并不总是如此。考虑这样一种情形:
中国人民大学法学院教授杨东解读《政府工作报告》:互联网金融的核心是对移动互联网技术、云计算、大数据、区块链技术运用,这将导致我们的金融体系回归金融的本质。目前互联网金融更多地带有金融科技的色彩,而监管科技的广泛运用更是有望将互联网金融信息不对称的问题根本解决,而未来信息在网络上的无障碍流动也必将导致人类生产方式的改变。[2018/3/10]
Alice希望给Bob转账一些btc,Bob有支持隔离见证的钱包软件而她没有。他们显然只能用标准形式的交易,但Bob希望使用SegWit来减少手续费。
这时候,Bob可以创建一个包含了SegWit脚本的P2SH地址、Alice会把这个地址当成一个普通的P2SH地址,因此可以直接向这个地址转账而没有任何问题。但Bob可以使用SegWit交易来使用这个输出,并获得手续费折扣。
这就是SegWit交易的两种类型P2WSH和P2WPKH在P2SH内实现的方式。
P2SH(P2WPKH)
想在P2SH交易中实现一笔P2WPKH交易,Bob需要使用其公钥创建一个见证程序。然后把结果哈希、转码成一个地址:
在一开始,我们创建的赎回脚本会经过一次哈希计算,如果结果符合锁定脚本中的哈希值,这个脚本就会得到执行,程序会验证放在witness字段的签名。
P2SH(P2WSH)
P2WSH脚本也可以用P2SH来实现。我们考虑上面所说的2-5多签名钱包的例子。所有的步骤都跟P2SH(P2WPKH)没什么区别:
首先,创建一个见证程序:
第一个数值是版本号,第二个数值是32位的SHA256哈希值,对应于我们的签名脚本。然后我们拿这个见证程序的HASH160哈希值转成一个普通的P2SH地址。要使用发往这个地址的输出时,我们需在scriptSig字段公布这个见证程序,在witeness字段提供完整的多签名脚本。
隔离见证的好处
梳理清楚技术的部分之后,我们就可以理解隔离见证的主要优点了。
交易熔融性漏洞
SegWit解决的一个关键问题就是比特币交易的“熔融性”,也即比特币交易的ID是哈希值这一点所带来的问题。我们详细说一下。
在以往的比特币交易中,签名是放在交易的输入部分的,第三方可以更改签名且不会让交易失效。这使得第三方可以在完全不更改交易的“关键”字段的前提下更改交易的ID。这样一来,交易还是有效的,含义也还是一样的,但是有了另一个ID,这可以用来执行另一种攻击,比如DoS攻击。
SegWit解决了这个问题,因为所有的签名都是放在交易外面的,因此签名的变动不会导致交易的哈希值变动,也就不会影响交易的ID。隔离见证还引入了一个专门的标识符,叫做“wtxid”:它是交易和整个witness部分的哈希值,所以如果一笔交易在传播时没有附带任何witness数据,交易ID就等于wtxid。
这个解决方案使得我们可以创建一系列前后相继的未确认交易,而无需担心任何风险,这对闪电网络这样的协议来说是非常重要的。。
网络和存储的扩展
Witness数据往往是交易数据中占比最大的一部分。在使用多签名脚本的交易中,witness最多可能占据交易数据量的75%。感谢SegWit,签名的传输变成了一个可选项:只有节点想要验证交易时,才需要请求这些数据。而没有支持SegWit的SPV客户端和节点也无需下载额外的数据,可以节省硬盘空间。
可用的区块空间扩大,降低交易手续费
SegWit类型的交易比以往的交易类型更便宜,因为它减少了需要存储的witness数据。准确来说,“Size”的概念在SegWit类型的交易上略有不同。它引入了一个“虚拟大小”的概念:所有放在witness部分的数据都会乘以0.25来计算数据量大小,从而一个区块中可以塞进更多的交易。来看一个例子。
假设我们有一笔传统类型的交易,数据量大小为200字节。那么1MB的区块里面可以放进5000笔这样的交易。而一笔等效的SigWit交易有120字节是放在witness区域的,因此其虚拟大小为80+0.25*120=110字节,所以区块可以放入9090笔这样的交易。如果上链的手续费是每字节40聪,则交易费会从8000聪减低到4400聪,几乎打了个对折。
脚本版本
你可能已经注意到了,每个锁定脚本都会有1个字节来表示脚本的版本。使用不同的版本号就能以软分叉的形式增加或变更功能。
签名验证的效率优化
隔离见证也优化了签名算法的效率。在SegWit之前,哈希计算的次数与签名数量的平方成正比,但有了隔离见证后,算法的计算复杂度就减低到了O(n)。
参考文献
Lightningnetworkindepth,part1:paymentchannels“Masteringbitcoin”—AndreasM.AntonopoulosBitcoinCoreblogManysegwitresourcesGoodarticleabouttxnmalleability
在《关于meme的观点》一文中,作者揭示了许多用于估值的模型本身都是Meme,甚至包括“营收”之类的东西.
?链集市?·让区块链落地更简单 《区块链行业观察》专栏·第45?篇作者丨Eports.net 图片丨来源于网络 编者注:原报告来自www.esports.net.
巴比特讯,DuneAnalytics数据显示,全球最大的NFT交易平台OpenSea在8月28日单日成交额达2.35亿美元,再创历史新高.
在这几天文章的留言里,有好些读者都提到美股会不会崩盘以及美股崩盘会对数字资产有什么影响?要看美股对数字资产的影响还要深入到更根本的原因中,我们才能发现端倪.
巴比特讯,Loot社区以88%的支持率投票通过LIP-0提案,支持销毁Loot合约密钥。销毁秘钥是当前合约所有者的手动操作,并将在社区对所有者包的投票结束后发生.
原标题:《Bitwise首席投资官:NFT作品的价值究竟在哪里?》撰文:MattHougan,BitwiseAssetManagement首席投资官编译:PerryWangNFT的价值究竟在哪里.