PPT中文版

1. 引言

BitVM,定位为:

  • Bitcoin的链下合约

  • 推动Bitcoin合约功能

开源代码见:

  • https://github.com/BitVM/BitVM(JavaScript)

其动机在于:

  • 当前Bitcoin无法扩容

  • 现有闪电网络扩容性不够

  • 能否将Bitcoin扩容至数十亿用户?

设想的理想情况为:

  • 100倍到1000倍的吞吐量

  • L2自由市场:如zk-rollups、sidechains、zkCoins等等。

  • 快速创新、便宜的试验

  • 所有L2通过闪电网络互联

  • 如果可以,需要bridges。

2. Bitcoin脚本是stateful(有状态的)

Bitcoin脚本现状为:

  • 中本聪禁用了所有有趣的opcodes

  • 将脚本数量最小化

  • 但仍遗留有足够多有吸引力的opcodes

  • 脚本大小最多可为4MB

  • Bitcoin脚本code golf(代码越短越好)

Bitcoin脚本是stateful(有状态的):

  • 理想情况:若可以对某value进行签名,则

* 可强化script1和script2中的$x$为相同值* Punish equivocation,对模棱两可进行惩罚

  • 问题在于:如何对value进行签名呢?

* 当前并没有CSFS等脚本用于签名......

3. lamport签名

lamport签名:

  • 概念非常简单

  • 仅需要哈希函数

  • 有可能能用比特币脚本来实现

  • 主要缺点为:签名很大

  • 但,可对u8、u32、u160进行签名

3.1 对1-bit message的lamport签名

对1-bit message的lamport签名,用比特币脚本表示为:

4. BitVM架构

4.1 BitVM范式

BitVM范式为:

  • 1)像闪电网络一样,试图让东西保持在链下

  • 2)2方设置:Prover和Verifier

  • 3)Optimistic计算

  • 4)反驳错误的结果,要比执行,容易得多

  • 5)Tree++

4.2 Tree++

Tree++:

  • 用于表示交易graphs中Bitcoin Contracts的语言

  • 为脚本的模板化语言:

* Evaluate 常量表示* 展开循环* 组合函数

  • 通过Lamport签名(u8、u32、u160等)实现stateful(有状态的)

  • 组合opcodes(xor、shift、mul、blake3等)

  • connector outputs

  • 前缀的大脚本、大Taptrees,和大TX graphs

4.3 BitVM:Bitcoin VM

BitVM:Bitcoin VM:

  • 不想为每个应用,手写和手工优化其底层电路

  • 构建某种通用VM

  • 简洁地反驳任何错误结果

  • 理想情况:RISC-V架构

4.4 BitVM Specs

BitVM Specs:

  • 基础指令集:rv32i(貌似对riscV指令集有偏好?)

  • 编译目标为:clang、gcc、LLVM

  • 使用现有的C/C++/Rust等库

  • STARK & SNARK verifiers等等

BitVM Detailed Specs:

  • 最大steps数为:$2^{32}$

  • 内存为:$2^{32}*4$字节,约17GB

  • 最坏情况:约40轮的挑战和回应

  • “Court case诉讼案”运行长达半年。

  • 总共:约150KB的脚本

  • 最坏情况为:严重激励不足

  • 在现实应用程序中可能永远不会发生

5. BitVM Bridges

5.1 BitVM Bridges

BitVM Bridges:

  • 将BTC bridge到其它系统

  • 理想情况:有点笨重也可以

  • Bridge很少使用。仅大额时才使用bridge。

  • 终端用户使用跨链swap

5.2 BitVM Bridge Guarantees

BitVM Bridge Guarantees:

  • Federation联盟:但只要有单个诚实会员就足够

  • 确保该bridge是安全和有活性的:

* 安全性:无人可偷掉存款* 活性:无法阻止有效的peg-out

  • 大型联盟:100+ 会员

  • 你可成为会员,然后你无需信任任何人

6. BitVM的Limitations

BitVM的局限性:

  • 复杂性

  • 平衡激励:loser需给winner支付 "fees+bounty"

  • 如果激励措施是平衡的,则不需要链(chain)

  • 潜在的资本密集型

  • 但不需要1:1的抵押

  • 对于所有N方的每个peg-in,有N个预签名的peg-out交易

  • 联盟可审查peg-ins

7. BitVM总结和展望

BitVM总结和展望:

  • BitVM,使得支持更复杂的Bitcoin合约

  • 用例:用于rollups、sidechains、L2s等trust最小化的bridges

  • 局限性:实用,但,笨重

  • 无需软分叉

  • 本月将完成toy版本(但目前未在twitter等公开toy版本是否完成)

  • 粗估今年主网上线

参考资料

[1] 2024年1月16日PPT [BitVM:Off-chain Bitcoin Contracts](https://brink.dev/assets/files/2024-01-16-eng-bitvm-slides.pdf)

[2] [BitVM Transaction Graph](https://raw.githubusercontent.com/BitVM/BitVM/b196b4ea83c899264137342a5f75f0ec89456857/docs/bitVM_graph_v2.svg)

[3] 2024年1月16日 [Robin Linus on BitVM](https://brink.dev/blog/2024/01/16/eng-call-bitvm/)

[4] 2024年1月17日视频 [Robin Linus on BitVM](https://www.youtube.com/watch?v=9aBuGObjEHs&t=150s)

最后更新于