> For the complete documentation index, see [llms.txt](https://bitvm.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bitvm.gitbook.io/doc/featured-articles/robin-linus-on-bitvm/ppt-zhong-wen-ban.md).

# 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等脚本用于签名......<br>

## 3. lamport签名

lamport签名：

* 概念非常简单
* 仅需要哈希函数
* 有可能能用比特币脚本来实现
* 主要缺点为：签名很大
* 但，可对u8、u32、u160进行签名

<br>

### 3.1 对1-bit message的lamport签名

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

<figure><img src="https://sigweb3labs.sg.larksuite.com/space/api/box/stream/download/asynccode/?code=NTVlNThkNGZiZjE5MDEyMmI1YTY0ZmZlMmFlMDQxZWFfU25xV3RrTkFNNFA3MW9GU0NtV2w5R09LQjFYMHFRQlhfVG9rZW46Q0E4Q2I4MURFb3NieUR4TTgyb2xtNGVwZ2NlXzE3MDgxNTUwMzA6MTcwODE1ODYzMF9WNA" alt=""><figcaption></figcaption></figure>

## 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的脚本
* 最坏情况为：严重激励不足
* 在现实应用程序中可能永远不会发生

<figure><img src="https://sigweb3labs.sg.larksuite.com/space/api/box/stream/download/asynccode/?code=ZjVkODRmYTYzMzZjYjE5MmVlNzJiY2Q4MzBmYzQ2MWZfTmI1U1pXMDN6bXJJUjZxSWZlWE5rS0VGUFNyM1BtajRfVG9rZW46VG85WGJjMHRub0g0ZXB4NTYzNGwzd3haZzdkXzE3MDgxNTUwMzA6MTcwODE1ODYzMF9WNA" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/SO8gET2tsvUJbPXFb46p" alt=""><figcaption></figcaption></figure>

## 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+ 会员
* 你可成为会员，然后你无需信任任何人

<figure><img src="https://sigweb3labs.sg.larksuite.com/space/api/box/stream/download/asynccode/?code=MDM4NDI1MjljNzVmMzEwMWI1ZTRhOGRjMjlmMzM0ZTlfTVZUam91TjZNbFk1NGFSR3k3REhCV0RkdUpoTEtDYTVfVG9rZW46S3V1bmJIQlBPb21LM3p4OTNydmx0VWpvZ1dlXzE3MDgxNTUwMzA6MTcwODE1ODYzMF9WNA" alt=""><figcaption></figcaption></figure>

## 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>)<br>
