一种用于比特币智能合约的高级命令式语言
Bithoven 是一种类型安全、对开发者友好的编程语言,专为编译成本地比特币脚本而设计。它弥合了复杂智能合约逻辑与比特币虚拟机(VM)底层栈机之间的鸿沟。
编写可读、可审计的代码,配备现代控制流(if/else)、命名变量以及内置安全检查——然后将其编译为高度优化的比特币脚本,支持 SegWit 或 Taproot。
if、else 和 return 语句编写逻辑,无需手动处理栈操作。bool、signature、string 和 number 类型,防止常见运行时错误。legacy、segwit 和 taproot 编译目标。older、after)、密码学(sha256、checksig)和验证(verify)。# 对于 CLI 用户
cargo install bithoven
# 对于 Rust 用户
cargo add bithoven
# 对于 JS 用户
npm install bithoven
Bithoven 合约使用 .bithoven 扩展名定义。以下是标准 哈希时间锁定合约(HTLC) 的实现,展示了 Bithoven 如何简化条件性花费路径。
htlc.bithoven
pragma bithoven version 0.0.1;
pragma bithoven target segwit;
/* * 栈输入定义
* 每一行定义一个花费路径的有效输入栈配置。
*/
(condition: bool, sig_alice: signature)
(condition: bool, preimage: string, sig_bob: signature)
{
// 如果 'condition' 为真,则进入退款路径(Alice)
if condition {
// 强制设置相对时间锁为 1000 个区块
older 1000;
// 如果时间锁满足,Alice 可使用其签名花费
return checksig(sig_alice, "0245a6b3f8eeab8e88501a9a25391318dce9bf35e24c377ee82799543606bf5212");
} else {
// 兑换路径(Bob)
// Bob 必须揭示哈希到预期值的秘密原像
verify sha256(sha256(preimage)) == "53de742e2e323e3290234052a702458589c30d2c813bf9f866bef1b651c4e45f";
// 如果哈希匹配,Bob 可使用其签名花费
return checksig(sig_bob, "0345a6b3f8eeab8e88501a9a25391318dce9bf35e24c377ee82799543606bf5212");
}
}
Bithoven 附带了丰富的示例集合,展示了现实世界中的比特币智能合约:
查看所有示例: 示例目录
编译时,Bithoven 会将高级命令式逻辑转换为等效的比特币脚本操作码,自动处理控制流和栈管理。
命令:
bithoven compile htlc.bithoven
生成的比特币脚本(ASM):
OP_IF
<0xe803> OP_CHECKSEQUENCEVERIFY OP_DROP
<pubkey_alice> OP_CHECKSIG
OP_ELSE
OP_HASH256 OP_TOALTSTACK <hash_digest> OP_FROMALTSTACK OP_SWAP OP_EQUALVERIFY
<pubkey_bob> OP_CHECKSIG
OP_ENDIF
older <n>:强制相对时间锁(Sequence)。after <n>:强制绝对时间锁(LockTime)。checksig(sig, pubkey):验证签名与公钥的匹配。verify <expr>:确保表达式求值为真,否则脚本失败。bool:布尔值(true、false)。signature:ECDSA 或 Schnorr 签名。string:十六进制或 ASCII 字符串数据。number:整数值。欢迎贡献!请查看 issues 页面了解路线图项目,或提交 PR。
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
如果您在研究中使用 Bithoven,请引用以下论文:
Bithoven:表达性比特币智能合约的形式化安全性。 Hyunhum Cho 和 Ik Rae Jeong,2026. arXiv 预印本 arXiv:2601.01436. https://arxiv.org/abs/2601.01436
BibTeX:
@misc{bithoven,
title={Bithoven: Formal Safety for Expressive Bitcoin Smart Contracts},
author={Hyunhum Cho and Ik Rae Jeong},
year={2026},
eprint={2601.01436},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/2601.01436},
}
| 示例 | 描述 | 关键特性 |
|---|
| HTLC | 哈希时间锁定合约 | 哈希锁、时间锁、条件性支付 |
| 原子交换 🆕 | 跨链交易 | 双重 SHA256 哈希锁、无需信任的交换 |
| 托管 🆕 | 2-of-3 多签名市场 | 仲裁人、买方/卖方、时间锁定退款 |
| 金库 🆕 | 安全增强钱包 | 延迟提款、即时冷存储恢复 |
| 多签投票 🆕 | DAO 资金库 / 董事会审批 | 2-of-3 阈值投票、紧急 3-of-3 覆盖 |
| 预测市场 🆕 | 基于哈希预言机的去中心化赌博 | 密码学承诺方案、预言机证明验证 |
| 多签 | 2-of-2 多签名 | Taproot 多签名支持 |
| 继承 | 分层访问控制 | 多级继承人、基于秘密的访问 |
| 哈希锁 | 简单哈希锁 | SHA256 哈希验证 |
| 时间锁 | 绝对时间锁 | CLTV(CheckLockTimeVerify) |
| 单签 | 基本签名检查 | 简单 P2PKH 风格合约 |