في الآونة الأخيرة، حظي مفهوم ما يسمى بالمواثيق باهتمام متجدد حيث شهدت مناقشات تطوير البيتكوين والبروتوكول نهضة. يمكن للمعاهدات تمكين وتسهيل مجموعة واسعة من التطبيقات، بما في ذلك طبقة 2 جديدة غير موثوقة وقابلة للتطوير، خزائن غير حضانة بالكامل مع منطق إنفاق أكثر تعقيدًا وأكثر كفاءة قنوات الدفع. ومع ذلك، تتطلب معظم المسارات لتنفيذ هذه الوظيفة شوكة ناعمة لقواعد إجماع البيتكوين، وهي عملية من المرجح أن تثير الجدل داخل المجتمع.
ومع التنويع الأخير للعملاء المتوافقين على العقد الأساسية والعقدية، أصبح التوصل إلى اتفاق بشأن مثل هذا التغيير أقل احتمالاً. على الرغم من الضغط مؤخرًا من أجل شوكة ناعمة خاصة بهم، وهي بيب-110، يميل جانب العقد إلى الدعوة إلى تعظم البروتوكول ويبدو أقل دعمًا لتسهيل حلول القياس على الطبقة الأساسية. الجدل الأخير الذي اجتذبته Bitcoin Core، سواء ك النقاش الفني والحكم، يقلل من احتمال تنفيذ العهد على بيتكوين في أي وقت قريب.
شخصيات بارزة مثل مايكل سايلور فعلت ذلك أيضًا دعا علنا إلى تعظم البروتوكول، يصور المطورين المتحمسين والممولين جيدًا على أنهم أكبر تهديد للبروتوكول. ومع ذلك، فإن تنفيذ الحد الأدنى من الاتفاقيات من المرجح أن يقدم المسار الأكثر تحفظًا للطبقات الثانية ذات الثقة المنخفضة، والتي يمكن أن تجلب امتيازات الوصاية الذاتية للمليار التالي من البشر. إذا ارتفعت رسوم الشبكة الرئيسية مرة أخرى في المستقبل وتم العثور على حل لحروب البريد العشوائي، فمن المرجح أن تستعيد المناقشات حول هذه المقترحات زخمها. في هذه المقالة، سنضع بعض الأسس التي تساعد قرائنا على فهم العهود. في المقالات التالية، سنتعمق في المقترحات الفردية.
لفهم مقترحات العهد، من الضروري فهم تدفق التحقق الأساسي لمعاملات البيتكوين. يتم التعبير عن شروط قفل البيتكوين بلغة قائمة على المكدس وغير كاملة تورينج تسمى البرنامج النصي بيتكوين. يحدد مرسل معاملة البيتكوين شروط الإنفاق بهذه اللغة عن طريق إنشاء ما يسمى ببرنامج القفل (المعروف أيضًا باسم scriptPubKey). عندما يرغب متلقي الأموال لاحقًا في إنفاق المخرجات، يجب عليه تقديم البرنامج النصي المقابل لإلغاء القفل (المعروف أيضًا باسم scriptSig) الذي يستوفي هذه الشروط. يمكن للغة البرمجة النصية للبيتكوين التعبير عن مجموعة متنوعة من شروط التحقق. يمكنه التحقق من توقيعات المفتاح العام، وفرض الأقفال الزمنية، والتحقق من الصور الأولية للتجزئة، والجمع بين شروط الإنفاق والمنطق المقترح. يمكن للكيان الذي لديه البرنامج النصي الصحيح لإلغاء القفل نقل Bitcoin إلى أي مكان عشوائي، أي إثقالهم بأي برنامج نصي عشوائي PubKey. ومع ذلك، لا يمكنها وضع قيود على مكان إرسال الأموال بعد توفير scriptSig الصحيح.
وهذه هي الميزة التي تهدف المواثيق إلى تمكينها. ستسمح المواثيق للمستخدمين بفرض قيود على كيفية إنفاق العملات المعدنية في المستقبل. ال مفهوم تم تقديمه بواسطة جريجوري ماكسويل يعود تاريخه إلى عام 2013 لتحسين قابلية التوسع والمرونة في عملة البيتكوين. كان في وقت لاحق شعبية بقلم موسر وإيال وسيرير في عام 2016. ماكسويل في البداية مقترح استخدام zk-SNARKs لفرض قيود على الإنفاق. منذ ذلك الحين، شهدت المناقشة انفجارًا في المقترحات المختلفة، وبلغت ذروتها في بعض المقترحات التي قد تتجنب متطلبات الانقسام الناعم.
العهود الأساسية (أو المحسوبة مسبقًا) مقابل العهود العامة (أو العودية).
يكمن التمييز الرئيسي في مقترحات العهد بين العهود الأساسية (أو المحسوبة مسبقًا) والعهود العامة (أو العودية). من حيث المبدأ، تفرض المواثيق الأساسية فقط قيودًا على المعاملة التالية في الصف. ومع ذلك، من خلال ربط العناوين المرهونة معًا، يمكن أيضًا استخدام المواثيق الأساسية لتحديد تسلسل محدود من المعاملات مقدمًا. في حين أن هذا التسلسل من المعاملات المسموح بها يمكن أن يكون طويلًا أو معقدًا بشكل تعسفي، إلا أنه يجب تحديده مسبقًا.
ستكون المواثيق العامة قادرة على التعبير عن قواعد الإنفاق العودية مباشرة داخل Bitcoin Script. وهذا يسمح بإعادة تطبيق شرط الإنفاق إلى أجل غير مسمى. على سبيل المثال، إذا أرسلت أليس لبوب 1 بيتكوين، فيمكن أن يضمن العهد الأساسي أن بوب لا يمكنه إرسال الأموال إلا إلى عنوان محدد أو تقييدها لعدد محدد من الخطوات. ومع ذلك، بموجب ميثاق عام، فإن UTXO بقيمة 1 بيتكوين ستحتفظ بنفس قيود الإنفاق الخاصة بها عندما يرسلها بوب إلى ستيف، ومرة أخرى عندما ينقلها ستيف إلى أبعد من ذلك، دون أي نقطة نهاية محددة مسبقًا. على الرغم من أن المواثيق العامة من شأنها أن توفر قدرًا أكبر من التنوع، إلا أنها تواجه عقبات فنية كبيرة ويتم النظر إليها بشكل نقدي من قبل المجتمع. وسوف يتطلب تنفيذها أيضا تحديثات البروتوكول الرئيسية.
تطبيقات العهد المقترحة وتطبيقاتها
لقد شكلت مقترحات التنفيذ والمناقشات المختلفة فهمنا لكيفية تعزيز المواثيق لوظائف البيتكوين. للتنقل في هذا الموضوع بوضوح، من المهم تمييز التغييرات المقترحة ضمن أربع فئات:
- أكواد التشغيل التي تنفذ وظائف العهد بشكل كامل. إنهم يفرضون بشكل مباشر قيودًا على الإنفاق على معاملات البيتكوين. وهذا يشمل OP_CHECKTEMPLATEVERIFY و SIGHASH_ANYPREVOUT.
- رموز التشغيل التي تعمل كأدوات داعمة. تعمل هذه على توسيع نطاق تعبير نص Bitcoin أو معالجة البيانات ولكنها لا تنفذ وظائف العهد ما لم يتم دمجها مع أكواد التشغيل الأخرى. في هذه الفئة سنناقش OP_CHECKSIGFROMSTACK و OP_CAT.
- رموز التشغيل للتطبيقات المتخصصة. نحن نعتبر OP_VAULT, OP_UNVAULT و OP_EVICT.
- المقترحات التي تقارب سلوك العهد بدون شوكة ناعمة. تعتمد هذه على إنشاءات التشفير ضمن قواعد الإجماع الحالية أو البنية التحتية منخفضة الثقة بدلاً من أكواد التشغيل الجديدة. ضمن هذه الفئة، سنناقش المواثيق المستندة إلى ColliderScript وBitcoin PIPE وFE.
في مقالتنا التالية سنبدأ مناقشتنا للفئة الأولى من مقترحات العهد من خلال تغطية OP_CHECKTEMPLATEVERIFY — أحد المقترحات الأكثر شعبية حتى الآن.













