释放BRC20的真正力量:去中心化索引!
背景介绍
你可能已经听说过 Ordinals,一个在比特币区块链上创建和交易非同质化代币(NFT)的协议。Ordinals 利用了 Taproot 的特性,可以在比特币交易中嵌入任意的 JSON 数据,从而实现了一种新颖的元协议。Ordinals 的一个应用是 BRC-20,一个类似于以太坊上的 ERC-20 的代币标准,可以在比特币上发行和转移可替代代币(FT)。
但是,要使用 Ordinals/BRC-20,你需要一个索引器,也就是一个能够从比特币区块数据中提取元协议交易并提供给用户的服务。目前,这些索引器都是中心化的,也就是说,你必须信任某个第三方来为你提供正确和完整的数据。这显然不符合去中心化的精神,也存在一些安全和隐私的风险。
那么,有没有办法实现去中心化的BRC-20 索引器呢?答案是肯定的。这位名叫Bob的开发者提出了自己的两种解决思路,他主要致力于Bitcoin,icp和Ordinals生态的开发。
在本文中,我们将基于作者的原推内容介绍作者的两种可能的方案:一种是利用 ICP(Internet Computer Protocol)作为一个去中心化的计算平台;另一种是利用主权 Rollups(Sovereign Rollups)作为一个去中心化的验证机制。我们将分别介绍这两种方案的原理、优势和挑战,并对它们进行比较。
在 ICP 上构建
ICP 是一个旨在扩展互联网功能并提供无限计算能力的去中心化网络。ICP 上可以运行智能合约,也称为 canisters,它们可以使用不同的编程语言编写,并且可以通过 HTTP 方法与外部通信。ICP 还提供了一种与比特币集成的方式,可以从比特币节点获取区块数据,并将其存储在 ICP 上。
要在 ICP 上构建一个BRC-20 索引器,我们需要以下三个步骤:
第一步:获取比特币区块数据
要获取数据,我们可以利用 ICP 上已经存在的比特币集成服务。这个服务通过多个比特币节点来拉取区块数据,并将其保存在 ICP 上。这样,我们就可以从 ICP 上获取到最新和最可靠的比特币区块数据。
第二步:处理数据
要处理数据,我们需要编写一个 ICP 智能合约,也就是一个索引器 canister。这个 canister 可以使用 Python, TypeScript, 或 Rust 等语言编写,并且可以利用 ICP 上已经存储的比特币区块数据来解析 Ordinals/BRC-20 交易。这个 canister 需要遵循BRC-20 的协议规则,并且需要维护一个代币状态数据库,记录每个代币的总量、持有者、余额等信息。
第三步:提供结果状态
要提供结果状态,我们只需要在 canister 中实现一些 HTTP 方法来接收用户的请求,并返回相应的数据。例如,我们可以实现一个 getBalance 方法来返回某个地址持有某个代币的余额;或者实现一个 getTransactions 方法来返回某个地址参与过的BRC-20 交易列表。这些方法都可以直接从 canister 的数据库中查询数据,并返回给用户。
利用主权 Rollups 实现
主权 Rollups 是一种利用零知识证明(zk proof)来实现去中心化验证和扩展性的技术。主权 Rollups 不需要依赖于任何智能合约或共识层来验证交易,而是由证明者(prover)生成 zk proof,并由验证者(verifier)检验 zk proof。主权 Rollups 可以在任何支持数据可用性的区块链上运行,比如比特币。
零知识证明能够在不披露声明本身的情况下,验证声明有效性的一种方法。一个比较经典的例子是非常著名的阿里巴巴洞穴实验。
要利用主权 Rollups 实现一个BRC-20 索引器,我们需要以下三个步骤:
第一步:获取比特币区块数据
要获取数据,我们可以与现在的方式完全一样,即运行我们自己的比特币节点来获取区块数据。这样,我们就可以从比特币网络上获取到最新和最可靠的区块数据。
第二步:处理数据
要处理数据,我们需要将我们的索引器升级为一个证明者,也就是一个能够生成 zk proof 的服务。这个证明者需要遵循BRC-20 的协议规则,并且需要维护一个代币状态数据库。与普通的索引器不同的是,这个证明者还需要对每个区块中的BRC-20 交易生成一个zk proof,来证明它正确地更新了代币状态数据库。
第三步:提供结果状态
要提供结果状态,我们有两种选择:一种是将我们生成的 zk proof 保存到比特币上,作为一个元协议交易;另一种是在我们的 API 中提供 zk proof,或者两者都做。这样,用户就可以获取到数据和 zk proof,并且可以自己验证 zk proof 的有效性。如果用户验证通过了 zk proof,那么他们就可以相信数据是正确和完整的。
两种方式的优劣
在 ICP 上构建和利用主权 Rollups 实现都可以显著提高 Ordinals/BRC-20 索引器的去中心化程度,消除许多中心化的信任点,并改善 Ordinals 生态系统。但是,这两种方式各有优劣,表格如下:
总结
最后,如果你觉得我的内容对你有帮助,可以添加下方微信进一步交流