阿剑: 比特币资产发行协议 RGB 是什么 真正潜能在哪里
诸多比特币使用者头一回听闻RGB协议之际,最为困惑的难题是:既然合约状态并非处于链上,那么究竟是谁能说了算呢?比特币区块链自身难道不曾记录下所有信息吗?要是连完整的数据都不存在,我依据什么去相信钱包内所显示的余额是正确无误的呢?
对于理解这个问题而言,需先回想传统的链上合约系统,像以太坊那样的,在那里,所有节点会对每一笔交易予以验证,接着共同维护一个“全局状态”,你若想查询某个合约的余额币圈合约,随便找个节点询问便可,然而这种便利是存在代价的,每个节点都要去处理所有合约的所有操作,验证成本相当高,普通用户根本没办法自己进行验证,只能信任他人所提供的状态。
RGB协议转变了思路,它未将合约状态写入区块链,而是仅把“改变状态的那一步操作”的承诺(哈希值)上传至比特币交易中,真正完整的操作信息,经由链下方式直接发送给接收方,如此一来,验证一个RGB合约的某个状态时,你无需下载全部比特币区块数据,仅需获取一连串相关的比特币交易、这些交易存在于区块中的证据,以及每一笔交易所承诺的RGB状态转换信息便足够了。
这听着略微有些绕,不过核心的区别在于,在RGB当中,唯有花费了某个UTXO的交易,才能够改变存放在此UTXO里面的合约状态。不像全局状态系统里,任意的一笔交易都有可能对任意的状态造成影响,RGB借助UTXO天然达成了“准入控制”。要去验证某个合约当下的状态,你仅仅需要顺着这个合约自身的历史路径走上一回,而无需去在意其他合约发生了些什么。
那么问题就出现了:既然并非是全网达成的共识来决定状态,那究竟是谁能够保证安全呢?答案是“客户端验证”。RGB协议假定不存在全局账本,每个用户各自负责去验证和自身相关的合约状态。当你接收到一笔RGB资产的时候,对方会给予你完整的交易历史证据,你的钱包客户端会从初始状态着手,一步步去验证每一步的转换是不是遵循了当初所定义的规则。验证要是通过了,你才会确认这笔资产是有效的。
于是回到标题所涉问题,即“比特币客户端谁控制的?”,在RGB的世界里头,不存在某个中心化的“控制者”,并且也不需要去信任某个第三方给出的状态查询服务。每一个用户运用自身的客户端去验证自身所关心的那部分状态,比特币区块链仅仅负责提供时间戳以及防止双重支付的证据,不会去负责判断合约逻辑的正确与否。这样的设计极大地降低了验证成本,使得普通用户也能够承担得起免信任的验证,而并非像以往那样,由于成本过高而不得不去信任某个钱包供应商提供的状态数据。
币圈合约带单-丽金财经





