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