比特币,作为第一个成功的去中心化数字货币,自2009年问世以来,一直是数字货币领域的核心。作为一种创新的支付方式和价值存储手段,比特币引发了全球范围内对加密货币和区块链技术的广泛关注。然而,随着比特币生态的不断成熟和扩展,它也面临着多种挑战,包括交易速度、扩展性、安全性以及监管问题。
近期,以BRC20为首的铭文生态率先引爆市场,多款铭文实现超百倍涨幅,比特币链上交易严重堵塞,平均Gas最高超过300sat/vB。于此同时,Nostr Assets的空投进一步吸引市场关注,BitVM、BitStream等协议设计白皮书被提出,比特币生态方兴未艾,暗藏爆发之势。
资产发行:从染色币说起
铭文之火,本质在于其为普通人提供了一种低门槛发行资产的权利,同时享有简单性、公平性与便利性。比特币上铭文协议的产生在2023年,但是早在2012年,就存在利用比特币实现资产发行的设想,称之为染色币(Colored Coin)。
染色币:早期尝试
染色币是指一组使用比特币系统来记录除比特币以外资产的创建、所有权和转让的类似技术,可以用于追踪数字资产以及第三方持有的有形资产,并通过染色币进行所有权交易。所谓染色,指的是对比特币UTXO中添加特定的信息,使其与其他比特币UTXO进行区分,这样就为同质化的比特币之间带来了异质性。通过染色币技术,发行的资产具备众多和比特币相同的特性,包括防止双花、隐私性、安全性、透明性与抗审查性,保证交易的可靠。
值得注意的是,染色币所定义的协议,并不会被一般的比特币软件所实现,因此需要使用特定的软件才能够对染色币相关交易进行识别。很显然,只有在认同染色币协议的群体中,染色币才具备价值,否则,异质化的染色币将失去其上色的属性,回退到纯粹的satoshi。一方面,小规模社区所共同认可的染色币可以借助比特币的众多优点进行资产发行与流通;另一方面,染色币协议想要通过软分叉合并进最大共识的Bitcoin-Core软件几乎是不可能的。
Open Assets
2013年底,Flavien Charlon提出Open Assets Protocol,作为染色币的一种实现。资产发行者利用非对称密码学计算资产ID,保证只有持有资产ID私钥的用户才能发行相同的资产。对于资产的元数据,利用OP_RETURN操作码存储到脚本中,称元数据为marker output,在不污染UTXO的前提下存储了染色信息。由于利用了比特币的公私钥密码学工具,资产发行可以由多签进行。
EPOBC
2014年,ChromaWay提出EPOBC(enhanced, padded, order-based coloring)协议,协议包含两类操作,genesis与transfer,genesis用于资产的发行,transfer用于资产的转移。资产的类型无法显示编码区分,每一次genesis交易就发行一个新的资产,发行时就确定总量。EPOBC资产必须通过transfer操作转移,如果EPOBC资产作为非transfer操作交易的输入,资产会发生丢失。
关于EPOBC资产的额外信息,是通过比特币交易中的nSequence字段进行存储的。nSequence是比特币交易中的保留字段,由32bit组成,其最低六位用于确定交易类型,低6-12位用于确定padding(用于满足比特币协议的抗粉尘攻击要求)。使用nSequence存储元数据信息的优势在于其不增加额外的存储。由于没有资产ID进行标识,每个EPOBC资产的交易必须追溯到genesis交易以确定其类别及合法性。
Mastercoin/Omni Layer
和上述协议相比,Mastercoin的商业落地更加成功。2013年,Mastercoin进行了历史上第一个ICO,筹集5000BTC,开启了新的时代。现在人们所熟知的USDT,最初是通过Omni Layer发行在比特币上的。
Mastercoin对比特币的依赖程度更低,更多地选择在链下维护状态,链上只保存最小化的信息。可以认为,Mastercoin将比特币视为一个去中心化的日志系统,通过任意的比特币交易发布资产的变动操作。而对于交易有效性的验证,是通过持续扫描比特币区块,维护一个链下的资产数据库来进行的,该数据库保存着地址与资产的映射关系,其中地址复用了比特币的地址体系。
早期的染色币,基本使用脚本的OP_RETURN操作码来存储关于资产的元数据,在SegWit与Taproot升级后,新的衍生协议有了更多的选择。
SegWit是Segregated Witness的缩写,简单而言,就是将Witness(交易中的input scipt)从交易中分离。分离的主要原因在于防止节点通过修改input script来进行攻击,但同时也附带了一个好处,变相增大了区块的容量,可以存放更多的witness数据。
Taproot的一个重要特性是MAST,让开发者能够利用Merkle Tree在输出中包含任意资产的metadata,用Schnorr签名提升间接性、可拓展性,并且能够通过闪电网络进行多跳交易。
Ordinals&BRC20及仿盘:盛大的社会实验
从广义的角度来说,Ordinals包含四个组成:
l 一个BIP,为sats定序
l 一个indexer,利用Bitcoin Core Node来追踪所有satoshi的位置(序号)
l 一个钱包,进行ordinal相关交易
l 一个block explorer,识别ordinal相关交易
当然,核心还是BIP/协议。
Ordinals通过定义一套排序方案(根据被挖出的顺序从0开始排序),为Bitcoin中的最小单位Satoshi赋予了序号,令原本同质化的Satoshi拥有了异质属性,带来了稀缺性。
可以复用BTC的基础设施,单签、多钱、时间锁、高度锁等,并且无需显式创建ordinal numbers,匿名性好,没有显式的链上足迹。缺点同样明显,大量的小额且不使用的UTXO会增加UTXO集合的大小,更严重的说法可以称之为粉尘攻击。此外,索引所占的空间很大,每次花费特定sat需要提供
l 区块链头
l 到创建该sat的coinbase交易的Merkle path
l 创建该sat的coinbase交易
以证明特定的sat被包含在特定的output中。
铭文,就是对sats铭刻任意内容,具体方式是将内容放到taproot script-path spend scripts中,完全上链。铭刻内容根据http response格式序列化,被OP_PUSH放进spend scripts的无法执行的脚本中,被称为”envelopes“信封。具体而言,铭刻是在条件语句前添加OP_FALSE,将铭刻内容以json格式放进无法进入的条件语句中。铭刻内容的大小被taproot脚本所限制,总共不能超过520bytes。
由于taproot支付脚本要求现存的taproot输出才能使用,铭文需要commit&reveal两步操作才能完成。第一步,创建一个承诺铭文内容的taproot输出;第二步,利用铭文内容和对应Merkle Path来花费上一步的taproot输出,在链上reveal铭文内容。
铭文最初的目的是为BTC引入非同质化代币NFT,然而新的开发者在其基础上模仿ERC20创造了BRC20,为Ordinals带来了发行同质化资产的能力。BRC20具备Deploy、Mint、Transfer等操作,而每次操作都需要commit&reveal两步执行,交易流程更繁琐,成本更高。
使用真实数据进行举例:
选中的部分为铭刻内容,进行解序列化后结果如下:
Atomicals协议衍生的ARC20从设计上降低了交易的复杂度,将每单位的ARC20代币与satoshi进行绑定,复用比特币的交易体系。通过commit&reveal两步发行资产后,ARC20代币之间的转移可以直接通过转移对应的satoshi完成。ARC20的设计可能更符合染色币的字面定义,在原有的代币上添加新的内容,使其具备成为新的代币,新代币的价值不会低于原有代币,类似于金银首饰。
客户端验证与下一代资产协议
客户端验证(client-side validation,CSV)是Peter Todd在2017年提出的概念,与其同时提出的还有一次性密封条(single-use-seals)的概念。简单来讲,CSV机制就是链下数据存储、链上承诺、客户端验证。其中的思想,在之前的资产协议中也有部分体现。当前客户端验证的资产协议有RGB与Taproot Assets(Taro)。
RGB
除了客户端验证的特点之外,RGB采用Perdersen哈希作为承诺机制,还支持输出盲化,发送支付请求的时候无需公开接收代币的 UTXO,而是发送一条哈希值,提供更强的隐私性与抗审查行。当然,在代币被花费时,盲化的密值需要向接收方公开,以便其验证交易历史。
此外,RGB添加了AluVM来实现更强的可编程性。当用户进行客户端验证时,除了验证发来的支付信息,还需要从支付者处接收该代币所有交易历史,一直追溯到该资产发行的创世交易,才能确保交易的终局性。验证所有的交易历史,才能够保证所收到资产的有效性。
Taproot Assets
Taproot Assets是闪电网络的开发团队Lightning Labs开发的又一项目,发行的资产可以在闪电网络上即时、大量、低成本转移。Taproot Asset完全以Taproot协议为中心进行设计,提升了隐私/拓展性。
witness数据链下存储,链上验证,链下存储可以存在本地,或者在信息仓库中(称为“Universes”,类似git仓库)。对witness的验证需要从资产发行起的所有历史数据,该数据通过Taproot Assets gossip层进行传播。客户端可以通过本地区块链的拷贝进行交叉验证。
Taproot Assets采用Sparse Merkle Sum Tree来存储资产的全局状态,存储开销大,但是验证效率高,通过proof of inclusion/non-inclusion能够验证交易,而无需回溯资产的交易历史。
扩容:比特币的永恒命题
尽管比特币拥有着最高的市值,最高的安全性与最高的稳定性,但是其离最初的设想“一种点对点的电子现金系统”却越来越远。由于区块的容量有限,交易的TPS、费用以及确认时间使得比特币无法处理大量且频繁的交易,十余年来有多种协议试图解决该问题。
支付通道与闪电网络:比特币原教旨主义方案
闪电网络的工作原理是通过建立支付通道来实现的。任意两个用户之间可以建立支付通道,支付通道之间可以彼此连接,构成连通性更强的支付通道网络,不直接具备通道的两个用户之间也可以通过多次跳转来进行支付。
例如,如果 Alice 和 Bob 想要进行多次交易,而不是每次都在比特币区块链上记录,他们可以在他们之间打开一个支付通道。他们可以在这个通道中进行无数次交易,而整个过程只需要在区块链上记录两次:一次是在打开通道时,另一次是在关闭通道时。这大大减少了等待区块链确认的时间,也减轻了区块链的负担。
当前闪电网络节点超14000,通道数超60000,网络中总容量超过5000BTC。
侧链:比特币中的以太坊路线
Stacks
Stacks对自己的定位是比特币的智能合约层,使用自己发行的token作为Gas token。Stacks使用微块机制,比特币和Stacks以同步的方式发展,它们的区块同时被确认。在Stacks中,这被称为“锚定块”。整个Stacks交易块对应于一个单独的比特币交易,实现了更高的交易吞吐量。由于同时产生区块,比特币充当了创建Stacks区块的速率限制器,从而防止其对等网络遭受拒绝服务攻击。
Stacks通过PoX的双重螺旋机制实现共识,矿工发送BTC给STX质押者以竞争出块资格,成功赢得出块资格的矿工在顺利完成出块后能够获得STX奖励。在这个过程中STX的质押者能够按照比例获得矿工发送的BTC。Stacks希望通过发行原生token来激励矿工维护历史账本,但实际上没有原生token也能实现激励(见RSK)。
对于Stacks区块链中的交易数据,通过OP_RETURN字节码将交易数据的哈希保存至比特币交易的脚本中,Stacks节点可以通过Clarity的内置功能读取比特币中存储的Stacks交易数据哈希。
Stacks几乎可以算得上是一条比特币的Layer2链,然而,资产的跨入跨出还存在一些瑕疵。在Nakamoto升级之后,Stacks支持发送Bitcoin交易完成资产的跨出,但是交易的复杂性导致比特币链上无法进行验证,只能通过多签委员会来进行资产跨出的验证。
RSK
RSK采用融合挖矿(Merge-Mine)算法,比特币矿工可以几乎无成本地帮助RSK进行出块,获取额外奖励。RSK中没有原生的token,仍采用BTC(RBTC)作为Gas Token。RSK有自己的执行引擎,对EVM兼容.
Liquid
Liquid是比特币的一条联盟侧链,节点准入为许可制,由十五个成员负责出块。资产采取lock&mint的方式,通过发送资产到BTC上Liquid的多签地址,资产跨入Liquid侧链;跨出时将L-BTC发送到Liquid链上的多签地址即可。多签地址的安全性为11/15。
Liquid专注于金融应用,为开发者提供了与金融服务相关的SDK。当前Liquid网络TVL为约3000BTC。
Nostr Assets:中心化的进一步加强
Nostr Assets最初项目名为NostrSwap,是一个BRC20的交易平台。2023-08-03,升级为Nostr Assets Protocol,支持Nostr生态系统中的所有资产转移,资产的结算和安全性由Lightning Network处理。
Nostr Assets使得Nostr用户可以用Nostr公私钥来发送和接受闪电网络资产,除了deposit和withdrawl,Nostr Assets协议上的交易都是0 gas且加密的,交易细节保存在Nostr Protocol的relay上,用IPFS进行快速和高效的存取,同时支持自然语言交互,不需要复杂页面。
Nostr Assets为用户提供了一种简单、便捷的资产转移、交易方式,结合Nostr社交协议的流量效应,未来可能有很大的应用场景。然而,从本质上来看,只是一种用 Nostr 消息来控制(托管)钱包的方法。用户通过在闪电网络中转账将资产存入Nostr Assets的Relay,相当于将资产存入了中心化交易所。当用户间想要在Nostr Assets中进行资产的转移和交易时,将使用Nostr密钥对签名的消息发送至服务端,服务端通过验证后只需在内部账本上进行记录,不需要在闪电网络或是主网真正执行,所以能够实现零Gas与高TPS。
BitVM:可编程性与无限扩容
"Any computable function can be verified on Bitcoin"
——Robin Linus, creator of BitVM
BitVM由ZeroSync创始人Robin Linus提出,运用Bitcoin现有的OP Code(OP_BOOLEAN, OP_NOT)组成与非门电路,把程序分解成原始的与非门电路组合,将复杂程序的spend script root放进Taproot交易中,以较低成本链上存储。根据计算理论,所有计算逻辑都能使用与非门电路构建,所以理论上BitVM能够在Bitcoin实现图灵完备,进行所有计算,但是在实际中还有许多限制。
BitVM仍然采取P2P的运行模式,借鉴OP Rollup的思路,存在两个角色,prover和verifier,每次prover和verifier之间共同构建一个交易,存入保证金,prover给出结果,verifier如果计算得出不同结果,向链上提交fraud proof,以罚没prover的资金。
“The real killer app is scaling Bitcoin. [Robin Linus isn’t] a big fan of smart contracts. He’s not a big fan of increasing Bitcoin’s expressivity. He really is interested in making it so that Bitcoin can process millions of transactions per second.”
—— Super Testnet, BitVM developer
BitVM提供了更好地可编程性,但是怎么与扩容联系起来?实际上,BitVM从一开始就是为了链下计算、链上验证的扩容而服务的,从prover、verifier这些命名也能够看出端倪。
BitVM的最佳用例,实际上是最小化信任的桥与ZKP扩容(ZK Rollup)。BitVM的提出其实也是无奈之举,想在比特币社区中获得支持,通过提案增加OP_CODE的难度太高,所以只能退而求其次利用现有的OP_CODE实现新的功能。
BitVM提出了扩容的新范式,但是在现实中存在许多挑战。
• 过于早期:EVM有一整套VM架构,BitVM却只有一个能验证字符串是0还是1的函数。
• 存储开销:用NAND门构建程序需要也许几百MB的数据,十亿级的taptree leaves
• P2P:当前仍是两方交互,prover-challenger架构存在激励问题,正在考虑扩展到1-N或者N-N,像理想中的OP Rollup一样(单个诚实假设)
结语
通过全文的盘点不难看出,由于主网处理能力的限制与计算能力的缺乏,比特币如果想要培育更加繁荣多样的生态,必须将计算转移到链下。
一方面,链下计算、链下验证的客户端验证方案,利用比特币交易中的某些字段存储关键信息,将比特币主网视为分布式的日志系统,利用其抗审查性与可靠性确保关键数据的可用,从某种意义上说类似于主权Rollup。这种方案不需要修改比特币的协议层,可以自由构建自己所需的协议,在当前可行性更高,但是不能完全继承比特币的安全性。
另一方面,也有人在推进链上验证的工作,尝试着利用现有的工具,实现在比特币上的任意计算,进而利用零知识证明技术实现高效的扩容。但是当前方案仍然非常早期,计算成本过高,预计短期无法落地。
当然有人会问,以太坊为首的一众区块链都拥有高速的计算能力,为什么不转向以太坊,而一定要在比特币上把事情重新做一遍?
Because It's Bitcoin.
因为这是比特币。
好的,今天就分享到这里了,感兴趣的朋友请关注我们!
微信1:victeam005
微信2:shijie20170405
Twitter:https://twitter.com/VICOINDAO
Telegream:https://t.me/VICOINDAOCHA