BTC 安全协处理扩展设计
计算图灵完备性始终是BTC扩展性的终极目标,将BTC从交易网络拓展为通用计算网络,极大丰富去中心化网络的场景可能性。过去十多年历史中,出现了众多图灵完备的提案和演进方向。BCH/BSV选择了大区块分叉的路线,ETH则直接增加了EVM虚拟机的技术栈。前者和BTC最大可能的兼容,但是计算场景受限。后者ETH路线在过去看似是最成功的分叉路线,但是存在俩个潜在问题:BTC资产的脱钩,POS共识降低了全网安全性。
本文尝试提出一个BTC 协处理架构,在完全遵守OBE架构设计准则的基础上完成复杂计算任务的协处理,主要参考安全外包计算协议和CPU协处理设计方案思想。核心包含了三个主要模块:原生安全的BTC资产映射、图灵完备协计算、安全轻量的验证协议。

原生安全的BTC资产映射
目前BTC链下扩容方案主要是基于侧链或者Layer2的技术架构,制约这种设计思路发展的一个重大的因素是BTC资产映射的安全性,需要将BTC的所有权进行转移给链下这个模式大大的分离了BTC原生的安全性。
本文提出的原生的资产映射概念,一个重要的前提是不转移资产所有权,资产确权通过BTC链上发生,而不是链下。
在这种设计要求下,一种可能的设计思路可以是交易染色或者新增OP State操作码。交易染色更多是在标准的交易中嵌入更高一层的新交易区块,但是在矿工打包的过程一并混入Memory Pool中,进行全网共识和验证。新增OP State操作码的思路在上述BTC原生扩展方案中详细阐述过,需要协议和系统层面进行升级支持,短期的难度较大。
考虑到设计落地的可行性,本文在主要借鉴了交易染色的思路。可以通过客户端插件在普通交易(N_TX)的结构下构建一个特殊交易(H_TX), 该交易可以包含普通的转账或者合约代码,由于是兼容了标准的交易结构,H_TX 会和N_TX同时打包进Memory Pool。对于用户来说,并不需要跨链BTC资产或者和侧链直接交互。在具体的H_TX设计上,可以参考Peter的一次性密封条的思路,将信息写入UTXO或者witeness数据空间。
图灵完备协计算
为了保证BTC的轻量化特征,在链上做原生的图灵完备计算设计难度非常大,需要在硬件适配和内核引擎上进行大规模重构,对于一个去中心化的开源软件项目周期将会非常长。因此,链下计算扩展是一个短期内可控的设计方向。
本文提出的链下计算扩展方案主要参考了安全外包计算和协处理器的思路,BTC是核心CPU处理重要状态和指令集寄存器,链下主要负责加速和扩展指令集的协处理器,例如经典的CPU和GPU的协计算组合。如上图所示,交易代理(Tx Agent)会从链上交易池种订阅特殊交易(H_TX),并送入UTXO VM中进行指令集更新,中间变化更新记录在State模块中,用于多程序的状态相互调用和状态日志(State Binlog)。最后的链上状态更新是最重要的安全保证,由于链下协处理器并不会产生真正的资产账户,VM会更具State更新产生一个批处理交易(Batch Tx),并重新广播给链上用于最终账户状态更新。
安全轻量的验证协议
由于链下只是扩展计算能力,并不会增加映射资产模块,核心资产所有权始终锚定在BTC本身。对于整个系统而言,最重要的是验证BTC扩展指令外包计算的完整性,整体可以产分为俩个阶段:原始指令完整性和计算正确性。指令完整性可以通过写入链上区块数据区来计算,比如Block Witeness数据区域,用来外部挑战确认。计算正确性可以有通过ZKP协议快速验证或者状态日志来进行Redo操作,后者类似于数据库的Binlog机制。目前计算正确的验证的瓶颈主要是BTC原生的计算不足,因此轻量化的ZKP表达和Redo操作是一个重要的设计突破。
Last updated