B-Square 学习

  • maodaishan
  • 更新于 2024-04-25 15:32
  • 阅读 1073

简单介绍了B2的核心机制,来自B2的官方文档摘抄

<!--StartFragment-->

https\://docs.bsquared.network/ 使用zk RollUp,支持EVM。 ZK与 Taproot 的挑战相结合,保证比特币withdraw过程中的交易隐私和安全。 目标是将比特币转变为一个多功能平台,为 DeFi、NFT 和其他去中心化系统等突破性应用铺平道路。

比特币上的ZK RollUp和OP挑战 ZK-Rollup只是通过Taproot将零知识证明和Rollup的聚合数据写入比特币。这保证了ZK-Rollup的数据锚定在比特币中并且无法被篡改。但它并不能保证 ZK-Rollup 内交易的有效性和正确性,也不能利用比特币强大的共识能力来保证 Layer 2 ZK-Rollup 的安全。 零知识证明的验证过程本身就是一个算术电路,可以转换为基于与非门的逻辑门电路。这有效地将零知识证明验证过程转化为基于与非门的逻辑门电路。 与非门通过比特币脚本实现,将比特值承诺作为输入和输出组装到逻辑门中以强制执行逻辑约束。 将比特值承诺作为输入和输出组装成逻辑门,每个具有不同输入和输出的逻辑门作为叶子节点,形成电路二叉树。发布的Circuit Taproot是这个二叉树的根,减少了发布数据的大小。 Circuit Taproot 是在BTC L1上提交的 B² Rollup 的承诺。与传统的 ZK-Rollup 可以在 Layer 1 网络上执行验证不同,B² Rollup 无法直接在BTC网络上执行验证。然而,可以采用类似 Optimistic Rollup 的方法,为承诺提供挑战机制。 Circuit Taproot承诺的确认就是通过这个挑战机制完成的。

挑战机制: 与 BitVM 需要两方预先签署链下交易不同,B² 网络采用发布锁定奖励的 UTXO 交易。解锁脚本是 Taproot 脚本。 具体的解锁root脚本涉及Prover预先为电路root的每个分支生成脚本以及给定的哈希输入。挑战者可以使用preimage执行脚本。如果执行的输出与Prover的提交不一致,他们可以使用MAST(默克尔化抽象语法树)解锁整个Taproot来领取锁定的奖励。 挑战机制类似于 Arbitrum Rollup 的“交互式验证游戏”,不断搜索错误执行的逻辑门计算。为了在众多门中找到错误的门,使用二分搜索方法来执行门电路比特币脚本。最快找到错误分支的挑战者可以在比特币网络上解锁带有锁定奖励的UTXO,从而获得奖励。 此外,Taproot 锁定脚本的一个分支是时间锁定脚本。如果挑战没有成功,证明者可以使用时间锁定脚本在挑战期结束后解锁 UTXO 并取回奖励。 架构 概述

添加图片注释,不超过 140 字(可选)

B² 网络由两个基本层组成:RollUp层和DA层 RollUp就是普通的ZK RollUp DA与传统说的DA非常不同。它包括:

  • 基于ZK的DA
  • B2节点:
  • 保存并验证 ZKP
  • Sequencer选择:类似DPoS的方式选择Sequencer,确保去中心化
  • 提供比特币区块和交易数据,用于将比特币状态集成到 B² 汇总中,并生成零知识证明以确保数据安全。
  • 提交ZKP和DA承诺到比特币,并完成挑战
  • 维护 Schnorr 多重签名验证器

\

交易流程:

添加图片注释,不超过 140 字(可选)

