“Bitcoin Covenants: اكتشف قوة CHECKTEMPLATEVERIFY (BIP 119) في تعزيز أمان المعاملات!”

مجلة بيتكوين: CHECKTEMPLATEVERIFY (BIP 119) – فهم عقود بيتكوين
ما هو CHECKTEMPLATEVERIFY (CTV)؟
هذه المقالة الأولى التي تتناول بالتفصيل مقترحات العقود التي وصلت إلى مرحلة النضج الكافي لتحليلها بعمق. يُعد CHECKTEMPLATEVERIFY (CTV)، الذي قدمه جيريمي روبن عبر BIP 119، أكثر مقترحات العقود نضجًا وتفصيلًا، ليس فقط بين المقترحات التي سنغطيها، بل بين جميع مقترحات العقود بشكل عام. كما ذكرت في المقالة التمهيدية لهذه السلسلة، هناك مخاوف كثيرة في النظام البيئي بشأن العقود التي تكون مرنة جدًا، مما قد يؤدي إلى عواقب سلبية على بيتكوين.
صُمم CTV خصيصًا لتقييد قدراته بما يكفي لتجنب أي من هذه المخاوف. لفهم كيفية عمل CTV، نحتاج أولًا إلى فهم الأجزاء الفردية لمعاملة بيتكوين.
مكونات معاملة بيتكوين
هذه نظرة عامة على معاملة بيتكوين. تحتوي على:
- المدخلات (Inputs): العملات غير المنفقة (UTXOs).
- المخرجات (Outputs): العملات غير المنفقة الجديدة التي ستُنشأ عند تأكيد المعاملة في كتلة.
هناك العديد من الأجزاء الأخرى، لكن هذه هي البنية الأساسية للمعاملة.
تفاصيل إضافية:
- رقم الإصدار: يُشير إلى قواعد أو ميزات جديدة.
- العلامة (Marker) والعلم (Flag): تُحددان لبيان استخدام Segwit.
- عدد المدخلات: عدد المدخلات في المعاملة.
- المدخلات الفعلية: تحتوي على TXID للمعاملة التي أنشأت العملة غير المنفقة، وVOUT الذي يُحدد المخرجات المستهلكة، وحجم ScriptSig، وScriptSig نفسه (النص البرمجي الذي يُثبت التفويض)، ورقم التسلسل (Sequence) لضمان الالتزام بقواعد القفل الزمني النسبي.
- عدد المخرجات: عدد المخرجات في المعاملة.
- المخرجات الفعلية: تحتوي على كمية الساتوشي المخصصة، وحجم ScriptPubKey، وScriptPubKey نفسه (النص البرمجي للقفل).
- nLocktime: يُطبق قفلًا زمنيًا للمعاملة بالكامل.
كيف يعمل CTV؟
CTV هو رمز تشغيل (opcode) يُمكن من أبسط أشكال التفحص الداخلي (introspection) ونقل البيانات إلى الأمام. يسمح للنص البرمجي بمقارنة تجزئة محددة مسبقًا (32 بايت) بتجزئة معظم حقول المعاملة المنفقة. إذا لم تتطابق التجزئة، تكون المعاملة غير صالحة.
الحقول التي يلتزم بها CTV:
- جميع الحقول المذكورة أعلاه، دون القدرة على الاختيار.
لا تشمل التجزئة المدخلات لأنك تحتاج إلى معرفة تجزئة المعاملة مسبقًا، وهو أمر غير ممكن عند إنشاء المعاملة بالكامل.
إمكانية التداخل (Nesting):
يمكنك تداخل نصوص CTV البرمجية، مما يسمح بنقل البيانات عبر سلسلة من المعاملات. ومع ذلك، يكون العمق محدودًا لأن كل “قفزة” تتطلب معرفة المعاملة التالية مسبقًا.
فوائد CTV
يسمح CTV بتقييد المخرجات بحيث لا يمكن إنفاقها إلا عبر معاملة محددة مسبقًا. قد يتساءل البعض: ما الجديد؟ يمكننا بالفعل توقيع المعاملات مسبقًا. لكن الفرق هو أن CTV يزيل الحاجة إلى الثقة في حاملي المفاتيح، حيث لا يمكن إنفاق العملات بأي طريقة أخرى.
مقارنة بالتوقيع المسبق:
- التوقيع المسبق: يتطلب ثقة في حاملي المفاتيح أو حذف المفاتيح.
- CTV: لا يحتاج إلى ثقة، حيث يتم فرض القيود بقواعد الإجماع.
تحسين التنسيق:
يُبسط CTV عملية التنسيق بين الأطراف، حيث لا يحتاج الجميع إلى التواجد في نفس الوقت للتوقيع. يمكن لأي شخص إنشاء سلسلة معاملات CTV بمجرد توفر المعلومات المطلوبة.
أفكار ختامية
CTV هو عقد مقيد للغاية، لا يتجاوز وظائف التوقيع المسبق، لكنه يحسن الكفاءة والقابلية للتوسع والضمانات الأمنية. هذه ميزة كبيرة لكل البروتوكولات الحالية التي تستخدم التوقيع المسبق.
يُعد CTV مقترحًا ناضجًا جدًا، مع قيمة مضافة عالية ولا يشكل أي مخاطر تتعلق بالمخاوف حول العقود. في رأيي الشخصي، كان يجب تفعيله منذ سنوات.
الأسئلة الشائعة (FAQs)
1. ما هو CHECKTEMPLATEVERIFY (CTV)؟
هو رمز تشغيل (opcode) يُمكن من تقييد إنفاق مخرجات بيتكوين عبر معاملة محددة مسبقًا، مما يحسن الأمان دون الحاجة إلى الثقة في الأطراف الأخرى.
2. كيف يختلف CTV عن التوقيع المسبق؟
التوقيع المسبق يتطلب ثقة في حاملي المفاتيح، بينما CTV يفرض القيود بقواعد الإجماع، مما يلغي الحاجة إلى الثقة.
3. ما هي فوائد CTV؟
يُحسن الكفاءة والأمان في البروتوكولات الحالية، ويُبسط التنسيق بين الأطراف، ويمكن دمجه مع رموز تشغيل أخرى لتمكين وظائف أكثر تقدمًا.