Nigeria No1. Music site And Complete Entertainment portal for Music Promotion WhatsApp:- +2349077287056
Thursday, 18 December 2025
Show HN: Bithoven – A high-level, imperative language for Bitcoin Smart Contract https://bit.ly/3Y3CnKy
Show HN: Bithoven – A high-level, imperative language for Bitcoin Smart Contract Hey HN! I’m a researcher working on Bitcoin smart contracts, and today I’m releasing Bithoven—a high-level imperative language that compiles to native Bitcoin Script (Legacy, SegWit, and Taproot). The Goal: Raw Bitcoin Script is notoriously difficult to reason about. Writing raw Bitcoin Script today feels like writing Assembly in the 1970s. You have to mentally juggle the stack (`OP_SWAP`, `OP_ROT`), manually manage distinct execution branches, and pray you didn't leave a stack item unconsumed (which crashes the script). My goal was to bridge the gap between complex contract logic and raw opcodes, allowing developers to write readable, compile-time-safe code. Key Features: - Imperative Syntax: Write logic using familiar if/else and return statements instead of mental stack juggling. - Type Safety: First-class support for bool, signature, string, and number types to prevent runtime errors. - Targeted Compilation: Support for Legacy, SegWit, and Taproot compilation targets. - Native Primitives: Built-in keywords for timelocks (older, after) and cryptography (sha256, checksig). You can try it in the browser here (runs via WASM): https://bit.ly/3Y3O9Ez Here is an example of a Hashed Time-Locked Contract (HTLC): (condition: bool, sig_alice: signature) (condition: bool, preimage: string, sig_bob: signature) { if condition { // Relative locktime (Sequence) older 1000; return checksig (sig_alice, alice_pk); } else { // Hashlock verification verify sha256 sha256 preimage == hash; return checksig (sig_bob, bob_pk); } } The project is free open source and the academic paper is currently under review. I’d love to hear any feedback. Thanks for checking it out! https://bit.ly/490qUAt December 15, 2025 at 01:54PM
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment