在最新的BCH协议修改提案bch-vm-limits中,引入了一个全新的概念——“计算密度(density of computation)”。这一概念在其他UTXO链上并不常见,因此引发了我的好奇心,遂进行了深入调研。
计算密度的含义
比特币网络设有1M的区块大小限制,其中包含3M的签名数据,同时每笔交易也受到尺寸和opcode数量的严格限制。此外,以太坊的交易单个区块也设有gas limits的上限,EOS则通过CPU、RAM和Net三个资源进行管理,用户在发起交易时需消耗这些资源。
这些设计旨在保障区块链网络的安全性,防止恶意交易对网络造成攻击。
案例分析:2018年,以太坊网络遭遇了Fom3D大奖领取事件中的经典攻击。攻击者在区块高度6191897和6191902之间构建了一笔特殊的合约交易,消耗了整个区块的gas limits,使其他用户的交易无法被打包,最终使攻击者成功领取了10,469 ETH的大奖。
为防止网络恶意攻击,各种区块链都采用了不同的设计:比特币的区块和交易大小限制、以太坊的gas limits、以及EOS的资源消耗限制。比特币的设计经过了时间的考验,显得原始且安全。BCH也继承了这种设计,尽管在具体参数上有所调整。
以太坊的gas limits设计被认为是最成功的标准,而EOS的资源管理则未能实现预期,反而成为炒作的对象。
值得注意的是,以太坊曾有一个名为gastoken的项目,允许用户将gas作为代币进行交易,但最终被V神团队禁止。
安全性与可编程性的平衡
在评估安全性与可编程性时,gas limits设计实现了较高的可编程性,使EVM达到了图灵完备,成为以太坊繁荣经济生态的关键因素。相对而言,UTXO技术的可编程性受到限制,尤其是交易opcode数量的限制,这在一定程度上影响了比特币的开发灵活性。
BCH所提出的计算密度这一新概念,旨在寻求UTXO的可编程性与安全性之间的平衡,尝试在保障网络安全的基础上,显著提高可编程性。
计算密度的定义与应用
计算密度是指根据每个输入数据的字节长度,限制该输入能够执行的计算操作。交易中的每个输入根据其大小(字节数)被分配一定的计算预算,这个预算决定了节点在验证该交易时能够进行的最大计算量。
在bch-vm-limits协议中提供了具体的计算公式,尽管细节较为复杂,主要涉及到哈希计算。这一点与gas limit的设计不同,计算密度并不改变BCH交易的矿工费设计,矿工费依然按照每字节sats计算。
Gas limit的设计允许用户根据支付的gas费用设计任意复杂的合约,只要不超过单个区块的gas limits。当前单个区块的gas limit为3000万,假如gas价格为10gwei,消耗完这3000万gas需要约0.3 ETH。这使得开发者能够设计出极其复杂的合约。
与之相比,BCH的计算密度则限制了单位交易大小的可计算量。虽然预计其设计出的合约复杂程度会远低于gas limit的设计,但相较于比特币和BCH初期对交易大小及opcode数量的限制,计算密度的文档描述提升了约100倍的可编程性。
协议设计者Jason Dreyzehner在文档中详细阐述了计算密度的优势,并与gas limit进行了对比,期待在实际应用中能有所兑现。开发者的观点则更为激进,涉及量子密码学、零知识证明、同态加密等前沿技术,但目前尚无办法验证其真实性。
结语
总体来看,BCH的开发团队展现出了不俗的创新能力。2023年激活的cashtoken及即将推出的计算密度都是币圈中少见的技术创新,令人期待其未来应用的广阔前景。