RollUp层: 账户抽象: B² Network 在 zkEVM 中创建由用户控制的合约账户(只能创建AA账户吗?能创建和使用EOA吗?)。比特币地址账户的合约账户由用户的比特币私钥控制(比特币账户地址是什么?它的地址格式是比特币的吗?比特币的地址在EVM里怎么用?),以太坊地址账户的合约账户由用户的以太坊私钥控制,电子邮件账户的合约账户由用户的邮箱控制。用户可以通过合约账户为不同的设备或DApp生成子账户。子账户可以拥有受控权限,例如仅发送标准交易,不管理合约账户的资产。控制账户可以随时删除子账户。合约账户具有模块化执行层,根据 B² Network 和用户的设置执行默认操作或检查,例如账户初始化、电子邮件账户 DKIM 验证、交易验证、账户恢复、权限管理和资产锁定。该执行层是可扩展和可升级的。用户在B² Network中的链上资产归属于合约账户,可以通过控制账户(比特币地址账户、以太坊地址账户或Email账户)进行管理。 B² Network 的 Account Abstraction 模块通过其 Transaction Bundler 服务,可以代表用户实现 Gas 支付功能。 Transaction Bundler 收到用户主控账户或子账户签名的交易消息后,根据用户的 Gas 支付设置或交互合约的设置,为用户支付 Gas。然后,它从用户或交互合约收集其他资产作为补偿。

添加图片注释,不超过 140 字(可选)

B² RPC Service内部集成了Transaction Bundler服务,该服务验证消息签名并根据消息内容生成相应的交易信息。 DA层 DA DA节点从 Rollup Layer 接收 Sequencer 发送的 Rollup 数据并存储。存储节点运行ds-prover程序,定期根据存储的rollup数据的时间和空间生成零知识证明。 ds-prover程序将生成的zk存储证明发送给B²节点,验证后,存储节点获得一定的存储奖励。去中心化存储中的存储节点冗余存储汇总数据的副本,确保B²网络的数据可用性。 B² 节点 B² 节点充当链外验证者,并且是 B² 网络中多个独特功能的执行者。 B² 节点由六个主要模块组成:

  • RollUp的ZKP的验证器: 从DA 获取 rollup 交易数据, 从 Rollup 层的Aggregator 获取 rollup 交易的Merkle 树根哈希和 zkp。 首先,使用 Merkle 树根哈希来检查存储在DA 中的 Rollup 交易是否被篡改。 然后,使用zk证明数据来验证rollup交易是否已正确有效地执行。
  • DA的存储proof的验证: 验证DA的存储节点提交的zk存储证明。一旦验证通过,B²节点就会向存储节点分发奖励,激励它们长期存储rollup数据的副本。
  • 选择Sequencer 类似于DPoS,选择一组Sequencer。 这些Sequencer按顺序提供指定时间段内的交易排序和打包服务。 候选者必须投入一定数量的 $BSQ 并准备硬件来运行Sequencer。 用户可以把$BSQ 委托给候选人。
  • 比特币indexer: 监控比特币网络上的区块和交易。在获取最新的区块和交易后,会对这些区块和交易生成零知识证明,比特币indexer将交易和相应的 zkp发送到rollup层。当 zkEVM 收到比特币交易和 zk 证明时,它会验证它们并生成比特币状态 (存在哪?)。

添加图片注释,不超过 140 字(可选)

  • BTC commiter 向比特币发送两种类型的交易,这些交易是用“铭文”方式构造和写入的。
  • 将RollUp data写入比特币,
  • 将 zk 证明验证承诺写入比特币。

\

添加图片注释,不超过 140 字(可选)

\

\

commiter将来自 Rollup 的 ZKP大型计算单元分解为更小的计算单元。然后每个小计算单元都会转化为一个位值承诺,并放置在 Tapleaf 脚本中。 Rollup的zk证明作为第一个比特值承诺的输入,输出作为下一个承诺的输入,最终形成主根。承诺用铭文写入比特币。此外,比特币提交者设置了一个限时挑战,允许挑战者对 zk 证明验证承诺提出质疑。如果没有挑战者或者在时间锁定内挑战失败,则最终在比特币上确认rollup;如果挑战成功,则回滚rollup。

添加图片注释,不超过 140 字(可选)

  • Validator Set 维护着BTC L1上的Schnorr签名者集合。

总结:BTC L1上的铭文中包含数据:

  1. Rollup数据在DA中的存储路径。
  2. Rollup数据的 Merkle 树根哈希。
  3. Rollup数据的ZKP
  4. 父 B² 铭文 UTXO 哈希值。

在B2上开发,可以使用Particle的AA钱包,详细介绍:https\://developers.particle.network/reference/btc-connect-web

\

<!--EndFragment-->

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
maodaishan
maodaishan
0xee37...1912
江湖只有他的大名,没有他的介绍。