Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bithoven — Bithoven — это язык смарт-контрактов для создания мощных и безопасных инструментов на Bitcoin. LR(1)-парсер со статическим анализом для обеспечения безопасности на этапе компиляции. Статья о формальной верификации: https://arxiv.org/abs/2601.01436 | Kitploit
Инструменты/GitHubGitHub/chrischo-h/bithoven
Статический анализКриптография
GitHubchrischo-h/bithoven

bithoven

Bithoven — это язык смарт-контрактов для создания мощных и безопасных инструментов на Bitcoin. LR(1)-парсер со статическим анализом для обеспечения безопасности на этапе компиляции. Статья о формальной верификации: https://arxiv.org/abs/2601.01436

РепозиторийСайт
43716 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Bithoven 🎼

Высокоуровневый императивный язык для Bitcoin-смарт-контрактов

Bithoven — это типобезопасный, удобный для разработчика язык программирования, предназначенный для компиляции в нативный Bitcoin Script. Он устраняет разрыв между сложной логикой смарт-контрактов и низкоуровневой стековой машиной Bitcoin Virtual Machine (VM).

Пишите читаемый и проверяемый код с современными управляющими конструкциями (if/else), именованными переменными и встроенными проверками безопасности — затем компилируйте его в высокооптимизированный Bitcoin Script для SegWit или Taproot.

⚡ Ключевые особенности

  • Императивный синтаксис: Пишите логику с помощью привычных операторов if, else и return, вместо манипуляций со стеком в голове.
  • Типобезопасность: Полноценная поддержка типов bool, signature, string и для предотвращения типичных ошибок времени выполнения.
number
  • Несколько путей траты: Определяйте сложные контракты (например, HTLC) с отдельными ветвями исполнения и требованиями к входному стеку.
  • Целевая компиляция: Поддержка целей компиляции legacy, segwit и taproot через прагмы.
  • Нативные примитивы Bitcoin: Встроенные ключевые слова для таймлоков (older, after), криптографии (sha256, checksig) и верификации (verify).
  • 🚀 Быстрый старт

    • Bithoven Web IDE, см.: https://bithoven-lang.github.io/bithoven/ide/
    • Документация Bithoven, см.: https://bithoven-lang.github.io/bithoven/docs/

    Установка

    root@kitploit:~
    # For CLI user
    cargo install bithoven
    # For rust user
    cargo add bithoven
    # For js user
    npm install bithoven
    

    Написание первого контракта

    Контракты Bithoven определяются с расширением .bithoven. Ниже представлена реализация стандартного Hashed Time-Locked Contract (HTLC), демонстрирующая, как Bithoven упрощает условные пути траты.

    htlc.bithoven

    root@kitploit:~
    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 содержит богатую коллекцию примеров, демонстрирующих реальные Bitcoin-смарт-контракты:

    ПримерОписаниеКлючевые особенности
    HTLCHash Time-Locked Contract (контракт с хэш-блокировкой)Хэш-локи, таймлоки, условные платежи
    Atomic Swap 🆕Кроссчейн-обменДвойные SHA256 хэш-локи, доверительный обмен
    Escrow 🆕Маркетплейс с мультисигом 2-из-3Арбитр, продавец/покупатель, возвраты с таймлоком
    Vault 🆕Кошелёк с усиленной безопасностьюОтложенные во времени выводы, немедленное восстановление холодного хранилища
    Multisig Voting 🆕Казначейство DAO / одобрение советаГолосование с порогом 2-из-3, аварийное переопределение 3-из-3
    Prediction Market 🆕Децентрализованные ставки с хэш-оракуломКриптографические схемы обязательств, проверка доказательств оракула
    MultisigМультисиг 2-из-2Поддержка мультиподписи Taproot
    InheritanceМногоуровневый контроль доступаНесколько уровней наследников, доступ на основе секрета
    HashlockПростой хэш-локПроверка SHA256-хэша
    TimelockАбсолютный таймлокCLTV (CheckLockTimeVerify)

    Все примеры: Каталог примеров

    🛠 Компиляция

    При компиляции Bithoven преобразует высокоуровневую императивную логику в эквивалентные опкоды Bitcoin Script, автоматически обрабатывая управляющие конструкции и управление стеком.

    Команда:

    root@kitploit:~
    bithoven compile htlc.bithoven
    

    Сгенерированный Bitcoin Script (ASM):

    root@kitploit:~
    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: Подписи ECSDA или Schnorr.
    • string: Шестнадцатеричные или ASCII строковые данные.
    • number: Целочисленные значения.

    🤝 Участие в разработке

    Вклад приветствуется! Пожалуйста, посетите страницу issues для пунктов дорожной карты или отправьте PR.

    📄 Лицензия

    Этот проект лицензирован в соответствии с MIT License — подробности см. в файле LICENSE.

    📄 Цитирование

    Если вы используете Bithoven в своих исследованиях, пожалуйста, процитируйте следующую статью:

    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:

    root@kitploit:~
    @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}, 
    }
    
    Скачать инструмент
    Single SigБазовая проверка подписиПростой контракт в стиле P2PKH