跳到主要内容
2026Now

让比特币的 UTXO碰撞出原生智能合约

UTXO_Compiler 接受 .ct 高级合约源码,把 Python-like 写法编译为可嵌入比特币锁定脚本的 BVM 字节码,自带强类型与编译期所有权检查。

p2pkh.ct
live
Contract P2PKH:
    def verify(sig: hex, pubKey: hex):
        pubKey_copy = pubKey.Clone()
        pubKeyHash = Hash160(pubKey_copy)
        EqualVerify(pubKeyHash, self.pubKeyHash)
        result = CheckSig(sig, pubKey)
Sample p2pkh.ct contract — full source available below for screen readers and reduced-motion users.
Sample P2PKH contract written in p2pkh.ct, mirroring the official UTXO Compiler tutorial.

Hash160 会消耗 pubKey;先 Clone 再用,编译期所有权检查会替你保证这一点。

Powered by TBC · BVM · UTXO · PoW SHA-256 · Fair launch

为什么是 UTXO Compiler
  1. 01 / 03

    写比特币合约,本来就不该手敲 Opcode。

    直接写 BVM 操作码门槛高、易错,与产品工程节奏脱节。UTXO_Compiler 让你用 Python-like 的高级语法描述合约逻辑,再由编译器统一翻译为 BVM 字节码。

  2. 02 / 03

    把 UTXO 模型的「状态即代码」交给类型系统。

    合约成员变量被直接编进字节码,不同数据生成不同锁定脚本。强制类型声明 + 编译期所有权检查意味着「你在代码里看到什么,栈上就发生什么」——错误在编译期就被截住,而不是等链上交易回滚。

  3. 03 / 03

    既要熟悉的写法,也要可调试的执行路径。

    自带交互式调试器,可以分别覆盖通过 / 失败两条路径;编译产物是 JSON 格式字节码,方便直接嵌进锁定脚本或与上层钱包 / 索引器联动。

写一个看看

一段 .ct,胜过十段说明。

Contract P2PKH:
    def verify(sig: hex, pubKey: hex):
        pubKey_copy = pubKey.Clone()
        pubKeyHash = Hash160(pubKey_copy)
        EqualVerify(pubKeyHash, self.pubKeyHash)
        result = CheckSig(sig, pubKey)
Hash160 会消耗 pubKey;先 Clone 再用,编译期所有权检查会替你保证这一点。