登录
首页 > 文章列表 > 计算密度:BTC、BCH交易限制与安全新解

更新时间:2025-12-02 20:57:01 编辑:丁丁小编
来源:点击查看

简介

什么是计算密度?BCH协议修改提案中的新概念

最近在研究 BCH 协议修改提案 bch-vm-limits 时,我发现了一个叫做“计算密度”的新概念。这东西在其他的 UTXO 链上还真没见过,引起了我的好奇心,于是我做了点功课,今天就来跟大家聊聊这个“计算密度”到底是个啥。

为啥要有“计算密度”?

我们都知道,比特币 (BTC) 有区块大小限制(1M 交易区块体 + 3M 签名区块),而且每笔交易的大小、opcode 数量也有限制。以太坊 (ETH) 呢,单个区块也有 gas limits 上限。熟悉 EOS 的朋友肯定知道,EOS 有 cpu、RAM 和 Net 这三个资源,发交易需要消耗这些资源。

这些限制的存在,都是为了保障区块链网络的安全,防止恶意交易攻击网络。

这里不得不提一个经典的案例:2018 年 Fom3D 最终大奖的领取过程中,攻击者构造了一笔特别的合约交易,把区块里的 gas limits 全部消耗掉,导致其他用户的交易无法被打包,只能打包黑客自己的交易,最终黑客拿走了 10469 ETH 的大奖。

三种经典设计:BTC、ETH 和 EOS

在防止区块链网络被恶意攻击方面,BTC 的区块大小和交易大小限制、ETH 的区块 gas limits 限制,以及 EOS 的 CPU、RAM 和 Net 资源限制,是三种经典的设计。

安全性与可编程性:一个艰难的平衡

在衡量安全性和可编程性上,gas limits 的设计在可编程性上达到了极致,在 EVM 上实现了图灵完备,这是以太坊诞生繁荣经济生态的关键因素。

BTC 等 UTXO 的生态则明显受困于可编程性,特别是交易的 opcode 数量限制,这限制了编程的自由度。但很明显,BTC 这种区块大小和交易大小的限制,为比特币的去中心化和安全性提供了保障。比特币网络从未出现过被 DDOS 而产生大问题的情况,当“恶意的”海量交易或复杂的合约交易(P2SH)涌进 memepool 时,唯一需要做的就是等待区块慢慢打包,不会产生额外的问题。

UTXO 技术,如果想提高可编程性,很可能会导致额外的安全性问题。

BCH 的“计算密度”:新的尝试

BCH 的计算密度这个新概念,就是想平衡 UTXO 的可编程性和安全性,试图在保证 BCH 网络安全性的前提下,大大提高 UTXO 的可编程性。

简单来说,计算密度就是根据每个输入数据的字节长度,限制该输入能够执行的计算操作。也就是说,交易中每个输入会根据其大小(字节数)分配一定的计算预算,这个预算决定了节点在验证该交易时可以进行的最大计算量。

Bch-vm-limits 协议里提供了计算公式,但说实话,我没看懂。我只知道这个计算量主要是指哈希计算。这个太细节了,涉及到 BCH 交易的构造和验证,我暂时就先不深入研究了。

和 gas limit 将计算和 gas 费直接挂钩不同,计算密度并不改变 BCH 交易的矿工费设计,矿工费还是按一直以来的 sats/byte 来计算。

Gas limit 的设计相当于只要你出钱(出 gas 费),你就可以设计任意复杂的合约,前提就是不要触及单个区块的 gas limit 上限。现在单个区块的 gas limit 是 3000 万 gas,如果 gas price 是 10 gwei,消费光 3000 万 gas limit 需要 0.3 ETH。3000 万 gas 是一个非常大的量,可以设计出非常非常复杂的合约。

BCH 的计算密度,是约束单位交易大小的可计算量,我估计能设计出来的合约复杂程度肯定是远小于 gas limit 的设计,但远高于 BTC 和 BCH 当初的限制交易大小和 opcode 数量,文档描述是增强了 100 倍。

协议的设计者 Jason Dreyzehner 在文档里对计算密度的好处写了很多,对比 gas limit,各种夸。我希望这些优点能在真实的生产环境中得到验证。

在实际的应用场景上,开发者们写得更夸张,涉及到了量子密码学、零知识证明、同态加密等加密数字货币技术领域的顶尖场景。但现在肯定无法辨别真伪了。

总的来说,我觉得 BCH 的开发者还是挺有创新能力的,包括像 2023 年激活的 cashtoken,以及今年要搞的计算密度,我都是在整个币圈第一次见到的技术。至于这些技术最终能否成功,还有待时间的检验。

热门文章