了解 ZKByte:基于零知识证明和 BitVm 的比特币 Layer2 拓展解决方案
2023-12-29 22:50
ZKBase
2023-12-29 22:50
订阅此专栏
收藏此文章
本设计的主要目标是为比特币区块链建立一个专门定制的 Layer2 网络。


撰文:ZKBase


本设计的主要目标是为比特币区块链建立一个专门定制的 Layer2 网络。比特币 Layer2 网络旨在满足比特币生态系统内日益增长的对更快速、更高效交易的需求。通过将某些交易处理任务从主网上释放,旨在缓解比特币主网的拥堵问题并大幅减少交易确认所需的时间。


鉴于比特币虚拟机(VM)计算能力的固有限制,我们的设计使用了 BitVM,它展示了在两层网络之间执行智能合约的潜力。通过利用挑战和响应方案,BitVM 展示了一种比特币网络可编程性的新方法,打破了传统的限制。


为了增强比特币 Layer2 网络的安全性和完整性,该设计通过集成零知识证明(ZK)技术来实现状态验证。这些先进的加密技术允许比特币主网可以有效验证 Layer2 网络的状态,而不会损害底层交易的隐私和机密性。零知识证明能够验证信息而不泄露交易的具体细节,从而在保护隐私的同时确保 Layer2 网络的完整性。


总体而言,该设计旨在通过 Layer2 网络、采用 BitVM 进行智能合约执行以及集成零知识证明技术进行状态验证,提高比特币网络的可扩展性、速度和效率,同时保持底层交易的隐私和安全性。


0、架构 Layer2


区块链采用账户模型。整个区块链的状态是通过基于 Halo2 证明系统的 zkVM 来验证的。Layer2 状态与比特币主网络进行同步,并且所有 Layer2 状态都由 BitVM 实现的零知识证明(ZKP)验证器进行验证。 我们使用一个 UTXO 来追踪所有的 Layer2 状态。此外,我们还使用了一个可信的预言机来确保只有锁定 / 解锁脚本的输入 / 输出遵循 Layer2 协议。



1、Layer2


委员会和可信预言机 由一组被选中的用户组成的 Layer2 委员会负责监督 Layer2 网络的整体运行状况。在出现协议问题时,委员会可以介入并停止协议,保护所有用户的资产。可信预言机对于验证输入 / 输出 UTXO 和脚本的正确性非常重要。


2、第一层到第二层


在比特币网络上创建一个单一的 Taproot 地址来表示 Layer2 协议。当创建一个 UTXO 并将其转移到 Taproot 地址时,相应的 UTXO 实际上是从比特币主网「充值」到 Layer2。


协议或委员会账户专门处理所有「充值」到 Layer2 的 UTXO 资产的「转移」权限。只有协议、可信预言机或委员会账户可以更改存入 UTXO 的所有权。可信预言机确保所有权转移交易中包含正确的输出 UTXO 脚本。



3、同步到比特币主网的区块


所有 Layer2 网络的状态以区块的形式同步到比特币主网。对于一个区块,应提供以下信息:


  • 一个特定区块中的交易
  • 应用这些交易后的新账户状态
  • 当前区块状态下的新 UTXO(即使协议被破坏,也始终准备好)
  • 比特币网络的区块信息
  • 零知识证明(证明从上一个区块到当前区块的状态转换是正确的) 所有这些比特币主网的状态都记录在一个 UTXO 交易历史中。



3.1 关于证明的更多信息


零知识证明被用来验证 Layer2 的正确性。试图证明以下内容:


  • Layer2 的区块交易被正确签名。
  • 所有账户的新状态被正确处理。
  • 在比特币主网的某个特定区块之前的所有充值交易被正确处理。
  • 对于当前状态,所有 UTXO 的分配都被正确创建。


3.2 区块信息挑战


为了确保比特币主网中指定的区块信息的正确性,我们使用了一个挑战和响应方案。证明者可以通过指出在锁定时间段内特定区块之后还存在 N 个区块来证明区块信息的准确性。


3.3 ZKP 电路和 BitVM 增强


正如 BitVM 论文所示,ZKP 验证可以表示为一个二进制电路,可以由两个参与方进行挑战。通过预签名交易,可以发送挑战以获取电路的比特承诺。如果揭示 0 和 1,则挑战成功。为了使用 BitVM 来验证 ZKP,需要注意以下两点:


相同的二进制电路承诺只能使用一次。也就是说,如果相同的电路承诺用于多个区块,可能会揭示一个比特承诺的 0 和 1。


对于 ZKP 验证,除了电路的满足性外,还应检查「公共输入」。


为了处理这两个缺点,对于 Layer2 的每个区块,创建一个唯一的二进制电路,并且固定「公共输入」。比特币脚本用于处理公共输入的哈希和检查。正确的公共输入比特承诺由可信的预言机进行检查。就电路满足性而言,委员会内的任何成员都有权利提出挑战。



4、从 Layer2 到比特币主网


资产可以通过两种方式从 Layer2 移动到比特币主网:提现(withdrawal)和强制提现(force-withdrawal)。 提现交易是从 Layer2 触发的,ZKP 电路确保交易按预期进行处理。强制提现交易是从比特币网络发起的。


4.1 提现和强制提现交易


从 Layer2 触发的提现交易使用 ZKP 电路进行验证,以确保正确处理交易。从比特币网络发起的强制提现交易必须包含在下一个区块状态更新中。


4.2 UTXO 分配


当一个区块的状态更新时,UTXO 分配会进行同步。在协议停止的情况下,可以应用所有 UTXO 以确保所有用户资产的安全。在这些 UTXO 中,只有提现或强制提现的 UTXO 由协议签名。


5、Layer2 退出


一旦 ZKP 未经验证,委员会必须停止并退出协议。如果协议停止,委员会会为 Layer2 最新区块状态中指定的所有 UTXO 分配进行签名。凭借这些签名,用户可以从 Layer2 提现而不会有任何损失。



参考文献:
1. BitVM: https://bitvm.org/bitvm.pdf
2. Bitcoin Whitepaper: https://bitcoin.org/bitcoin.pdf
3. Halo2 explanation: https://electriccoin.co/blog/explaining-halo-2/

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

ZKBase
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开