BTC扩展性的演进漫谈
BTC凝聚了最前沿的计算科学方向创新能力和模式,开拓性的开启了一个大规模开放计算网络的演进迭代发展。在这个方向上我们看到了闪亮的创新概念,理想主义的社区开发者以及混论的泡沫投机市场,但是这一切只是过程,而且是一个正确的不可避免的开放技术发展历程
从Ecash到去中心化交易网络Bitcoin
David Chaum在1983年发布了一篇Ecash的论文《Blind Signatures for Untraceable Payments》,其中描述了匿名电子现金的技术架构,基于盲签名实现的匿名在线支付协议。这应该是最早的关于匿名交易系统的设计思路,但是局限性主要需要依赖有一个中心化的信任节点去运行协议。
在Ecash的启发下,整个密码学届都在持续的探索匿名去中心信任的电子支付系统,其中的关键技术就包括了签名算法、P2P网络协议等。但是之前的设计方案都局限于一个具体的技术组建提升,很难解决开放环境的信任建立问题。直到2018年,bitcoin白皮书中提出了一个特别精妙的去中心信任协议——Proof of Work。PoW协议并不是单一的技术协议,其中引入了经济学博弈思想,通过经济激励来确保网络节点参与的积极性,并且Hash暴力计算来提高恶意数据攻击的门槛,巧妙的构建一个开放的安全可信计算网络。
BTC 在设计之处的主要目标是构建一个去中心信任的匿名在线支付系统,不支持可编程性,因此简洁而又稳定。随着BTC网络的规模逐步扩大和持有地址数量快速增长,可编程性和吞吐能力成为了开发者的关注焦点,也是制约BTC被广泛采用落地的俩大核心因素。
在过去的十多年发展中,BTC的可扩展性始终是一个焦点研究方向,最核心的设计困境在与如何在保证安全的前提最大化的扩展BTC计算网络的吞吐和处理能力。本文尝试根据时间的发展脉络,梳理出三个阶段的发展阶段:古典阶段、图灵完备和再次复兴。
第一阶段的协议设计理念基本以BTC网络为核心,嵌入二层资产协议,轻量安全但是扩展性不足,但是奠定了后面发展的理论模型。第二阶段主要关注点是图灵完备和可编程能力,在妥协安全的基础上为行业带了大量的开发者生态。第三阶段以Ordinal协议为起点,再次反思了当前协议安全性的问题,试图再次解决安全和扩展性的矛盾。
BTC扩展性设计思想的春秋古典时代
BTC核心升级 - 缓慢的原生扩展
2009年,Bitcoin主网正式上线,虽然已经可以稳定支持去中心化网络的交易和防止双花攻击,但是链上扩容始终面临着挑战。围绕着BTC链上升级始终是充满着激烈的争论和克制。重要的升级要点如下:
2010 升级到1MB空间,软分叉
2012 支持Pay to Script Hash,软分叉
2013 berkely DB 到Level db迁移,硬分叉
可以看出,这个阶段的BTC原生主要围绕着技术底层模块,以吞吐和稳定性为主,迭代发展和社区的需求有着较大的差距。在这种背景下,围绕着BTC核心的资产扩展协议开始在社区中被广泛讨论,染色币就是第一个落地的协议。
染色币(Colored Bitcoin) - 最轻量的新资产协议
2012 Yoni Assia首次提出染色币概念:bitcoin 2.X (aka Colored bitcoin) 。其核心思想是在原始的区块链结构上嵌入另一个资产的发行、转移和销毁,类似于一个染色的操作。该设计思想的优点是轻量安全,不需要BTC本身的升级和分叉支持,但是交易成本和数据构造相对比较麻烦。
真正的染色币实现要等到2014 年,ChromaWay 提除了基于填充订单的着色协议(EPOBC),在BTC的交易内部增加了2类新的资产交易操作:Genesis 用于发行资产,Transfer用于转移资产。由于染色交易信息是写入到UTXO交易中,对BTC区块不会带来存储污染,但是也需要特殊的钱包识别UTXO交易,防止被误花费。
Open Assets实现了第一个基于OP_RETRUN的染色协议, BTC OP_RETRUN指令允许开发者实现向区块中写入额外的数据,并不会打包进UTXO交易中,因为适合存储轻量的元数据。Open Assets基于OP_RETRUN数据区域写入了染色币的交易元信息,不需要担心被当作普通UTXO交易被误花费,但是这种设计需要客户端钱包重构愿数据来检索状态,相对比较复杂。
染色币相对来说适合比较简单的交易模型,扩展性不足。为了增强灵活性,MasterCoin的链下状态验证和一次性密封技术被提出。
Master Coin - 链下计算的先驱
2013年,J.R. Willett 提出MasterCoin的架构,主要是依赖链下节点状态维护,开发者可以基于MasterCoin协议发行自己的定制化Token。MasterCoin相比较染色币来说,大胆的提出了链下节点分离的架构,为日后的侧链设计提供了原始的设计参考。
除了在技术方案上进行创新突破,J.R. Willett在社区管理上更是提出很多的早期设想并实现,例如项目可信组织、初次发行协议(ICO)等概念。MasterCoin是第一个基于ICO模式融资的BTC生态项目,当时募资了超5000 BTC,按当时价格计算大约在50万美金左右。可信组织定义了一个机构来接受基金,并投入到社区、软件开发、合约和商业运营中。将BTC当时完全的开放社区化发展状态演变为商业组织和开源协议之间的相互支持和制约。
一次密封条SUS - 客户端验证的理论模型
同年, Peter Todd 提出客户端验证技术: Disentangling Crypto-Coin Mining: Timestamping, Proof-of-Publication, and Validation + single use seal(一次密封条SUS)。Peter Todd 首先总结了BTC的安全协议设计组件,主要氛分为了三个:验证发布(Proof-of-publication), 序列共识(Order consensus)以及交易验证(validation)。
验证发布(Proof-of-publication)
BTC本质上是一个去中心化的数据账本存储空间,所有的交易都会广播到全网中所有的节点,用以记录和全网见证。
序列共识(Order consensus)
虽然交易已经可以被全网节点记录和见证,但是如何保证一笔交易的发生是唯一的,即A给B的转账不会重复使用是一个棘手的问题。BTC采用一种相对比较简单的计算模型,即根据交易的顺序进行同步模型打包验证,这样每一次的打包上链之后进行确权,在进行下一次的打包,本质就是一种顺序队列结构。
交易验证(validation)。
为了保证全网能快交易打包,BTC设计了基于Hash的mekel 树,这样全网本地计算历史账本时就不需要交易明细,直接验证 Root Proof就可以。但是对于BTC衍生Token,这样的全网验证是可选择的,这也是客户端验证的思想起源。
Peter在此基础上抽象出基于一次性封条的安全验证协议:Single-Use-Seal Definition,本质上是防止双花的技术抽象模块,主要操作如下。
Gen(P)→L — Generate a New Seal Bound to Pubkey p
Close(L,M)→W — Close Seal L Over Message M , Producing a Witness Wl
Verify(L,W,M)→bool — Verify that the Seal L was Closed over Message M
首先系统根据初始参数P生成一个封条L。封条可以理解为日常生活中的一次性纸质封条, 可以保证被封物品的一次性打开或者关闭状态,防止被重复使用。
然后发送方在消息 M上进行L封闭,生成鉴证W。
接收方可以直接在封条L上验证M和W的结果真假。
基于上述的协议模型,BTC的UTXO机制本身就具备一次性被花费属性,天然可以成为上述的L机制,用来封闭带验证的消息M。本质来说,日后的ZKP技术也属一次性密封条的可落地技术实现。
Peter在BTC的交易安全协议基础上,总结除了一次性密封条的概念,并且可以由少部分相关客户端进行验证,而不是全网共识。这种架构设计为链下图灵扩展提供了一种落地可能性的理论基础。
BTC扩展的古典时代诞生了很多闪亮的设计提案,在安全和可用性进行最大可能性的平衡和妥协。其中区块染色、一次性密封技术都为以后的侧链和Layer2等技术提供了理论框架和工程落地参考。
BTC图灵完备性的百家争鸣
轻量化和简洁是古典时间扩展协议设计的基本特点和原则,但是离实际工程和开发者较远,更多还是核心开发者的研究和讨论。2015是一个分水领,新的社区风向更加关注可编程能力和应用的构建,而不是局限于BTC原始的支付协议,计算的图灵完备被广泛的提起。
整体来说,对于图灵可扩展性,开始出现两种设计思路,依赖于BTC安全性的扩展协议和独立于BTC的算力网络。前者设计的代表主要是RGB,在一次性封条的技术上引入了虚拟机可编程性。后者以ETH和BCH为代表,在独立的分叉算力网络上进行大刀阔斧的改进和创新,特别是ETH,直接将合约开发的概念带进了加密世界。
ETH - 最大规模的图灵完备计算网络
2014 Vitalik Buterin 在自己创建的杂志《Bitcoin Magazine》上发布一篇关于去中心化图灵完备计算架构的白皮书 –A Next Generation Smart Contract And Decentralized Application Platform。Vitalik系统化的研究了当时BTC 2.0概念的设计路线,包括MasterCoin ,Colored Coins等,发现在BTC原生上面做扩展难度很大,而且对BTC的核心开发者创新节奏感到失望,提出了一个全新的图灵完备的计算架构,命名为Ethereum。
Ethereum在BTC基础上,引入了图灵完备的计算架构,潜在的可以支持非金融的通用应用层开发。从2014到2024年经历了十年的发展,已经诞生了成熟的DeFi应用,以及ENS/NFT这种非金融的探索应用,特别是过去的五年中,ETH的开发者生态逐步独立于BTC社区,一度BTC被共识为数字黄金,仅仅存在储值的价值。
但是随着应用部署和用户的快速增加,状态膨胀和高额交易费问题开始现实,这也是当年BTC精简协议避免发生的设计目标。为了解决状态膨胀和交易费问题,ETH不得已转向更为复杂的ETH2.0协议和妥协的接受侧链设计,讽刺的是当Vitalik就是因为反对BTC侧链而设计和发起了ETH独立链。ETH2.0的共识协议虽然理论上可以通过分片的方式提高吞吐和分散状态存储负担,但是这种粗暴的设计带了更加复杂的节点间通信依赖以及更中心化的出快控制权问题,逐步面对着监管部分和开发者的双重挑战。
本质来说,ETH是一场没有完全胜利但是具备参考价值的探索。ETH1.0是一个图灵完备计算的原型设计,在功能扩展基础上牺牲了吞吐,因为协议依旧简洁似的安全性有所保障。但是ETH2.0在没有核心工程能力和算法突破情况下,希望兼容吞吐计算完备性,其牺牲的就只能是安全性了。安全性本质就是价值凝聚的基石,没有安全性作为保障,就是空中楼阁,镜中之花。
RGB - 缓慢发展的链下图灵完备设计
2015年除了ETH上线,另外一个设计目标支持图灵完备计算扩展的项目就是RGB,不同于ETH另起炉灶的独立网络,RGB依旧延续着基础BTC主网安全的计算扩展设计。
2016年,Giacomo Zucco在基于Peter Todd一次性密封技术和客户端验证的基础上提出了RGB网络的设计理念,试图将图灵计算能力扩展到BTC网络。相比较Peter以协议设计为核心,RGB完整的勾勒出链下图灵完备的架构体系和工程实现。
在RGB的核心协议设计中,分为2层交易转账系统,RGB客户端链下层以及BTC链上UTXO交易。用户在RGB层使用客户端进行交易新资产,并将最小化承诺封存在BTC UTXO交易中,最小花利用BTC进行防双花攻击和安全验证。
2019 年,Maxim Orlovsk 和 Giacomo Zucco 共同成立了 LNP/BP 标准协会,并开始了RGB图灵虚拟机的设计与开发(AluVM),支持一种名为Contractum的合约语言。虽然RGB的设计与落地在不断进步,但是复杂合约开发和混乱的协议更新导致开发者很难上手。
2023 年 4 月,LNP/BP 协会宣布 RGB v 0.10 发布,标准着RGB技术体系的成熟,开始向上兼容的版本迭代,大大的降低了开发者的门槛与负担。
同时期,类似于RGB的项目,还有闪电网络、Liquid、RSK等。闪电网络的设计思想更多是构建一个链下双向的中继交易通道,最终的清算会发生在链上。Liquid和RSK则是更偏向侧链的设计思想,本身具备自己独立层的共识协议,不完全依赖与BTC的验证安全性,但是安全性也依赖与侧链的共识协议。
整体对比而言,RGB对于古典时期BTC扩展协议的继承于发展更为保守和小心,以安全性为前提,但是发展速度很慢,吞吐的扩展性也受限。后期的侧链开始慢慢引入独立的共识协议层,虽然放弃了一部分安全性,但是更加灵活,对开发者更加友好。
2017 BCH/BSV 区块扩容 - 共识的分叉
BTC区块扩容的提案从2015年就是在BTC核心开发者社区在广泛的谈论,其中争论的焦点就是区块大小对BTC全网安全性的影响。由于增加了每次打包交易区块的大小,会导致全节点的状态膨胀,进而影响了全网去中心化的分布能力。BTC核心开发者选择了隔离见证技术来解决扩容问题,相当于分离了交易和数据区域,妥协了链上交易扩容的设计。
在这种背景下,BCH核心开发者则选择了纯粹的区块交易扩容,从1MB空间直接硬分叉到32MB,并且更灵活的增加OP Code. 在发展过程中,BCH核心社区又分叉出BSV网络,坚持锁定BTC原始协议,只扩容交易的区块,而不是共识协议和OP操作码。
整体来说BCH/BSV直接脱离了BTC初始的算力主网,在区块空间上成功的进行了扩展,虽然又类似于哥白尼这样的尝试引入BCH 虚拟机的研究团队,但是整体来说还是局限在BTC的分叉网络定位,降低了安全性但是并没有带来太大的计算能力扩展,影响力逐步被ETH更完备的独立算力网络所取代。
BTC扩展性的文艺复兴与星辰大海
2020年的DeFi Summer开启了ETH应用开发生态的巅峰,流动性、POS共识、Layer 2扩容等热点话题塞满了过去4年的创新发展历程中。整个行业甚至连名称都从加密(Crypto)、区块链(Blokchain)升级到Web3,不难看出其代表的关注点已经从去中心化、安全等转移到应用和开发者生态。事物总是在螺旋中上升,应用的繁荣带来了更多的新的用户和流量,但也容易让人们忽视底层的核心协议安全和价值的核心驱动引擎。在这种背景下,回归BTC逐渐成为核心社区开发者的焦点,不仅仅是因为BTC作为最大的数字资产的储备,更是因为BTC的协议安全性是行业的源头和价值锚点。
Ordinals - 重燃BTC扩展性的实验
2023年,率先破圈进入大众视野的是Ordinals协议,一种可以在BTC链上发行NFT的新资产发行协议。本质上Ordinals协议的技术设计归属于染色币的体系,区别在于基于OP_RETRUN记录了NFT资产的发行。这种技术和概念回归,是对BTC原生扩展协议的致敬,启发了整个行业重新思考BTC带给行业的价值和创新基石。
BTC Layer2 - 链下图灵计算的再次回归
在Oridinal的BTC回归于复兴的热潮下,链下图灵计算完备性的概念再次被重新关注。整体来说分成了两个技术流派,一种以RGB、客户端验证技术为基础的延续性重构设计,另外则是借鉴了ETH Layer2 的侧链架构。与2015年当时的扩容架构的不同之处在于,以ETH为中心化的Layer2 已经设计和发展了3-4年,zkp-rollup和op-rollup的技术栈也相对比较成熟。但是由于BTC本身不支持智能合约,如何验证rollup proof成为了棘手的设计,同时本身Rollup的侧链架构也是降低了安全水准,对于BTC社区来说并不是一种更创新的解决方案。
BTC Layer2从RGB项目开始,经历了长达9年的设计与讨论,长期没有落地的原因除了复杂的工程落地要求,最重要的是安全性和扩展性的平衡。如何不牺牲安全性的前提下,提升二层或者链下的计算扩展性依旧是一项复杂的设计目标,甚至本身也是一种伪命题。
BIPs - 漫长的BTC原生扩展性演进
相比较链下扩容,BTC原生的发展一直都在漫长的时间经历了各方的讨论和利益博弈,但是这种也是保证BTC安全性的重要前提,保持协议的精简性是BTC能持续发行的保障。目前新的创新方向焦点主要包含了:OP和脚本扩展,高效的数据结构设计,以及区块扩容。
OP和脚本扩展
BTC主网除了支持简单的交易验证,同时也支持对非图灵脚本的运行。在OP Code的历史发展中,不断又新的OP Code被并入,同时也有老的OP Code被删除。例如OP CAT,原本支持联合两个字符串操作,但是后来中本聪发现可能造成循环嵌套导致内存溢出导而被删除。P2SH则是在2012年,比特币改进提案BIP16(Bitcoin Improvement Proposals,BIP)中提出,P2SH引入了支持脚本的条件支付定制化,例如可以现实延迟支付,或者多重签名等。
除了原生的OP Code, Taproot升级中海引入Tapscript脚本,相比较原来解锁了更多的场景和限制,Tapscript 不仅能让比特币脚本摆脱目前 1 万字节的大小上限,还能解除操作码数量限制。
BTC操作码和脚本语言的升级一直都是BTC走向可编程性的重要基础,也是相对来说不破坏原生协议安全的重要方向。
MAST抽象语法树
为了能支持更复杂的BTC脚本和更大的交易区块,简洁和快速的验证协议始终是绕不开的底层技术模块。默克尔化抽象语法树(Merklized Abstract Syntax Trees, MAST)则是一项为比特币提议的升级,可以实现更小的交易体积、更好的隐私性,以及更大的智能合约。
例如一个延迟支付的脚本交易场景,Alice 三个月后自动支付BTC给Bob和Charlie,在MAST树的结构下就可以拆分为左右两个脚本哈希来验证,降低对区块空间的占用。
如果未来需要支持更多、更复杂的脚本嵌入,MAST在空间上能保证线性增长。设想一个无限延伸的版本:其第三个子脚本指明,三个月零一天后,Dan 和 Edith 可以花费此中的资金;第四个子脚本指明,三个月零二天后,Fred 和 George 可以使用这笔资金;等等。
区块空间扩容
区块扩容一直是BTC社区中最大的争议焦点,甚至还导致了BTC分叉链的发生,如BCH/BSV等。在BTC的历史上,区块空间限制一直都是动态的妥协,核心还是防止状态膨胀导致大节点影响了去中心化部署的能力。区块空间的升级,分了两个方向:一个是直接的交易区块扩大,第二个是分离出单独的区块空间。
第一种方向一直在缓慢的发展,2010年升级到1MB交易区块空间后一直保持到现在。第二中的代表技术是隔离见证(SegWit),其设计思想是分离交易空间和数据空间,数据空间不在全局验证,进行不会带来状态膨胀的问题。Pieter wuile(比特币核心开发人员、Blockstream 联合创始人)在 2015 年 12 月首次提出,后来形成了比特币 BIP 141,目前隔离见证的区块大小已经可以扩容到4MB的空间。
总结
BTC凝聚了最前沿的计算科学方向创新能力和模式,开拓性的开启了一个大规模开放计算网络的演进迭代发展。在这个方向上我们看到了闪亮的创新概念,理想主义的社区开发者以及混论的泡沫投机市场,但是这一切只是过程,而且是一个正确的不可避免的开放技术发展历程。
本文希望沿着BTC扩展性演进的路径,勾勒出短短十来年的前进和倒退片刻,在这个人类迄今为主最大规模的开放计算社区、网络的平台上,每个研究员、开发者都有着一个可以充分展示自己的才华。保持独立性和理想主义是开放创新的基石,敢于在混论的噪声中充分论证新的设计正确性,以此凝聚社区的共识,推动新的迭代。
参考
Blind Signatures for Untraceable Payments | SpringerLink
https://github.com/chromaway/ngcccbase/wiki/EPOBC_simple
https://docs.google.com/document/d/1uquyuPwlPjR5DjqxfBgA79FcgpVPC7cSngfvbKms9Lg/edit
mastercoin-whitepaper/index.md at master
Disentangling Crypto-Coin Mining: Timestamping, Proof-of-Publication, and Validation
Closed Seal Sets and Truth Lists for Better Privacy and Censorship Resistance
Scalable Semi-Trustless Asset Transfer via Single-Use-Seals and Proof-of-Publication
https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f









