Nubit——改变比特币的模块化索引器
作者:Cook Sun 加密廚師,来源:作者推特@Cook0x
一、索引器的诞生
在引入Inscriptions和Ordinal协议之前,由于其脚本语言的图灵不完备性,比特币在应用范围上受到了限制。幸运的是,随着技术的最新进展,通过比特币索引器建立了图灵完备的链下执行层。然而,现有索引器的数据完整性和可用性非常依赖于索引器的诚实性。
具体来说,对于一个链下执行层,索引器可能会篡改数据,导致用户获得错误的状态。这就是在比特币生态讨论了很久的索引器中心化问题,目前在中心化与去中心化之间始终没有一个完美的解决方案。
二、直接去中心化会有什么问题?
如果利用一个去中心化的索引器网络来执行计算,那么,由于该网络完全无许可,现有去中心化索引器网络的共识机制容易受到Sybil攻击的影响,这使得恶意的索引器运营商能够向用户提供错误的状态,例如资产所有权和可支配余额。这就属于一个新的共识层的建立,需要一个强大的共识网络,非短时间内可以达成。
三、模块化索引器
若想解决这个问题,关键点是设计一种机制,使用户能够高效、经济地验证索引器提供状态的有效性。Nubit提出的方案是不进行整个状态转换的完整性检查,而是简化为检查少量检查点的有效性。目标是实现即使在大多数委员会索引器被攻击或是作恶的情况下,只要有1个委员会索引器在做正确的验证,也能保证数据的完整性和可用性。
四、Nubit 架构
该架构依赖于比特币作为最基本的可信数据层
委员会索引器 根据比特币区块计算协议状态,并生成检查点(polynomialcommitment),发布到 NubitDA(数据可用性层)。
Nubit DA 负责发布数据和确保检查点数据可用
索引器负责向用户提供查询结果和相应的证明。
轻量级索引器 由用户运行,可以从索引器查询协议状态的必要部分,利用检查点验证结果的正确性。如果多个委员会索引器提供的检查点不一致,可以利用无状态计算生成正确的检查点。
无状态计算
无状态计算(stateless computation)是一种技术,允许用户在不需要下载和存储整个协议状态的情况下,验证索引器提供的执行结果是否正确。
传统的验证方式需要用户下载全部状态数据然后重新执行整个计算过程,与索引器的结果进行对比,从而验证结果正确性。这种做法需要大量存储和计算资源。
无状态计算技术的出发点是:即使用户没有全部状态数据,只要有少量的关键状态数据(如之前的检查点状态),就可以有效地验证后续状态的正确性,无需重复整个计算过程。
它通过密码学技术(如polynomialcommitment等)将全部状态数据压缩为一个很小的加密检查点,用户只需下载并验证这个检查点,就等同于验证了整个状态数据的准确性。
当多个委员会索引器提供的检查点不一致时,用户可以利用之前的检查点状态作为关键输入,使用无状态计算重新生成当前正确的检查点,从而识别出诚实的索引器。
通过这种无状态计算技术,用户无需下载和存储整个庞大的状态数据,只需很小的检查点数据,就能高效地验证索引器执行结果的正确性,从而实现轻量级可验证计算。
五、总结
Nubit 在中心化索引器和去中心化索引器之间提供了一个中间选项,即通过构建一个第三方的Nubit DA层来管理数据并验证数据,而最终仍然是依靠比特币作为最基础的可信数据层,这提供了一个相对去中心化且不牺牲过多安全性的方案。
同时,Nubit在近日宣布了与 BounceBit 合作,通过BounceBit的 BTC-restaking 技术与 Nubit 的比特币原生数据可用性解决方案相结合。立即为此方案实现了第一个落地场景。