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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bitvm.gitbook.io/doc/featured-articles/robin-linus-on-bitvm/ppt-zhong-wen-ban.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
