
bithoven v0.1.0
Bithoven هي لغة عقود ذكية لتأليف أدوات قوية وآمنة على بيتكوين. محلل LR(1) مع تحليل ثابت لسلامة وقت الترجمة. ورقة التحقق الرسمية: https://arxiv.org/abs/2601.01436
Bithoven 🎼
لغة عالية المستوى وأمرية لعقود البيتكوين الذكية
Bithoven هي لغة برمجة آمنة من حيث الأنواع وسهلة للمطوّرين، صُممت لتُصرَّف إلى سكربت Bitcoin الأصلي (Bitcoin Script). إنها تسد الفجوة بين منطق العقود الذكية المعقّد وآلة المكدس منخفضة المستوى الخاصة بآلة البيتكوين الافتراضية (VM).
اكتب كودًا قابلًا للقراءة والتدقيق مع تدفق تحكم حديث (if/else)، ومتغيرات مسماة، وفحوصات أمان مدمجة — ثم صرّفه إلى سكربت Bitcoin عالي التحسين لسيغويت (SegWit) أو تابروت (Taproot).
⚡ المزايا الرئيسية
- صياغة أمرية (Imperative): اكتب المنطق باستخدام عبارات
ifوelseوreturnالمألوفة بدلاً من التعامل الذهني مع المكدس. - أمان الأنواع (Type Safety): دعم من الدرجة الأولى لأنواع
boolوsignatureوstringوnumberلمنع أخطاء التشغيل الشائعة. - مسارات إنفاق متعددة: عرّف عقودًا معقدة (مثل عقود HTLC) بفروع تنفيذ مميزة ومتطلبات مكدس إدخال مختلفة.
- تصريف موجّه (Targeted Compilation): دعم أهداف التصريف
legacyوsegwitوtaprootعبر التوجيهات (pragmas). - بدائيات Bitcoin أصلية: كلمات مفتاحية مدمجة لأقفال الوقت (
older,after)، والتشفير (sha256,checksig)، والتحقق (verify).
🚀 بدء سريع
- بيئة Bithoven على الويب (Web IDE)، على: https://bithoven-lang.github.io/bithoven/ide/
- توثيق Bithoven، على: https://bithoven-lang.github.io/bithoven/docs/
التثبيت
# 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
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 مع مجموعة غنية من الأمثلة التي تعرض عقود بيتكوين ذكية من العالم الواقعي:
| المثال | الوصف | المزايا الرئيسية |
|---|---|---|
| HTLC | عقد القفل الزمني بالتجزئة (Hash Time-Locked Contract) | أقفال التجزئة، أقفال الوقت، المدفوعات الشرطية |
| Atomic Swap 🆕 | تداول عبر السلاسل | أقفال تجزئة SHA256 مزدوجة، تبادل بدون ثقة |
| Escrow 🆕 | سوق توقيع متعدد 2-من-3 | محكّم، مشترٍ/بائع، استرداد بأقفال زمنية |
| Vault 🆕 | محفظة معززة الأمان | سحوبات مؤجلة زمنيًا، استرداد فوري للتخزين البارد |
| Multisig Voting 🆕 | خزينة DAO / موافقات مجلس الإدارة | تصويت بأغلبية 2-من-3، تجاوز طارئ 3-من-3 |
| Prediction Market 🆕 | رهان لا مركزي مع أوراكل قائم على التجزئة | مخططات التزام تشفيرية، تحقق من برهان الأوراكل |
| Multisig | توقيع متعدد 2-من-2 | دعم التوقيع المتعدد في تابروت |
| Inheritance | تحكم وصول متدرج | مستويات ورثة متعددة، وصول قائم على السر |
| Hashlock | قفل تجزئة بسيط | تحقق من تجزئة SHA256 |
| Timelock | قفل زمني مطلق | CLTV (CheckLockTimeVerify) |
| Single Sig | فحص توقيع أساسي | عقد بسيط بنمط P2PKH |
شاهد جميع الأمثلة: دليل الأمثلة
🛠 التصريف (Compilation)
عند التصريف، تترجم Bithoven المنطق الأمرّي عالي المستوى إلى أكواد أوبرا (opcodes) سكربت Bitcoin المكافئة لها، وتتولّى تدفق التحكم وإدارة المكدس تلقائيًا.
الأمر:
bithoven compile htlc.bithoven
سكربت Bitcoin المُولَّد (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
📚 التوثيق
البدائيات (Primitives)
older <n>: يفرض قفلًا زمنيًا نسبيًا (Sequence).after <n>: يفرض قفلًا زمنيًا مطلقًا (LockTime).checksig(sig, pubkey): يتحقق من صحة توقيع مقابل مفتاح عام.verify <expr>: يضمن أن التعبير يُقيَّم إلى true، وإلا يفشل السكربت.
الأنواع (Types)
bool: قيم منطقية (true,false).signature: تواقيع ECSDA أو Schnorr.string: بيانات نصية سداسية عشرية (Hex) أو ASCII.number: قيم صحيحة.
🤝 المساهمة
المساهمات مرحّب بها! يرجى الاطلاع على صفحة القضايا (issues) لبنود خارطة الطريق أو إرسال طلب سحب (PR).
📄 الترخيص
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للتفاصيل.
📄 الاقتباس (Citation)
إذا استخدمت 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:
@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},
}