随着近期BRC-20市场的火爆,其安全问题也引起了社区的热烈讨论。那么,BRC-20存在哪些安全问题?作为持有者,我们有哪些必须要了解的事项呢?
BRC-20背景知识在深入探讨BRC-20的安全问题之前,我们首先需要了解Ordinals协议与BRC-20的工作原理,这样有助于我们更好地理解这一问题。
OrdinalsOrdinals是由软件工程师Casey Rodarmor在今年一月开发并开源的项目。该协议能够追踪比特币网络上的所有比特币,追踪的单位是比特币的最小单位“聪(satoshi)”。
Ordinals协议允许用户和开发者将任何信息写入聪的交易备注栏中,使得特定的聪可以关联外部的元数据,如图片或文字等,从而开启了比特币上的NFT时代。这种记录对应资料的动作称为“铭刻(inscribe)”。
由于比特币网络没有原生虚拟机与智能合约系统,因此这些资料是连接到链下的服务器进行管理。虽然这样没问题,但直到BRC-20的出现。
BRC-20今年三月份,名为@domodata的人利用Ordinals协议创建了BRC-20标准,也就是将刻上去的文字以JSON文件的形式记录代币信息,例如铸造ORDI代币的JSON信息如下:
铸造ORDI代币的JSON信息如前所述,比特币网络没有智能合约系统,所有信息实际上都放在交易备注栏中。因此,定义BRC-20的铸造、转移、销毁机制,实际上并没有实质效力,需要其他机制协助运算与结算。目前都是利用链下的服务器与索引器(indexer)去追踪与管理所有记录。
例如,小明要转账给小美10 PEPE代币,那么就需要将PEPE的转账信息,以JSON的形式写入转账聪交易备注栏中,等待确实打包出块之后,等待indexer追踪到JSON文件内的信息,再从indexer的账本中扣除小明的PEPE代币,并增加小美的PEPE代币记录。
因此,需要有可以追踪BRC-20代币交易信息的交易所与钱包。目前有支持BRC-20代币的服务如下:
OKX钱包UniSat钱包Magic Eden BRC-20衍生问题可以发现BRC-20的机制存在明显的安全问题。持有者需要信任indexer才能完成交易。如果这些indexer作恶、异常、被黑客入侵等,用户的资产将面临安全风险。
利用这种机制可能衍生出有人拿空气币与自己购买代币(无中生有),或者有人拿固定量的代币与别人进行多次交易(双花问题)。以下分别说明。
无中生有社群成员Sam在X(Twitter)上举例,假设黑客想要小明手上的A代币,若此时黑客正好有能力入侵某个知名的indexer,并且有能力控制它一个小时,在这一小时里,他先给自己凭空增加了B代币(篡改indexer资料库即可),然后把代币B转给小明。
小明很谨慎,他在浏览器上也能看到自己得到了代币B,于是放心地把代币A转给对方。一个小时结束后,indexer发现被入侵并重新同步了数据,此时小明刷新浏览器会发现代币B不见了,且代币A也消失了。
为什么会发生这种事?原因如下:
黑客和小明连接了同样的indexer服务器,小明和黑客看到的前端资料始终是一样的,包括被入侵前后和被入侵的过程。黑客转给小明的代币B并未发生在比特币链上,此次交易信息只发生在indexer服务器里,黑客可以改资料库里面的数据。因为此时小明信任这个indexer,所以看到indexer浏览器更新的资料便认为代币B的交易已经完成。就算小明直接去比特币网络查铭文,但黑客完全可以发一笔交易,上头刻着黑客自己写的JSON信息(indexer不会认可)给小明查。小明给黑客的代币A的交易确实在链上发生了,且因为小明确实有足够多的代币A,所以即便indexer发现被入侵后进行回滚,小明的这笔交易还是会被成功执行。
客手上都没有代币B,为什么这笔交易能发成功?原因是比特币网络没有虚拟机跟智能合约,只是记录了一个数据,整个合法性校验完全靠indexer来完成,而此时indexer已经被黑客控制了。
双花问题除了黑客的问题之外,过往也有出现过多个索引器版本差异导致双花问题的风险,也就是因为不同索引器版本差异,使得一个资产有机会有多次交易的可能,但是当这些主流索引器同步共识后,就会使买到非共识资产的持有者资产损失。
现阶段该怎么保护自己多关注社区的最新动态,通常Twitter的消息最及时。确保自己在交易资产时使用的indexer是可信任的。
期待未来能有更好的基础设施,以降低BRC-20的安全风险。
社群潜在解决方案上述问题出现在现阶段生态indexer数量较少。如果有100个indexer,那么黑客根本不知道小明会用哪个indexer,小明也可以随时切换到其他indexer去做多重验证,此时黑客做坏事的成本就会提高,高到几乎不想做坏事。
需要用经济机制去解决问题。实际上会有多少indexer在运行,取决于indexer运营商可以得到多少利润。利润够高自然会去运行,数量就会提升,如同现在大多数去中心化网络节点的运作模式,数量够多就足以去中心化、去信任化,不用担心节点的故障或是作恶问题。
ORDI作为治理代币创造对应协议有社群成员提出使用最早的BRC-20代币——ORDI,并构建一套治理机制,所有indexer都需要质押ORDI代币才能运营。若成功交易给予代币奖励,若其作恶则没收代币。
不过现阶段ORDI代币发展至今,大动作改变其代币经济不易维持社群共识,因此推动非常困难。
较期待有新的协议与代币拥有足够多的共识来解决这个问题,也开始有团队着手尝试,有人提出了TRAC。
TRAC去中心化索引网络协议TRAC协议包含一个去中心化网络、对应的客户端、代币治理经济模型,目标是打造一个去中心化的indexer网络。预期利用代币奖励与惩罚机制,强化BRC-20网络安全。
不过目前该项目的共识是否足以推动愿景仍是未知数,因为需要大多数主流的indexer都愿意加入响应才有机会做到。
期待能系统性完善BRC-20基础设施其实上述这些衍生问题与资产面临的风险,归根结底的原因就是:
因为BRC-20没有智能合约支持。
因此需要重新打造一条去中心化网络,以提供类似智能合约的去中心化网络。不过既然都要从头开始,为什么不一次到位,做一个专为比特币执行的去中心化虚拟机网络呢?因为要重新打造一条去中心化网络就需要一个新经济模型去维持。从过往区块链、去中心化存储网络到预言机领域,可以知道从零打造一个去中心化网络与共识是一件非常困难的事情。
不论接下来BRC-20的发展方向与结果如何,可以看到许多人正在努力尝试优化现有生态,期待看到BRC-20更加成熟的一天。
标签: 比特币