1. المقدمة
يقدم نموذج مخرجات المعاملات غير المنفقة (UTXO) في البيتكوين، رغم أناقته في تحويل العملة بشكل متزامن، قيودًا كبيرة لتنفيذ العقود الذكية المعقدة ذات الحالة، وذلك بسبب افتقاره إلى حالة مشتركة قابلة للتعديل. تبرز العهود كبدائية لغوية حاسمة مقترحة لتوسيع لغة برمجة البيتكوين (سكريبت)، مما يسمح لمعاملة ما بفرض قيود على سكريبتات المعاملات المستقبلية التي ستستردها. تتناول هذه الورقة الفجوة في النماذج الرسمية المجردة للعهود، والتي تم وصفها بشكل أساسي من منظور تقني منخفض المستوى يركز على التنفيذ منذ بداياتها حوالي عام 2013. من خلال تقديم أساس رسمي، يهدف هذا العمل إلى تبسيط التفكير في خصائص العقود، وتمكين تحديد حالات الاستخدام المتقدمة التي تتجاوز قدرات البيتكوين الحالية، وتسهيل تصميم تجريدات برمجة ذات مستوى أعلى.
2. نموذج البيتكوين الخالص
تعتمد الورقة تشكيلاً رسميًا لنموذج معاملات البيتكوين الأساسي. في نموذج UTXO، يتم تعريف حالة سلسلة الكتل من خلال مجموعة من مخرجات المعاملات غير المنفقة. يحتوي كل مخرج على قيمة (كمية من البيتكوين) و scriptPubKey (سكريبت القفل) يحدد الشروط المطلوبة لإنفاقه. توفر المعاملة المنفقة scriptSig (سكريبت الفتح) وتشير إلى مخرج UTXO الذي ترغب في استهلاكه. تتضمن عملية التحقق تنفيذ السكريبتات المتسلسلة. والأهم من ذلك، أن لغة برمجة البيتكوين القياسية محدودة: فهي لا تستطيع فحص أو تقييد هيكل المعاملة المنفقة بما يتجاوز التحقق من التوقيع والحساب/المنطق الأساسي، مما يمنع إنشاء عقود تفرض بروتوكولات متعددة الخطوات.
3. النموذج الرسمي للعهود
الإسهام الأساسي هو نموذج رسمي يجرد رموز العمليات المقترحة للعهود (مثل OP_CHECKTEMPLATEVERIFY).
3.1. البدائيات النحوية للعهود
يقدم النموذج مسندات العهود كامتدادات للغة برمجة البيتكوين. العهد هو في الأساس قيد $C(T_x, T_{next})$ يُقيّم إلى صواب أو خطأ، حيث $T_x$ هي المعاملة الحالية التي يتم إنفاقها و $T_{next}$ هي المعاملة المنفقة المقترحة. يمكن للمسند فحص حقول $T_{next}$، مثل سكريبتات مخرجاتها أو مبالغها أو أوقات قفلها.
3.2. الدلالات التشغيلية
يتم توسيع قاعدة التحقق: بالنسبة لمخرج UTXO يحتوي على عهد، فإن التحقق من معاملة الإنفاق $T_{next}$ يتطلب ليس فقط أن يلبي scriptSig الخاص بها scriptPubKey الأصلي، ولكن أيضًا أن يحمل مسند العهد $C$ لزوج المعاملات $(T_x, T_{next})$. يتم تعريف هذا رسميًا باستخدام قواعد الدلالات التشغيلية التي تدمج فحص العهد في منطق التحقق الحالي للبيتكوين.
3.3. العهود التكرارية وآلات الحالة
نوع قوي هو العهد التكراري، حيث يمكن لـ $C$ أن تفرض أن مخرج $T_{next}$ نفسه يحتوي على نفس العهد (أو عهد ذي صلة) $C'$. هذا يمكّن من تنفيذ آلات الحالة على البيتكوين: تمثل كل معاملة انتقال حالة، مع ضمان العهد اتباع قواعد آلة الحالة عبر سلسلة من المعاملات. تقوم الورقة بتشكيل هذا رسميًا كسلسلة من المعاملات $T_1, T_2, ..., T_n$ حيث لكل $i$، يحمل $C(T_i, T_{i+1})$.
4. تحديد العقود البيتكوينية المعقدة
يتم تطبيق النموذج الرسمي لتحديد عقود غير قابلة للتعبير عنها حاليًا أو مرهقة في البيتكوين الخالص.
4.1. الخزائن والسحوبات المؤقتة
يمكن للعهود إنشاء "خزائن" حيث يمكن استرداد الأموال المسروقة. يمكن لمعاملة ما أن تشترط أن أي سحب كبير يجب أولاً أن يذهب إلى مخرج مؤقت بوقت قفل، مما يسمح للمالك بإلغائه إذا كان غير مصرح به. يتم تحديد ذلك من خلال عهد يتحقق من حقل nLockTime وهيكل مخرجات $T_{next}$.
4.2. قنوات الدفع وشبكة البرق
بينما توجد شبكة البرق، يمكن للعهود تبسيط وتأمين بنيتها الأساسية. يمكنها فرض أن معاملة إغلاق القناة يجب أن تكون أحدث حالة، ومنع بث الحالة القديمة، عن طريق تقييد المعاملة المنفقة لتتطابق مع تحديث موقّع مسبقًا.
4.3. بدائيات التمويل اللامركزي (DeFi)
تصبح التركيبات البسيطة للتمويل اللامركزي ممكنة، مثل الديون المضمونة بالضمان أو المقايضات غير الوصائية. يمكن للعهد قفل الأموال في معاملة لا يمكن إنفاقها إلا بواسطة معاملة تقدم دليلاً تشفيريًا صالحًا على الدفع من الطرف المقابل أو على التصفية.
5. بدائيات لغات البرمجة عالية المستوى
تناقش الورقة كيف يمكن أن تكون العهود هدفًا للترجمة للغات العقود عالية المستوى. يمكن تعيين بدائيات مثل "السحب بعد الوقت T"، أو "الإنفاق فقط إذا وقّع الطرف المقابل"، أو "الانتقال من الحالة A إلى B" مباشرة إلى قيود عهدية محددة، مما يرفع مستوى التجريد لمطوري عقود البيتكوين.
6. الفكرة الأساسية ومنظور المحلل
الفكرة الأساسية: بارتوليتي وزملاؤه لا يقترحون مجرد رمز عملية عهد آخر؛ إنهم يقدمون النظرية الرسمية المفقودة التي تحول الاختراق الذكي إلى نموذج برمجة شرعي وقابل للتحليل للبيتكوين. هذا هو المفتاح الذي يفتح الباب أمام الهندسة المنهجية للعقود المعقدة والآمنة على سلاسل كتل UTXO، متجاوزًا البرمجة النصية الخاصة بكل حالة.
التدفق المنطقي: الحجة مقنعة وبسيطة: 1) يفتقر نموذج UTXO في البيتكوين إلى الحالة، مما يحد من العقود. 2) العهود المقترحة كحل مفهومة بشكل ضعيف من الناحية الرسمية. 3) لذلك، نبني نموذجًا رسميًا. 4) باستخدام هذا النموذج، نوضح أنه يمكنه التعبير عن حالات استخدام معقدة وقيمة (الخزائن، القنوات، DeFi). 5) هذا التشكيل الرسمي يمكّن بعد ذلك بشكل طبيعي تصميم لغات عالية المستوى. إنه خط كلاسيكي "النظرية تُمكّن الممارسة" يتم تنفيذه بدقة.
نقاط القوة والضعف: القوة الرئيسية هي سد الفجوة بين نظرية التشفير/لغات البرمجة وهندسة البيتكوين - وهي فجوة أدت إلى أخطاء مكلفة في نموذج الحسابات القائم على الإيثيريوم. تسمح الدلالات الرسمية بالتحقق من الخصائص، وهو مكسب كبير. العيب، المعترف به ضمنيًا، هو الاقتصاد السياسي للبيتكوين. كما تلاحظ الورقة، فإن "النهج الحذر للغاية" للبيتكوين يجعل نشر رموز عمليات جديدة مثل العهود مهمة شاقة، بغض النظر عن أناقتها الرسمية. كما أن نجاح الطبقة الثانية مثل البرق بدون عهود أصلية يثير أيضًا تساؤلات حول الضرورة مقابل الرفاهية. علاوة على ذلك، يعتمد أمن النموذج على افتراض أن الحقول المقيدة (مثل تجزئات السكريبت) كافية؛ قد تبقى تأثيرات تفاعلية غير متوقعة مع رموز عمليات أخرى.
رؤى قابلة للتنفيذ: بالنسبة للباحثين، هذه الورقة هي مخطط: استخدم الأساليب الرسمية لتقليل المخاطر وتوضيح ترقيات سلسلة الكتل. بالنسبة للمطورين، ابدأ في تصميم أطر العقود الآن بافتراض وجود العهود (كما هو الحال في Liquid أو Stacks). بالنسبة لمطوري بروتوكول البيتكوين، توفر الورقة الأساس الصارم اللازم للجدال لصالح BIP 119 (OP_CTV) أو المقترحات المماثلة - فهي تحول طلب ميزة إلى مواصفات هندسية. الخلاصة الأكبر: مستقبل العقود الذكية في البيتكوين لا يتعلق بتقليد الإيثيريوم، بل يتعلق بالاستفادة من نموذج UTXO+العهود الفريد لخلق فئة جديدة من التطبيقات اللامركزية، ربما تكون أكثر أمانًا وقابلية للتوسع.
7. التفاصيل التقنية والتشكيل الرسمي
يحدد النموذج الرسمي المعاملات والسكريبتات والتحقق بشكل سياقي. التفصيل التقني الرئيسي هو تمثيل قيد العهد. دع $ exttt{tx}$ تمثل معاملة. يمكن النظر إلى العهد كدالة:
$\text{Covenant}_{\text{cond}} : \texttt{tx}_{\text{current}} \times \texttt{tx}_{\text{next}} \times \sigma \rightarrow \{\text{True}, \text{False}\}$
حيث يمثل $\sigma$ سياق التحقق (ارتفاع الكتلة، إلخ). يمكن أن يكون المسند $\text{cond}$ اقترانًا لفحوصات على حقول $\texttt{tx}_{\text{next}}$:
$\text{cond} \equiv (\texttt{hashOutputs}(\texttt{tx}_{\text{next}}) = H) \land (\texttt{nLockTime}(\texttt{tx}_{\text{next}}) > T) \land ...$
هذا يتوافق مع مقترحات مثل OP_CHECKTEMPLATEVERIFY، والتي تدفع تجزئة لأجزاء محددة من المعاملة المنفقة إلى المكدس للمقارنة. يتم تشكيل الخاصية التكرارية رسميًا من خلال ضمان أن مخرج $\texttt{tx}_{\text{next}}$ يحتوي على سكريبت $S'$ يفرض بدوره عهدًا $\text{Covenant}_{\text{cond}'}$.
8. إطار التحليل وحالة تطبيقية
مثال: عقد خزينة بسيط
الهدف: إنشاء مخرج UTXO يمكن إنفاقه بطريقتين: 1) على الفور، ولكن فقط إلى عنوان "تخزين بارد" محدد. 2) إلى أي عنوان، ولكن فقط بعد تأخير 30 يومًا (يسمح بإلغاء السرقة).
تطبيق الإطار باستخدام النموذج الرسمي:
1. سكريبت القفل الأولي (scriptPubKey): يحتوي على شرط عهد $C_1$.
2. العهد $C_1(T_{vault}, T_{spend})$: يجب أن يُقيّم إلى صواب. يتحقق من:
أ) المسار أ (فوري): $\texttt{hashOutputs}(T_{spend}) = H_{cold}$ // يجب أن تتطابق تجزئة المخرجات مع عنوان التخزين البارد الملتزم به مسبقًا.
ب) المسار ب (مؤجل): $\texttt{nLockTime}(T_{spend}) \geq \text{currentBlock} + 4320$ (30 يومًا بالكتل) ويمكن أن يكون $\texttt{hashOutputs}(T_{spend})$ أي شيء.
3. التحقق: عند إنفاق مخرج خزينة UTXO باستخدام $T_{spend}$، يقوم عقدة البيتكوين بتنفيذ السكريبت. يتطلب توقيعًا من مالك الخزينة و يتحقق من أن $C_1$ تحمل لزوج المعاملات.
يوضح هذا المثال كيف يتم تجسيد مسند النموذج الرسمي $C(T_x, T_{next})$ بفحوصات ملموسة على حقول المعاملة التالية، مما يمكن خاصية أمنية (استرداد السرقة) مستحيلة في البيتكوين الأساسي.
9. التطبيقات المستقبلية والاتجاهات
يفتح التشكيل الرسمي عدة مسارات مستقبلية:
- المترجمات المُتحقق منها: بناء مترجمات من لغات عالية المستوى (مثل Simplicity أو امتدادات Miniscript) إلى لغة برمجة البيتكوين المضمنة بالعهود، مع براهين رسمية على الصحة.
- العهود عبر السلاسل: استكشاف عهود تشترط الإنفاق على أحداث من سلاسل كتل أخرى أو أوراكل، باستخدام براهين تشفيرية مثل SPVs، كما أشار إليه العمل السابق على "الجسور" والأبحاث الحديثة على الـ Rollups.
- العهود الحافظة للخصوصية: دمج فحوصات العهود مع براهين المعرفة الصفرية (مثل استخدام توقيعات Taproot/Schnorr) لإخفاء منطق العقد مع فرضه، وهو اتجاه يتم استكشافه في مشاريع مثل Ark.
- التحليل الأمني الرسمي: استخدام النموذج لتحليل أمن تركيبات العهود المقترحة بشكل منهجي ضد الهجمات الاقتصادية والتشفيرية، على غرار العمل المنجز على عقود الإيثيريوم الذكية من قبل مجتمع IEEE Symposium on Security and Privacy.
- تبسيط بروتوكولات الطبقة الثانية: إعادة تصميم بروتوكولات مثل شبكة البرق أو السلاسل الجانبية (Liquid) لتكون أكثر كفاءة وتقليل الحاجة إلى الثقة من خلال الاستفادة من العهود الأصلية، مما يقلل الحاجة إلى أبراج مراقبة معقدة أو اتحادات.
10. المراجع
- M. Bartoletti, S. Lande, R. Zunino. Bitcoin covenants unchained. arXiv:2006.03918v2 [cs.PL]. 2020.
- S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008.
- J. Poon, T. Dryja. The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments. 2016.
- M. Moser, I. Eyal, E. G. Sirer. Bitcoin Covenants. Financial Cryptography 2016 Workshops.
- Bitcoin Improvement Proposal 119 (BIP 119). OP_CHECKTEMPLATEVERIFY.
- G. Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper. 2014.
- A. Miller, et al. Hashed Timelock Contracts (HTLCs). 2017.
- R. O'Connor. Simplicity: A New Language for Blockchains. Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security.
- Blockstream. Liquid Network. https://blockstream.com/liquid/
- IEEE Symposium on Security and Privacy. Multiple papers on smart contract security analysis. Various years.