
Bithoven ist eine Smart-Contract-Sprache zum Erstellen leistungsstarker und sicherer Instrumente auf Bitcoin. LR(1) parser mit statischer Analyse für Sicherheit zur Kompilierzeit. Formaler Verifikationsbericht: https://arxiv.org/abs/2601.01436
Eine hochrangige, imperative Sprache für Bitcoin Smart Contracts
Bithoven ist eine typsichere, entwicklerfreundliche Programmiersprache, die dafür entwickelt wurde, in nativen Bitcoin Script zu kompilieren. Sie überbrückt die Lücke zwischen komplexer Smart-Contract-Logik und der Low-Level-Stack-Maschine der Bitcoin Virtual Machine (VM).
Schreiben Sie lesbaren, prüfbaren Code mit modernen Kontrollflüssen (if/else), benannten Variablen und integrierten Sicherheitschecks – und kompilieren Sie ihn dann in hochoptimierten Bitcoin Script für SegWit oder Taproot.
if, else und return-Anweisungen anstatt mentalem Stack-Jonglieren.bool, signature, string und number, um häufige Laufzeitfehler zu vermeiden.legacy, segwit und taproot über Pragma-Direktiven.older, after), Kryptografie (sha256, checksig) und Verifikation (verify).# For CLI user
cargo install bithoven
# For rust user
cargo add bithoven
# For js user
npm install bithoven
Bithoven-Verträge werden mit der Erweiterung .bithoven definiert. Nachfolgend eine Implementierung eines standardmäßigen Hashed Time-Locked Contract (HTLC), die zeigt, wie Bithoven bedingte Ausgabepfade vereinfacht.
htlc.bithoven
pragma bithoven version 0.0.1;
pragma bithoven target segwit;
/* * Stack Input Definitions
* Each line defines a valid input stack configuration for a spending path.
*/
(condition: bool, sig_alice: signature)
(condition: bool, preimage: string, sig_bob: signature)
{
// If 'condition' is true, we enter the Refund Path (Alice)
if condition {
// Enforce relative timelock of 1000 blocks
older 1000;
// If timelock is satisfied, Alice can spend with her signature
return checksig(sig_alice, "0245a6b3f8eeab8e88501a9a25391318dce9bf35e24c377ee82799543606bf5212");
} else {
// Redeem Path (Bob)
// Bob must reveal the secret preimage that hashes to the expected value
verify sha256(sha256(preimage)) == "53de742e2e323e3290234052a702458589c30d2c813bf9f866bef1b651c4e45f";
// If hash matches, Bob can spend with his signature
return checksig(sig_bob, "0345a6b3f8eeab8e88501a9a25391318dce9bf35e24c377ee82799543606bf5212");
}
}
Bithoven wird mit einer umfangreichen Sammlung von Beispielen geliefert, die reale Bitcoin Smart Contracts demonstrieren:
Alle Beispiele ansehen: Beispiele-Verzeichnis
Beim Kompilieren übersetzt Bithoven die hochrangige imperative Logik in die äquivalenten Bitcoin-Script-Opcodes und übernimmt automatisch die Kontrollfluss- und Stack-Verwaltung.
Befehl:
bithoven compile htlc.bithoven
Generierter Bitcoin Script (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>: Erzwingt relativen Timelock (Sequence).after <n>: Erzwingt absoluten Timelock (LockTime).checksig(sig, pubkey): Validiert eine Signatur gegen einen öffentlichen Schlüssel.verify <expr>: Stellt sicher, dass ein Ausdruck true ergibt, andernfalls schlägt das Skript fehl.bool: Boolesche Werte (true, false).signature: ECSDSA- oder Schnorr-Signaturen.string: Hex- oder ASCII-String-Daten.number: Ganzzahlwerte.Beiträge sind willkommen! Bitte schauen Sie auf der Issues-Seite vorbei, um Roadmap-Elemente zu sehen, oder reichen Sie einen PR ein.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Siehe die Datei LICENSE für Details.
Wenn Sie Bithoven in Ihrer Forschung verwenden, zitieren Sie bitte die folgende Arbeit:
Bithoven: Formal Safety for Expressive Bitcoin Smart Contracts. Hyunhum Cho and Ik Rae Jeong, 2026. arXiv preprint 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},
}
| Beispiel | Beschreibung | Hauptmerkmale |
|---|
| HTLC | Hash Time-Locked Contract | Hash-Locks, Timelocks, bedingte Zahlungen |
| Atomic Swap 🆕 | Kettenübergreifender Handel | Doppelte SHA256-Hash-Locks, vertrauensfreier Austausch |
| Escrow 🆕 | 2-von-3-Multisig-Marktplatz | Schiedsrichter, Käufer/Verkäufer, zeitgesperrte Rückerstattungen |
| Vault 🆕 | Sicherheitsverbesserte Wallet | Zeitverzögerte Abhebungen, sofortige Cold-Storage-Wiederherstellung |
| Multisig Voting 🆕 | DAO-Treasury / Vorstandszustimmungen | 2-von-3-Schwellenwert-Abstimmung, Notfall-3-von-3-Übersteuerung |
| Prediction Market 🆕 | Dezentrales Wetten mit hash-basiertem Oracle | Kryptografische Verpflichtungsschemata, Oracle-Proof-Verifikation |
| Multisig | 2-von-2-Multisig | Taproot-Multisignatur-Unterstützung |
| Inheritance | Abgestufte Zugriffskontrolle | Mehrere Erbenebenen, geheimnisbasierter Zugriff |
| Hashlock | Einfacher Hash-Lock | SHA256-Hash-Verifikation |
| Timelock | Absoluter Timelock | CLTV (CheckLockTimeVerify) |
| Single Sig | Einfache Signaturprüfung | Einfacher P2PKH-artiger Vertrag |