الاقتراب من بيتكوين: المعرفة الأساسية المطلوبة لفهم بِت VM

مبتدئ7/11/2024, 2:55:14 PM
يتناول هذا المقال الخلفية والمفاهيم الأساسية لتقنيات بيتكوين الطبقة 2، مثل BitVM، لمساعدة القراء على فهم هذه التقنيات الحديثة وتطبيقاتها، خصوصًا بالنسبة لأولئك الذين لديهم اهتمام شديد في نظام بيتكوين.

ملخص:

أصدرت Delphi Digital مؤخرا تقريرا بعنوان "The Dawn of Bitcoin Programmability: Paving the Way for Rollups" ، والذي يحدد المفاهيم الأساسية المتعلقة ب Bitcoin Rollups ، بما في ذلك مجموعة BitVM ، وقيود OP_CAT والعهد ، وطبقة DA للنظام البيئي Bitcoin ، والجسور ، وأربعة حلول رئيسية من الطبقة 2 باستخدام BitVM: Bitlayer و Citrea و Yona و Bob. بينما يقدم التقرير نظرة عامة على تقنية Bitcoin Layer 2 ، إلا أنه يظل عاما تماما ويفتقر إلى الأوصاف التفصيلية ، مما يجعل من الصعب فهمه إلى حد ما. توسع Geek Web3 في تقرير دلفي لمساعدة المزيد من الأشخاص على فهم تقنيات مثل BitVM بشكل منهجي.

سنعمل مع فريق بحوث Bitlayer ومجتمع BitVM الصيني لإطلاق سلسلة تسمى 'الاقتراب من BTC'. ستركز هذه السلسلة على مواضيع رئيسية مثل BitVM، OP_CAT، وجسور بيتكوين العابرة للسلاسل، بهدف تجلية تقنيات بيتكوين الطبقة 2 لجمهور أوسع ووضع الأسس لمزيد من الهواة.

قبل بضعة أشهر، قام روبن لينوس، زعيم شركة ZeroSync، بنشر مقال بعنوان "BitVM: قم بحساب أي شيء على البيتكوين"، مقدمًا رسميًا مفهوم BitVM ودفع تقنية البيتكوين الطبقة 2 قدمًا. يُعتبر هذا واحدًا من أكثر الابتكارات الثورية في نظام البيتكوين، مما أثار اهتمامًا كبيرًا ونشاطًا في مجال البيتكوين الطبقة 2. لقد جذب مشاريع ملحوظة مثل Bitlayer، Citrea، و BOB، جلبت طاقة جديدة إلى السوق. منذ ذلك الحين، انضم المزيد من الباحثين لتحسين BitVM، الأمر الذي أسفر عن عدة إصدارات تتبعية مثل BitVM1، BitVM2، BitVMX، و BitSNARK. النظرة العامة كما يلي:

  1. قدم روبن لينوس في البداية ورقة بيضاء لتنفيذ BitVM العام الماضي، والتي تعتمد على دوائر بوابة منطقية مفهومية وتعرف باسم BitVM0.
  2. في العروض والمقابلات اللاحقة، قدم روبن لينوس بشكل غير رسمي مفهوم BitVM استنادًا إلى وحدة المعالجة المركزية النظرية، المشار إليها بـ BitVM1. هذا مشابه لنظام إثبات الاحتيال Cannon في Optimism، ويمكنه محاكاة تأثير وحدة المعالجة المركزية عامة الغرض خارج السلسلة باستخدام النصوص الخاصة بالبيتكوين.
  3. اقترح روبن لينوس أيضًا BitVM2، وهو بروتوكول برهان احترافي غير تفاعلي وغير مراقب بخطوة واحدة.
  4. أصدر أعضاء Rootstock Labs و Fairgate Labs ورقة بيضاء حول BitVMX. على غرار BitVM1، يهدفون إلى محاكاة تأثير وحدة المعالجة المركزية متعددة الأغراض خارج السلسلة باستخدام سكريبتات بيتكوين.

في الوقت الحاضر ، أصبح بناء النظام البيئي للمطورين المرتبط ب BitVM واضحا بشكل متزايد ، كما أن التحسين التكراري للأدوات الطرفية مرئي أيضا بالعين المجردة. مقارنة بالعام الماضي ، أصبح النظام البيئي BitVM اليوم "مرئيا بشكل غامض" من "القلعة في الهواء" الأولية ، والتي جذبت أيضا المزيد والمزيد من الناس. المزيد من المطورين و VCs يندفعون إلى نظام Bitcoin البيئي.

بالنسبة لمعظم الناس، فهم BitVM والمصطلحات الفنية المتعلقة بطبقة بيتكوين 2 ليس سهلاً. إنه يتطلب فهمًا منهجيًا للمعرفة الأساسية، خاصة سكريبتات بيتكوين وتابروت. الموارد عبر الإنترنت الحالية غالبًا ما تكون إما طويلة جدًا ومليئة بتفاصيل غير ذات صلة أو قصيرة جدًا لتكون واضحة. نحن نهدف إلى حل هذه المشكلات من خلال استخدام لغة واضحة وموجزة لمساعدة المزيد من الأشخاص على فهم المفاهيم الأساسية لطبقة بيتكوين 2 وبناء فهم شامل لنظام BitVM.

MATT والتزامات: المفهوم الأساسي لBitVM

المفهوم الأساسي لـ BitVM يدور حول MATT، الذي يعني Merkleize All The Things. يستخدم هذا النهج شجرة Merkle، وهي هيكل تخزين بيانات هرمي، لتمثيل تنفيذ برامج معقدة. يهدف إلى تمكين التحقق الأصلي من الاحتيال على شبكة Bitcoin. يمكن لـ MATT التقاط تفاصيل برنامج معقد وأنشطته لمعالجة البيانات، لكنه لا ينشر هذه البيانات الواسعة مباشرة على سلسلة الكتل Bitcoin بسبب حجمها الكبير. بدلاً من ذلك، يقوم نهج MATT بتخزين هذه البيانات في شجرة Merkle خارج السلسلة وينشر فقط جذع Merkle (ملخص أعلى لشجرة Merkle) على السلسلة. تحتوي الشجرة Merkle أساسًا على ثلاث مكونات رئيسية:

  • شيفرة النص الذكي للعقد الذكي
  • البيانات المطلوبة للعقد
  • اثار تنفيذ العقد (سجلات التغييرات في الذاكرة وسجلات وحدة المعالجة المركزية أثناء تنفيذ العقود الذكية في الآلات الافتراضية مثل EVM)

(رسم تخطيطي بسيط لشجرة ميركل. يتم حساب جذر Merkle الخاص به من 8 أجزاء بيانات في أسفل الصورة من خلال التجزئة متعددة الطبقات)

وفقًا لخطة MATT، يتم تخزين فقط جذر Merkle الصغير جدًا على السلسلة، ويتم تخزين مجموعة البيانات الكاملة الموجودة في شجرة Merkle خارج السلسلة. يستخدم هذا فكرة تُدعى "الالتزام". إليك شرح ما هو "الالتزام".

الوعد مثل بيان موجز ، يمكننا فهمه كـ "بصمة" تم الحصول عليها بعد ضغط كمية كبيرة من البيانات. عمومًا ، الشخص الذي يصدر "التعهد" على السلسلة سيدعي أن بعض البيانات المخزنة خارج السلسلة دقيقة. يجب أن تتطابق هذه البيانات خارج السلسلة مع بيان موجز ، وهذا البيان هو "التعهد".

في وقت ما، يمكن استخدام تجزئة البيانات كـ "تعهد" بالبيانات نفسها. تشمل الأنظمة الأخرى للتعهد تعهد KZG أو Merkle Tree. في بروتوكول الإثبات الاحتيالي العادي للطبقة2، سيقوم ناشر البيانات بنشر مجموعة البيانات الكاملة خارج السلسلة والتزام بنشر مجموعة البيانات على السلسلة. إذا اكتشف شخص ما بيانات غير صالحة في مجموعة البيانات خارج السلسلة، سيتم تحدي التزام البيانات على السلسلة.

من خلال التزامه، يمكن للطبقة الثانية ضغط كمية كبيرة من البيانات ونشر "التزامها" فقط على سلسلة البيتكوين. بالطبع، من الضروري أيضًا ضمان أن يمكن للعالم الخارجي ملاحظة مجموعة البيانات الكاملة التي تم الإفراج عنها خارج السلسلة.

حاليًا، تتبع جميع مخططات BitVM الرئيسية مثل BitVM0، BitVM1، BitVM2، وBitVMX جميعها هياكل مجردة مماثلة:

  1. تقسيم البرنامج والالتزام: في البداية، يتم تقسيم برنامج معقد إلى العديد من أوبكودات الأساسية (جمع). يتم تسجيل آثار تنفيذ هذه الأوبكودات (وهي في الأساس تغيرات الحالة عند تشغيل برنامج على وحدة المعالجة المركزية والذاكرة، المعروفة باسم الآثار)، يتم تنظيم جميع البيانات، بما في ذلك الآثار والأوبكودات، في مجموعة بيانات، وتتم إنشاء التزام لهذه المجموعة البيانات. يمكن استخدام مخططات التزام مختلفة، مثل أشجار ميركل، PIOPs (الخوارزميات المتنوعة للإثبات الشهودي الصفري)، ووظائف التجزئة.
  2. الرهان على الأصول والتوقيع المسبق: يجب على مُنشئ البيانات والتحقق منها أن يقوما بقفل كمية معينة من الأصول على سلسلة الكتل من خلال التوقيع المسبق، مع شروط مقيدة محددة. هذه الشروط تُشغّل إجراءات لأحداث مستقبلية محتملة. إذا تصرف مُنشئ البيانات بشكل خبيث، يمكن للمُحقق أن يقدم دليلًا ويستولي على أصول مُنشئ البيانات.
  3. نشر البعد والتزام البيانات: يقوم ناشر البيانات بنشر التزامه على السلسلة الكتلية ومجموعة البيانات الكاملة خارج السلسلة. يسترد المحقق ويتحقق من مجموعة البيانات للأخطاء. كل جزء من مجموعة البيانات خارج السلسلة مرتبط بالتزام السلسلة الكتلية.
  4. تحدي وغرامةإذا وجد المدقق أخطاء في البيانات المقدمة من ناشر البيانات ، فإنه يجلب هذا الجزء من البيانات على السلسلة للتحقق المباشر (يتطلب بيانات مفصلة بدقة).: تتبع هذه العملية منطق أدلة الاحتيال. إذا تم التأكد من أن البيانات غير صالحة، أخذ أصول ناشر البيانات من قبل جهة التحقق المعترض عليها. باختصار ، يكشف ناشر البيانات ، أليس ، عن جميع الآثار التي تم إنشاؤها أثناء تنفيذ معاملات الطبقة 2 خارج السلسلة وينشر الالتزام المقابل على السلسلة. لإثبات أن جزءا من البيانات غير صحيح ، يجب عليك أولا إظهار عقدة Bitcoin أن هذه البيانات تتعلق بالالتزام على السلسلة ، وتأكيد الكشف عنها من قبل Alice ، ثم تتحقق عقدة Bitcoin من دقة البيانات. بعد فهم الفكرة العامة ل BitVM ، تلتزم جميع متغيرات BitVM بهذا النموذج الأساسي. بعد ذلك ، سوف نتعمق في بعض التقنيات الرئيسية المستخدمة في هذه العملية ، بدءا من أساسيات نصوص Bitcoin النصية و Taproot والتوقيعات المسبقة.

ما هو سكريبت بيتكوين؟

فهم بيتكوين قد يكون أكثر تحديًا من إثريوم، حيث تتضمن حتى أبسط المعاملات عدة مفاهيم رئيسية. منها UTXO (الإخراج التحويلي غير المنفق)، ونصوص القفل (المعروفة أيضًا باسم ScriptPubKey)، ونصوص الفتح (المعروفة أيضًا باسم ScriptSig). لنقم أولًا بتحليل هذه المفاهيم الأساسية.

(عينة من شيفرة بيتكوين تتكون من أوامر أوبكود منخفضة المستوى مقارنة باللغات عالية المستوى) طريقة تمثيل الأصول في إيثيريوم مشابهة لأنظمة مثل اليباي أو ويتشات، حيث يعدل كل صفقة ببساطة أرصدة الحسابات المختلفة. يعامل هذا النهج المعتمد على الحسابات أرصدة الأصول على أنها أرقام مرتبطة بالحسابات. على النقيض من ذلك، يعتبر تمثيل الأصول في بيتكوين أكثر شبهاً بالتعامل مع الذهب، حيث يتم وسم كل قطعة من الذهب (UTXO) بمالك. تدمر صفقة بيتكوين بشكل أساسي UTXO القديم وتنشئ واحدة جديدة، مع تغيير الملكية في العملية. يشمل UTXO لبيتكوين عنصرين رئيسيين:

  • المبلغ: تُقاس بوحدة “ساتوشي” (حيث يُساوي بيتكوين واحد مئة مليون ساتوشي)؛
  • النص القفل (النص العام للنص)يحدد هذا الشروط المطلوبة لإلغاء قفل UTXO.: يتم تحديد ملكية Bitcoin UTXO بواسطة البرنامج النصي للقفل. على سبيل المثال ، إذا كنت ترغب في نقل UTXO الخاص بك إلى Sam ، فستبدأ معاملة تدمر UTXO الخاص بك وتنشئ معاملة جديدة بشرط "يمكن ل Sam فقط إلغاء القفل". عندما يريد سام استخدام عملات البيتكوين هذه ، يجب عليه إرسال برنامج نصي لإلغاء القفل (ScriptSig). في هذا البرنامج النصي ، يقدم سام توقيعه الرقمي لإثبات هويته. إذا تطابق البرنامج النصي لإلغاء القفل مع نص القفل الأصلي ، فيمكن ل Sam بعد ذلك فتح عملات البيتكوين ونقلها إلى شخص آخر.

(يجب أن يتطابق النص البرمجي للفتح مع النص البرمجي للإغلاق) في تحويلات Bitcoin، يتكون كل تحويل من عدة مداخل ومخارج. كل مدخل يحدد UTXO ليتم فتحه ويوفر نص برمجي للفتح للقيام بذلك، الذي يفتح بعد ذلك ويدمر UTXO. تظهر مخارج التحويل UTXOs المنشأة حديثًا وتعرض علنًا النصوص البرمجية المقفلة المرتبطة. على سبيل المثال، في مدخل تحويل معين، تثبت أنك سام عن طريق فتح عدة UTXOs أرسلها لك الآخرون، وتدمرها في العملية. ثم، تنشئ عدة UTXOs جديدة وتحدد أن xxx يمكنها فتحها في المستقبل.

تحديدًا، في بيانات الإدخال لصفقة، يجب عليك أن تعلن أي UTXOs تنوي فتحها وتحديد "موقع التخزين" لهذه البيانات UTXO. من المهم فهم أن بيتكوين وإثيريوم يتعاملان مع هذا بشكل مختلف. إثيريوم يستخدم حسابات العقود وحسابات المملوكة خارجيًا (EOAs) لتخزين البيانات، مع تسجيل أرصدة الأصول كأرقام تحت هذه الحسابات. يتم تخزين كل هذه المعلومات في قاعدة بيانات تُسمى "الحالة العالمية". عند حدوث صفقة، تقوم "الحالة العالمية" بتحديث أرصدة الحسابات المحددة مباشرة، مما يجعل من السهل تحديد البيانات. على النقيض من ذلك، بيتكوين لا يحتوي على "الحالة العالمية". بدلاً من ذلك، يتم توزيع بيانات الأصول عبر الكتل السابقة كـ UTXOs غير المُنفقة، والتي تُخزن بشكل فردي في الإخراج من كل صفقة.

إذا كنت ترغب في فتح UTXO معينة، يجب عليك تحديد إخراج الصفقة التي توجد فيها معلومات UTXO في الماضي، وإظهار هوية الصفقة (وهي تجزئتها). دع عقدة البتكوين تبحث عنها في التاريخ. إذا كنت ترغب في استعلام رصيد البتكوين لعنوان معين، فعليك أن تعبر عن كل الكتل من البداية للعثور على UTXO المفتوحة المرتبطة بعنوان xx.

عند استخدامك عادة محفظة البتكوين، يمكنك التحقق بسرعة من رصيد البتكوين المملوك بواسطة عنوان معين. وهذا غالبًا ما يكون بسبب أن خدمة المحفظة نفسها تفهرس جميع العناوين عن طريق مسح الكتل، مما يجعل من السهل علينا الاستعلام بسرعة.

(عند إنشاء معاملة لنقل UTXO الخاص بك إلى شخص آخر ، فأنت بحاجة إلى تحديد موقع UTXO في سجل معاملات Bitcoin من خلال الرجوع إلى تجزئة / معرف المعاملة الذي ينتمي إليه.) ومن المثير للاهتمام ، يتم حساب نتائج معاملات Bitcoin خارج السلسلة. عندما يقوم المستخدمون بإنشاء معاملات على أجهزتهم المحلية ، يجب عليهم إنشاء جميع المدخلات والمخرجات مسبقا ، وحساب مخرجات المعاملة بشكل فعال. ثم يتم بث المعاملة إلى شبكة Bitcoin ، والتحقق منها بواسطة العقد ، وإضافتها إلى blockchain. يختلف نموذج "الحساب خارج السلسلة - التحقق على السلسلة" تماما عن نموذج Ethereum. على Ethereum ، ما عليك سوى توفير معلمات إدخال المعاملة ، ويتم حساب نتائج المعاملات وإخراجها بواسطة عقد Ethereum. علاوة على ذلك ، يمكن تخصيص برنامج قفل UTXO. يمكنك تعيين UTXO ليكون "غير قابل للفتح من قبل مالك عنوان Bitcoin محدد" ، مما يتطلب من المالك تقديم توقيع رقمي ومفتاح عام (P2PKH). في معاملات الدفع مقابل تجزئة البرنامج النصي (P2SH) ، يمكنك إضافة تجزئة البرنامج النصي إلى البرنامج النصي لقفل UTXO. يمكن لأي شخص يمكنه إرسال البرنامج النصي المقابل لهذه التجزئة وتلبية الشروط المحددة في البرنامج النصي إلغاء قفل UTXO. يستخدم البرنامج النصي Taproot ، الذي يعتمد عليه BitVM ، ميزات مشابهة لتلك الموجودة في P2SH.

كيفية تشغيل سكريبت بيتكوين

لفهم آلية التشغيل لنصوص البيتكوين، سنبدأ بمثال P2PKH، الذي يعني "الدفع إلى تجزئة مفتاح عام". في هذا الإعداد، يحتوي النص القفلي لـ UTXO على تجزئة مفتاح عام، ولفتحه، يجب توفير المفتاح العام المقابل. تتماشى هذه الآلية مع العملية القياسية لمعاملات البيتكوين. في هذا السياق، يجب على عقدة بيتكوين التحقق من أن المفتاح العام في النص الفتحي يتطابق مع تجزئة مفتاح عام محددة في النص القفلي. في جوهرها، تحقق من أن "المفتاح" الذي قدمه المستخدم يتناسب مع "القفل" المضبوط من قبل UTXO. وبشكل أكثر تفصيلاً، في إطار نظام P2PKH، عندما تستقبل عقدة بيتكوين عملية تحويل، تجمع نص الفتح للمستخدم (ScriptSig) مع نص القفل (ScriptPubKey) لـ UTXO الذي يجب فتحه، ثم تنفذ هذا النص المجمع في بيئة تنفيذ نص بيتكوين. توضح الصورة أدناه النتيجة المجمعة قبل التنفيذ:

قد لا يكون القراء على دراية ببيئة تنفيذ البرنامج النصي BTC ، لذلك دعونا نقدمها بإيجاز. تتكون نصوص Bitcoin النصية من عنصرين: البيانات ورموز التشغيل. يتم دفع هذه العناصر إلى مكدس بالتتابع من اليسار إلى اليمين ويتم تنفيذها وفقا للمنطق المحدد لإنتاج النتيجة النهائية (للحصول على شرح لماهية المكدس ، يمكن للقراء الرجوع إلى ChatGPT). في المثال أعلاه ، يعرض الجانب الأيسر البرنامج النصي لإلغاء القفل (ScriptSig) الذي يوفره شخص ما ، والذي يتضمن توقيعه الرقمي ومفتاحه العام. يظهر الجانب الأيمن نص القفل (ScriptPubKey) ، والذي يحتوي على سلسلة من رموز التشغيل والبيانات التي حددها منشئ UTXO عند إنشاء UTXO (يكفي فهم الفكرة العامة ؛ لسنا بحاجة إلى الخوض في معنى كل رمز تشغيل). تقوم رموز التشغيل في البرنامج النصي للقفل على الجانب الأيمن ، مثل DUP و HASH160 و EQUALVERIFY ، بتجزئة المفتاح العام من البرنامج النصي لإلغاء القفل على الجانب الأيسر ومقارنته بتجزئة المفتاح العام المعينة مسبقا في البرنامج النصي للقفل. إذا تطابقت ، فإنها تؤكد أن المفتاح العام في البرنامج النصي لإلغاء القفل يطابق تجزئة المفتاح العام في البرنامج النصي للقفل ، مما يجتاز التحقق الأول. ومع ذلك ، هناك مشكلة: محتوى البرنامج النصي للقفل مرئي للجمهور على blockchain ، مما يعني أنه يمكن لأي شخص رؤية تجزئة المفتاح العام. لذلك ، يمكن لأي شخص تقديم المفتاح العام المقابل والادعاء زورا بأنه الشخص المخول. لمعالجة هذا الأمر ، بعد التحقق من المفتاح العام وتجزئة المفتاح العام ، يجب على النظام أيضا التحقق مما إذا كان بادئ المعاملة يتحكم بالفعل في المفتاح العام ، والذي يتضمن التحقق من التوقيع الرقمي. يعالج رمز التشغيل CHECKSIG في البرنامج النصي للتأمين هذا التحقق. باختصار ، بموجب مخطط P2PKH ، يجب أن يتضمن البرنامج النصي لإلغاء قفل بادئ المعاملة المفتاح العام والتوقيع الرقمي. يجب أن يتطابق المفتاح العام مع تجزئة المفتاح العام المحددة في نص القفل ، ويجب أن يكون التوقيع الرقمي صحيحا. يجب استيفاء هذه الشروط لإلغاء قفل UTXO بنجاح.

(هذا رسم توضيحي ديناميكي: مخطط لنصوص فتح بيتكوين في إطار مخطط P2PKH
المصدر:https://learnmeabitcoin.com/technical/script)

من المهم أن نلاحظ أن شبكة البيتكوين تدعم أنواعًا مختلفة من المعاملات بعيدًا عن الدفع إلى المفتاح العام / هاش العام، مثل P2SH (الدفع إلى سكربت هاش). نوع المعاملة المحدد يعتمد على كيفية تكوين السكربت القفل عند إنشاء UTXO.

من المهم أن تفهم أنه بموجب مخطط P2SH ، يمكن للبرنامج النصي للقفل إعداد تجزئة البرنامج النصي مسبقا ، ويجب أن يوفر البرنامج النصي لإلغاء القفل محتوى البرنامج النصي الكامل الذي يتوافق مع تجزئة البرنامج النصي هذه. يمكن لعقدة Bitcoin بعد ذلك تنفيذ هذا البرنامج النصي ، وإذا كانت تتضمن منطق التحقق متعدد التواقيع ، فإنها تمكن بشكل فعال المحافظ متعددة التواقيع على blockchain Bitcoin. في مخطط P2SH ، يحتاج منشئ UTXO إلى إبلاغ الشخص الذي سيفتح UTXO في المستقبل بمحتوى البرنامج النصي المقابل لتجزئة البرنامج النصي. طالما أن كلا الطرفين على دراية بمحتوى البرنامج النصي ، يمكننا تنفيذ منطق أعمال أكثر تعقيدا من مجرد التوقيع المتعدد. تجدر الإشارة أيضا إلى أن blockchain Bitcoin لا يسجل مباشرة UTXOs المرتبطة بالعناوين. بدلا من ذلك ، فإنه يسجل UTXOs التي يمكن إلغاء قفلها من خلال تجزئة المفتاح العام أو تجزئة البرنامج النصي. ومع ذلك ، يمكننا اشتقاق العنوان المقابل بسرعة (سلسلة الأحرف التي تبدو وكأنها رطانة معروضة في واجهات المحفظة) من تجزئة المفتاح العام أو تجزئة البرنامج النصي.

السبب فيما ترى حجم البيتكوين المرتبط بعنوان معين على مستكشفي الكتل وواجهات المحافظ هو أن هذه الخدمات تحلل وتفسر بيانات سلسلة الكتل لك. إنها تمسح جميع الكتل وبناءً على تجزئة المفتاح العام أو تجزئة النص المعلنة في النصوص القفلية، تحسب العنوان المقابل. يسمح ذلك لهم بعرض مقدار البيتكوين المرتبط بهذا العنوان.

الشاهد المنفصل والشاهد

فهم P2SH يقربنا من Taproot، وهو مكون أساسي لـ BitVM. ومع ذلك، قبل الانغماس في Taproot، من الضروري فهم مفهوم Witness وSegregated Witness (SegWit). يسلط استعراض النصوص المفتاحية والمغلقة، فضلاً عن عملية إلغاء قفل UTXO، الضوء على مشكلة: تتم إدراج التوقيع الرقمي للمعاملة في النص التفعيل. عند إنشاء هذا التوقيع، لا يمكن أن يكون النص التفعيل ذاته جزءًا من البيانات الموقعة (نظرًا لعدم إمكانية تضمين المعلمات المستخدمة لإنشاء التوقيع الذاتي).

بناء على ذلك، يمكن للتوقيع الرقمي أن يغطي فقط أجزاء من بيانات المعاملة خارج نص الإلغاء، مما يعني أنه لا يمكنه حماية بالكامل من بيانات المعاملة بأكملها. وهذا يؤدي إلى نقطة ضعف حيث يمكن للوسيط تعديل نص الإلغاء قليلاً دون التأثير على التحقق من التوقيع. على سبيل المثال، يمكن لعقدات بيتكوين أو حمامات التعدين إدخال بيانات إضافية في نص الإلغاء. على الرغم من أن هذا التعديل لا يؤثر على التحقق أو نتيجة المعاملة، إلا أنه يغير بشكل طفيف بيانات المعاملة، مما يؤدي بدوره إلى تغيير قيمة التجزئة/معرف المعاملة المحسوب. وتُعرف هذه المشكلة باسم تشويه المعاملة.

المشكلة في ذلك هي أنه إذا كنت تخطط لبدء معاملات متسلسلة متعددة تعتمد على بعضها البعض (على سبيل المثال، يشير المعاملة 3 إلى إخراج المعاملة 2، وتشير المعاملة 2 إلى إخراج المعاملة 1)، يجب على المعاملات التالية أن تشير إلى تجزئة المعاملات السابقة. يمكن لأي وسيط، مثل مجموعة تعدين أو عقدة بيتكوين، إجراء تعديلات طفيفة على النص الذي يقوم بإلغاء القفل، مما يتسبب في اختلاف تجزئة المعاملة عن توقعك عندما تكون على البلوكشين.

يمكن أن تبطل هذه الفجوة تسلسل عمليات التداول المترابطة المُخطَط لها مسبقًا الخاصة بك. هذه المسألة ذات صلة بشكل خاص في سياق جسور دي إل سي وبيت في إم 2، حيث يتم بناء دُفعات من التعاملات ذات الصلة تسلسليًا، مما يجعل مثل هذه السيناريوهات شائعة إلى حد ما.


بشكل بسيط، يحدث مشكلة تشويه الصفقات لأن حساب معرف/تجزئة الصفقة يتضمن البيانات من النص الذي يقوم بفتح القفل. يمكن للوسطاء مثل عُقد بيتكوين إجراء تعديلات طفيفة على النص الذي يقوم بفتح القفل، مما ينتج عنه معرف صفقة لا يتطابق مع توقعات المستخدم. ينبع هذا المشكلة من قيود التصميم المبكرة في بيتكوين. يعالج الترقية إلى الشاهد المجزأ (SegWit) هذه المشكلة عن طريق فصل معرف الصفقة عن النص الذي يقوم بفتح القفل. مع الشاهد المجزأ، يستبعد حساب تجزئة الصفقة بيانات النص الذي يقوم بفتح القفل. يبدأ نصوص قفل UTXO ضمن الشاهد المجزأ برمز تشغيلي “OP_0” كعلامة، ويتم إعادة تسمية النص الذي يقوم بفتح القفل المقابل من SigScript إلى شاهد.

من خلال الالتزام بقواعد الشاهد المنفصل (SegWit) ، يتم حل مشكلة مرونة المعاملات بشكل فعال ، مما يلغي المخاوف بشأن بيانات المعاملات التي يتم العبث بها بواسطة عقد Bitcoin. وظيفة P2WSH (الدفع لتجزئة البرنامج النصي للشاهد) هي في الأساس نفس P2SH (الدفع لتجزئة البرنامج النصي). يمكنك تعيين تجزئة البرنامج النصي مسبقا في البرنامج النصي لقفل UTXO ، وسيوفر الشخص الذي يرسل البرنامج النصي لإلغاء القفل محتوى البرنامج النصي المقابل للسلسلة للتنفيذ. ومع ذلك ، إذا كان محتوى البرنامج النصي الذي تحتاجه كبيرا جدا ويحتوي على الكثير من التعليمات البرمجية ، فقد لا تسمح لك الطرق التقليدية بإرسال البرنامج النصي بالكامل إلى Bitcoin blockchain (بسبب حدود حجم الكتلة). في مثل هذه الحالات ، يلعب Taproot دوره. يتيح Taproot ضغط محتوى البرنامج النصي على السلسلة ، مما يجعل من الممكن التعامل مع البرامج النصية الأكبر. تستفيد BitVM من Taproot لبناء حلول أكثر تعقيدا. في المقالة التالية من سلسلة "الاقتراب من BTC" ، سنقدم تفسيرات مفصلة ل Taproot والتوقيع المسبق والتقنيات المتقدمة الأخرى المتعلقة ب BitVM. ترقبوا كل جديد!

إخلاء المسؤولية:

  1. تم نقل هذه المقالة من [المُدمن على تقنية الوِب 3], مع حقوق النشر تنتمي إلى الكتاب الأصليين [Nickqiao & Faust & Shew Wang]. إذا كانت هناك أي اعتراضات على إعادة الطبع، يرجى التواصل مع البوابة تعلمالفريق، وسيقوم الفريق بمعالجتها بسرعة وفقا للإجراءات ذات الصلة.
  2. إخلاء مسؤولية: وجهات النظر والآراء الواردة في هذه المقالة تعبر فقط عن وجهة نظر المؤلفين ولا تشكل أي نصيحة استثمارية.
  3. تمت ترجمة إصدارات اللغات الأخرى من المقالة بواسطة فريق Gate Learn. دون ذكرGate.io، يجب ألا تُنسخ أو تُنشر أو تُسرق المقالات المترجمة.

الاقتراب من بيتكوين: المعرفة الأساسية المطلوبة لفهم بِت VM

مبتدئ7/11/2024, 2:55:14 PM
يتناول هذا المقال الخلفية والمفاهيم الأساسية لتقنيات بيتكوين الطبقة 2، مثل BitVM، لمساعدة القراء على فهم هذه التقنيات الحديثة وتطبيقاتها، خصوصًا بالنسبة لأولئك الذين لديهم اهتمام شديد في نظام بيتكوين.

ملخص:

أصدرت Delphi Digital مؤخرا تقريرا بعنوان "The Dawn of Bitcoin Programmability: Paving the Way for Rollups" ، والذي يحدد المفاهيم الأساسية المتعلقة ب Bitcoin Rollups ، بما في ذلك مجموعة BitVM ، وقيود OP_CAT والعهد ، وطبقة DA للنظام البيئي Bitcoin ، والجسور ، وأربعة حلول رئيسية من الطبقة 2 باستخدام BitVM: Bitlayer و Citrea و Yona و Bob. بينما يقدم التقرير نظرة عامة على تقنية Bitcoin Layer 2 ، إلا أنه يظل عاما تماما ويفتقر إلى الأوصاف التفصيلية ، مما يجعل من الصعب فهمه إلى حد ما. توسع Geek Web3 في تقرير دلفي لمساعدة المزيد من الأشخاص على فهم تقنيات مثل BitVM بشكل منهجي.

سنعمل مع فريق بحوث Bitlayer ومجتمع BitVM الصيني لإطلاق سلسلة تسمى 'الاقتراب من BTC'. ستركز هذه السلسلة على مواضيع رئيسية مثل BitVM، OP_CAT، وجسور بيتكوين العابرة للسلاسل، بهدف تجلية تقنيات بيتكوين الطبقة 2 لجمهور أوسع ووضع الأسس لمزيد من الهواة.

قبل بضعة أشهر، قام روبن لينوس، زعيم شركة ZeroSync، بنشر مقال بعنوان "BitVM: قم بحساب أي شيء على البيتكوين"، مقدمًا رسميًا مفهوم BitVM ودفع تقنية البيتكوين الطبقة 2 قدمًا. يُعتبر هذا واحدًا من أكثر الابتكارات الثورية في نظام البيتكوين، مما أثار اهتمامًا كبيرًا ونشاطًا في مجال البيتكوين الطبقة 2. لقد جذب مشاريع ملحوظة مثل Bitlayer، Citrea، و BOB، جلبت طاقة جديدة إلى السوق. منذ ذلك الحين، انضم المزيد من الباحثين لتحسين BitVM، الأمر الذي أسفر عن عدة إصدارات تتبعية مثل BitVM1، BitVM2، BitVMX، و BitSNARK. النظرة العامة كما يلي:

  1. قدم روبن لينوس في البداية ورقة بيضاء لتنفيذ BitVM العام الماضي، والتي تعتمد على دوائر بوابة منطقية مفهومية وتعرف باسم BitVM0.
  2. في العروض والمقابلات اللاحقة، قدم روبن لينوس بشكل غير رسمي مفهوم BitVM استنادًا إلى وحدة المعالجة المركزية النظرية، المشار إليها بـ BitVM1. هذا مشابه لنظام إثبات الاحتيال Cannon في Optimism، ويمكنه محاكاة تأثير وحدة المعالجة المركزية عامة الغرض خارج السلسلة باستخدام النصوص الخاصة بالبيتكوين.
  3. اقترح روبن لينوس أيضًا BitVM2، وهو بروتوكول برهان احترافي غير تفاعلي وغير مراقب بخطوة واحدة.
  4. أصدر أعضاء Rootstock Labs و Fairgate Labs ورقة بيضاء حول BitVMX. على غرار BitVM1، يهدفون إلى محاكاة تأثير وحدة المعالجة المركزية متعددة الأغراض خارج السلسلة باستخدام سكريبتات بيتكوين.

في الوقت الحاضر ، أصبح بناء النظام البيئي للمطورين المرتبط ب BitVM واضحا بشكل متزايد ، كما أن التحسين التكراري للأدوات الطرفية مرئي أيضا بالعين المجردة. مقارنة بالعام الماضي ، أصبح النظام البيئي BitVM اليوم "مرئيا بشكل غامض" من "القلعة في الهواء" الأولية ، والتي جذبت أيضا المزيد والمزيد من الناس. المزيد من المطورين و VCs يندفعون إلى نظام Bitcoin البيئي.

بالنسبة لمعظم الناس، فهم BitVM والمصطلحات الفنية المتعلقة بطبقة بيتكوين 2 ليس سهلاً. إنه يتطلب فهمًا منهجيًا للمعرفة الأساسية، خاصة سكريبتات بيتكوين وتابروت. الموارد عبر الإنترنت الحالية غالبًا ما تكون إما طويلة جدًا ومليئة بتفاصيل غير ذات صلة أو قصيرة جدًا لتكون واضحة. نحن نهدف إلى حل هذه المشكلات من خلال استخدام لغة واضحة وموجزة لمساعدة المزيد من الأشخاص على فهم المفاهيم الأساسية لطبقة بيتكوين 2 وبناء فهم شامل لنظام BitVM.

MATT والتزامات: المفهوم الأساسي لBitVM

المفهوم الأساسي لـ BitVM يدور حول MATT، الذي يعني Merkleize All The Things. يستخدم هذا النهج شجرة Merkle، وهي هيكل تخزين بيانات هرمي، لتمثيل تنفيذ برامج معقدة. يهدف إلى تمكين التحقق الأصلي من الاحتيال على شبكة Bitcoin. يمكن لـ MATT التقاط تفاصيل برنامج معقد وأنشطته لمعالجة البيانات، لكنه لا ينشر هذه البيانات الواسعة مباشرة على سلسلة الكتل Bitcoin بسبب حجمها الكبير. بدلاً من ذلك، يقوم نهج MATT بتخزين هذه البيانات في شجرة Merkle خارج السلسلة وينشر فقط جذع Merkle (ملخص أعلى لشجرة Merkle) على السلسلة. تحتوي الشجرة Merkle أساسًا على ثلاث مكونات رئيسية:

  • شيفرة النص الذكي للعقد الذكي
  • البيانات المطلوبة للعقد
  • اثار تنفيذ العقد (سجلات التغييرات في الذاكرة وسجلات وحدة المعالجة المركزية أثناء تنفيذ العقود الذكية في الآلات الافتراضية مثل EVM)

(رسم تخطيطي بسيط لشجرة ميركل. يتم حساب جذر Merkle الخاص به من 8 أجزاء بيانات في أسفل الصورة من خلال التجزئة متعددة الطبقات)

وفقًا لخطة MATT، يتم تخزين فقط جذر Merkle الصغير جدًا على السلسلة، ويتم تخزين مجموعة البيانات الكاملة الموجودة في شجرة Merkle خارج السلسلة. يستخدم هذا فكرة تُدعى "الالتزام". إليك شرح ما هو "الالتزام".

الوعد مثل بيان موجز ، يمكننا فهمه كـ "بصمة" تم الحصول عليها بعد ضغط كمية كبيرة من البيانات. عمومًا ، الشخص الذي يصدر "التعهد" على السلسلة سيدعي أن بعض البيانات المخزنة خارج السلسلة دقيقة. يجب أن تتطابق هذه البيانات خارج السلسلة مع بيان موجز ، وهذا البيان هو "التعهد".

في وقت ما، يمكن استخدام تجزئة البيانات كـ "تعهد" بالبيانات نفسها. تشمل الأنظمة الأخرى للتعهد تعهد KZG أو Merkle Tree. في بروتوكول الإثبات الاحتيالي العادي للطبقة2، سيقوم ناشر البيانات بنشر مجموعة البيانات الكاملة خارج السلسلة والتزام بنشر مجموعة البيانات على السلسلة. إذا اكتشف شخص ما بيانات غير صالحة في مجموعة البيانات خارج السلسلة، سيتم تحدي التزام البيانات على السلسلة.

من خلال التزامه، يمكن للطبقة الثانية ضغط كمية كبيرة من البيانات ونشر "التزامها" فقط على سلسلة البيتكوين. بالطبع، من الضروري أيضًا ضمان أن يمكن للعالم الخارجي ملاحظة مجموعة البيانات الكاملة التي تم الإفراج عنها خارج السلسلة.

حاليًا، تتبع جميع مخططات BitVM الرئيسية مثل BitVM0، BitVM1، BitVM2، وBitVMX جميعها هياكل مجردة مماثلة:

  1. تقسيم البرنامج والالتزام: في البداية، يتم تقسيم برنامج معقد إلى العديد من أوبكودات الأساسية (جمع). يتم تسجيل آثار تنفيذ هذه الأوبكودات (وهي في الأساس تغيرات الحالة عند تشغيل برنامج على وحدة المعالجة المركزية والذاكرة، المعروفة باسم الآثار)، يتم تنظيم جميع البيانات، بما في ذلك الآثار والأوبكودات، في مجموعة بيانات، وتتم إنشاء التزام لهذه المجموعة البيانات. يمكن استخدام مخططات التزام مختلفة، مثل أشجار ميركل، PIOPs (الخوارزميات المتنوعة للإثبات الشهودي الصفري)، ووظائف التجزئة.
  2. الرهان على الأصول والتوقيع المسبق: يجب على مُنشئ البيانات والتحقق منها أن يقوما بقفل كمية معينة من الأصول على سلسلة الكتل من خلال التوقيع المسبق، مع شروط مقيدة محددة. هذه الشروط تُشغّل إجراءات لأحداث مستقبلية محتملة. إذا تصرف مُنشئ البيانات بشكل خبيث، يمكن للمُحقق أن يقدم دليلًا ويستولي على أصول مُنشئ البيانات.
  3. نشر البعد والتزام البيانات: يقوم ناشر البيانات بنشر التزامه على السلسلة الكتلية ومجموعة البيانات الكاملة خارج السلسلة. يسترد المحقق ويتحقق من مجموعة البيانات للأخطاء. كل جزء من مجموعة البيانات خارج السلسلة مرتبط بالتزام السلسلة الكتلية.
  4. تحدي وغرامةإذا وجد المدقق أخطاء في البيانات المقدمة من ناشر البيانات ، فإنه يجلب هذا الجزء من البيانات على السلسلة للتحقق المباشر (يتطلب بيانات مفصلة بدقة).: تتبع هذه العملية منطق أدلة الاحتيال. إذا تم التأكد من أن البيانات غير صالحة، أخذ أصول ناشر البيانات من قبل جهة التحقق المعترض عليها. باختصار ، يكشف ناشر البيانات ، أليس ، عن جميع الآثار التي تم إنشاؤها أثناء تنفيذ معاملات الطبقة 2 خارج السلسلة وينشر الالتزام المقابل على السلسلة. لإثبات أن جزءا من البيانات غير صحيح ، يجب عليك أولا إظهار عقدة Bitcoin أن هذه البيانات تتعلق بالالتزام على السلسلة ، وتأكيد الكشف عنها من قبل Alice ، ثم تتحقق عقدة Bitcoin من دقة البيانات. بعد فهم الفكرة العامة ل BitVM ، تلتزم جميع متغيرات BitVM بهذا النموذج الأساسي. بعد ذلك ، سوف نتعمق في بعض التقنيات الرئيسية المستخدمة في هذه العملية ، بدءا من أساسيات نصوص Bitcoin النصية و Taproot والتوقيعات المسبقة.

ما هو سكريبت بيتكوين؟

فهم بيتكوين قد يكون أكثر تحديًا من إثريوم، حيث تتضمن حتى أبسط المعاملات عدة مفاهيم رئيسية. منها UTXO (الإخراج التحويلي غير المنفق)، ونصوص القفل (المعروفة أيضًا باسم ScriptPubKey)، ونصوص الفتح (المعروفة أيضًا باسم ScriptSig). لنقم أولًا بتحليل هذه المفاهيم الأساسية.

(عينة من شيفرة بيتكوين تتكون من أوامر أوبكود منخفضة المستوى مقارنة باللغات عالية المستوى) طريقة تمثيل الأصول في إيثيريوم مشابهة لأنظمة مثل اليباي أو ويتشات، حيث يعدل كل صفقة ببساطة أرصدة الحسابات المختلفة. يعامل هذا النهج المعتمد على الحسابات أرصدة الأصول على أنها أرقام مرتبطة بالحسابات. على النقيض من ذلك، يعتبر تمثيل الأصول في بيتكوين أكثر شبهاً بالتعامل مع الذهب، حيث يتم وسم كل قطعة من الذهب (UTXO) بمالك. تدمر صفقة بيتكوين بشكل أساسي UTXO القديم وتنشئ واحدة جديدة، مع تغيير الملكية في العملية. يشمل UTXO لبيتكوين عنصرين رئيسيين:

  • المبلغ: تُقاس بوحدة “ساتوشي” (حيث يُساوي بيتكوين واحد مئة مليون ساتوشي)؛
  • النص القفل (النص العام للنص)يحدد هذا الشروط المطلوبة لإلغاء قفل UTXO.: يتم تحديد ملكية Bitcoin UTXO بواسطة البرنامج النصي للقفل. على سبيل المثال ، إذا كنت ترغب في نقل UTXO الخاص بك إلى Sam ، فستبدأ معاملة تدمر UTXO الخاص بك وتنشئ معاملة جديدة بشرط "يمكن ل Sam فقط إلغاء القفل". عندما يريد سام استخدام عملات البيتكوين هذه ، يجب عليه إرسال برنامج نصي لإلغاء القفل (ScriptSig). في هذا البرنامج النصي ، يقدم سام توقيعه الرقمي لإثبات هويته. إذا تطابق البرنامج النصي لإلغاء القفل مع نص القفل الأصلي ، فيمكن ل Sam بعد ذلك فتح عملات البيتكوين ونقلها إلى شخص آخر.

(يجب أن يتطابق النص البرمجي للفتح مع النص البرمجي للإغلاق) في تحويلات Bitcoin، يتكون كل تحويل من عدة مداخل ومخارج. كل مدخل يحدد UTXO ليتم فتحه ويوفر نص برمجي للفتح للقيام بذلك، الذي يفتح بعد ذلك ويدمر UTXO. تظهر مخارج التحويل UTXOs المنشأة حديثًا وتعرض علنًا النصوص البرمجية المقفلة المرتبطة. على سبيل المثال، في مدخل تحويل معين، تثبت أنك سام عن طريق فتح عدة UTXOs أرسلها لك الآخرون، وتدمرها في العملية. ثم، تنشئ عدة UTXOs جديدة وتحدد أن xxx يمكنها فتحها في المستقبل.

تحديدًا، في بيانات الإدخال لصفقة، يجب عليك أن تعلن أي UTXOs تنوي فتحها وتحديد "موقع التخزين" لهذه البيانات UTXO. من المهم فهم أن بيتكوين وإثيريوم يتعاملان مع هذا بشكل مختلف. إثيريوم يستخدم حسابات العقود وحسابات المملوكة خارجيًا (EOAs) لتخزين البيانات، مع تسجيل أرصدة الأصول كأرقام تحت هذه الحسابات. يتم تخزين كل هذه المعلومات في قاعدة بيانات تُسمى "الحالة العالمية". عند حدوث صفقة، تقوم "الحالة العالمية" بتحديث أرصدة الحسابات المحددة مباشرة، مما يجعل من السهل تحديد البيانات. على النقيض من ذلك، بيتكوين لا يحتوي على "الحالة العالمية". بدلاً من ذلك، يتم توزيع بيانات الأصول عبر الكتل السابقة كـ UTXOs غير المُنفقة، والتي تُخزن بشكل فردي في الإخراج من كل صفقة.

إذا كنت ترغب في فتح UTXO معينة، يجب عليك تحديد إخراج الصفقة التي توجد فيها معلومات UTXO في الماضي، وإظهار هوية الصفقة (وهي تجزئتها). دع عقدة البتكوين تبحث عنها في التاريخ. إذا كنت ترغب في استعلام رصيد البتكوين لعنوان معين، فعليك أن تعبر عن كل الكتل من البداية للعثور على UTXO المفتوحة المرتبطة بعنوان xx.

عند استخدامك عادة محفظة البتكوين، يمكنك التحقق بسرعة من رصيد البتكوين المملوك بواسطة عنوان معين. وهذا غالبًا ما يكون بسبب أن خدمة المحفظة نفسها تفهرس جميع العناوين عن طريق مسح الكتل، مما يجعل من السهل علينا الاستعلام بسرعة.

(عند إنشاء معاملة لنقل UTXO الخاص بك إلى شخص آخر ، فأنت بحاجة إلى تحديد موقع UTXO في سجل معاملات Bitcoin من خلال الرجوع إلى تجزئة / معرف المعاملة الذي ينتمي إليه.) ومن المثير للاهتمام ، يتم حساب نتائج معاملات Bitcoin خارج السلسلة. عندما يقوم المستخدمون بإنشاء معاملات على أجهزتهم المحلية ، يجب عليهم إنشاء جميع المدخلات والمخرجات مسبقا ، وحساب مخرجات المعاملة بشكل فعال. ثم يتم بث المعاملة إلى شبكة Bitcoin ، والتحقق منها بواسطة العقد ، وإضافتها إلى blockchain. يختلف نموذج "الحساب خارج السلسلة - التحقق على السلسلة" تماما عن نموذج Ethereum. على Ethereum ، ما عليك سوى توفير معلمات إدخال المعاملة ، ويتم حساب نتائج المعاملات وإخراجها بواسطة عقد Ethereum. علاوة على ذلك ، يمكن تخصيص برنامج قفل UTXO. يمكنك تعيين UTXO ليكون "غير قابل للفتح من قبل مالك عنوان Bitcoin محدد" ، مما يتطلب من المالك تقديم توقيع رقمي ومفتاح عام (P2PKH). في معاملات الدفع مقابل تجزئة البرنامج النصي (P2SH) ، يمكنك إضافة تجزئة البرنامج النصي إلى البرنامج النصي لقفل UTXO. يمكن لأي شخص يمكنه إرسال البرنامج النصي المقابل لهذه التجزئة وتلبية الشروط المحددة في البرنامج النصي إلغاء قفل UTXO. يستخدم البرنامج النصي Taproot ، الذي يعتمد عليه BitVM ، ميزات مشابهة لتلك الموجودة في P2SH.

كيفية تشغيل سكريبت بيتكوين

لفهم آلية التشغيل لنصوص البيتكوين، سنبدأ بمثال P2PKH، الذي يعني "الدفع إلى تجزئة مفتاح عام". في هذا الإعداد، يحتوي النص القفلي لـ UTXO على تجزئة مفتاح عام، ولفتحه، يجب توفير المفتاح العام المقابل. تتماشى هذه الآلية مع العملية القياسية لمعاملات البيتكوين. في هذا السياق، يجب على عقدة بيتكوين التحقق من أن المفتاح العام في النص الفتحي يتطابق مع تجزئة مفتاح عام محددة في النص القفلي. في جوهرها، تحقق من أن "المفتاح" الذي قدمه المستخدم يتناسب مع "القفل" المضبوط من قبل UTXO. وبشكل أكثر تفصيلاً، في إطار نظام P2PKH، عندما تستقبل عقدة بيتكوين عملية تحويل، تجمع نص الفتح للمستخدم (ScriptSig) مع نص القفل (ScriptPubKey) لـ UTXO الذي يجب فتحه، ثم تنفذ هذا النص المجمع في بيئة تنفيذ نص بيتكوين. توضح الصورة أدناه النتيجة المجمعة قبل التنفيذ:

قد لا يكون القراء على دراية ببيئة تنفيذ البرنامج النصي BTC ، لذلك دعونا نقدمها بإيجاز. تتكون نصوص Bitcoin النصية من عنصرين: البيانات ورموز التشغيل. يتم دفع هذه العناصر إلى مكدس بالتتابع من اليسار إلى اليمين ويتم تنفيذها وفقا للمنطق المحدد لإنتاج النتيجة النهائية (للحصول على شرح لماهية المكدس ، يمكن للقراء الرجوع إلى ChatGPT). في المثال أعلاه ، يعرض الجانب الأيسر البرنامج النصي لإلغاء القفل (ScriptSig) الذي يوفره شخص ما ، والذي يتضمن توقيعه الرقمي ومفتاحه العام. يظهر الجانب الأيمن نص القفل (ScriptPubKey) ، والذي يحتوي على سلسلة من رموز التشغيل والبيانات التي حددها منشئ UTXO عند إنشاء UTXO (يكفي فهم الفكرة العامة ؛ لسنا بحاجة إلى الخوض في معنى كل رمز تشغيل). تقوم رموز التشغيل في البرنامج النصي للقفل على الجانب الأيمن ، مثل DUP و HASH160 و EQUALVERIFY ، بتجزئة المفتاح العام من البرنامج النصي لإلغاء القفل على الجانب الأيسر ومقارنته بتجزئة المفتاح العام المعينة مسبقا في البرنامج النصي للقفل. إذا تطابقت ، فإنها تؤكد أن المفتاح العام في البرنامج النصي لإلغاء القفل يطابق تجزئة المفتاح العام في البرنامج النصي للقفل ، مما يجتاز التحقق الأول. ومع ذلك ، هناك مشكلة: محتوى البرنامج النصي للقفل مرئي للجمهور على blockchain ، مما يعني أنه يمكن لأي شخص رؤية تجزئة المفتاح العام. لذلك ، يمكن لأي شخص تقديم المفتاح العام المقابل والادعاء زورا بأنه الشخص المخول. لمعالجة هذا الأمر ، بعد التحقق من المفتاح العام وتجزئة المفتاح العام ، يجب على النظام أيضا التحقق مما إذا كان بادئ المعاملة يتحكم بالفعل في المفتاح العام ، والذي يتضمن التحقق من التوقيع الرقمي. يعالج رمز التشغيل CHECKSIG في البرنامج النصي للتأمين هذا التحقق. باختصار ، بموجب مخطط P2PKH ، يجب أن يتضمن البرنامج النصي لإلغاء قفل بادئ المعاملة المفتاح العام والتوقيع الرقمي. يجب أن يتطابق المفتاح العام مع تجزئة المفتاح العام المحددة في نص القفل ، ويجب أن يكون التوقيع الرقمي صحيحا. يجب استيفاء هذه الشروط لإلغاء قفل UTXO بنجاح.

(هذا رسم توضيحي ديناميكي: مخطط لنصوص فتح بيتكوين في إطار مخطط P2PKH
المصدر:https://learnmeabitcoin.com/technical/script)

من المهم أن نلاحظ أن شبكة البيتكوين تدعم أنواعًا مختلفة من المعاملات بعيدًا عن الدفع إلى المفتاح العام / هاش العام، مثل P2SH (الدفع إلى سكربت هاش). نوع المعاملة المحدد يعتمد على كيفية تكوين السكربت القفل عند إنشاء UTXO.

من المهم أن تفهم أنه بموجب مخطط P2SH ، يمكن للبرنامج النصي للقفل إعداد تجزئة البرنامج النصي مسبقا ، ويجب أن يوفر البرنامج النصي لإلغاء القفل محتوى البرنامج النصي الكامل الذي يتوافق مع تجزئة البرنامج النصي هذه. يمكن لعقدة Bitcoin بعد ذلك تنفيذ هذا البرنامج النصي ، وإذا كانت تتضمن منطق التحقق متعدد التواقيع ، فإنها تمكن بشكل فعال المحافظ متعددة التواقيع على blockchain Bitcoin. في مخطط P2SH ، يحتاج منشئ UTXO إلى إبلاغ الشخص الذي سيفتح UTXO في المستقبل بمحتوى البرنامج النصي المقابل لتجزئة البرنامج النصي. طالما أن كلا الطرفين على دراية بمحتوى البرنامج النصي ، يمكننا تنفيذ منطق أعمال أكثر تعقيدا من مجرد التوقيع المتعدد. تجدر الإشارة أيضا إلى أن blockchain Bitcoin لا يسجل مباشرة UTXOs المرتبطة بالعناوين. بدلا من ذلك ، فإنه يسجل UTXOs التي يمكن إلغاء قفلها من خلال تجزئة المفتاح العام أو تجزئة البرنامج النصي. ومع ذلك ، يمكننا اشتقاق العنوان المقابل بسرعة (سلسلة الأحرف التي تبدو وكأنها رطانة معروضة في واجهات المحفظة) من تجزئة المفتاح العام أو تجزئة البرنامج النصي.

السبب فيما ترى حجم البيتكوين المرتبط بعنوان معين على مستكشفي الكتل وواجهات المحافظ هو أن هذه الخدمات تحلل وتفسر بيانات سلسلة الكتل لك. إنها تمسح جميع الكتل وبناءً على تجزئة المفتاح العام أو تجزئة النص المعلنة في النصوص القفلية، تحسب العنوان المقابل. يسمح ذلك لهم بعرض مقدار البيتكوين المرتبط بهذا العنوان.

الشاهد المنفصل والشاهد

فهم P2SH يقربنا من Taproot، وهو مكون أساسي لـ BitVM. ومع ذلك، قبل الانغماس في Taproot، من الضروري فهم مفهوم Witness وSegregated Witness (SegWit). يسلط استعراض النصوص المفتاحية والمغلقة، فضلاً عن عملية إلغاء قفل UTXO، الضوء على مشكلة: تتم إدراج التوقيع الرقمي للمعاملة في النص التفعيل. عند إنشاء هذا التوقيع، لا يمكن أن يكون النص التفعيل ذاته جزءًا من البيانات الموقعة (نظرًا لعدم إمكانية تضمين المعلمات المستخدمة لإنشاء التوقيع الذاتي).

بناء على ذلك، يمكن للتوقيع الرقمي أن يغطي فقط أجزاء من بيانات المعاملة خارج نص الإلغاء، مما يعني أنه لا يمكنه حماية بالكامل من بيانات المعاملة بأكملها. وهذا يؤدي إلى نقطة ضعف حيث يمكن للوسيط تعديل نص الإلغاء قليلاً دون التأثير على التحقق من التوقيع. على سبيل المثال، يمكن لعقدات بيتكوين أو حمامات التعدين إدخال بيانات إضافية في نص الإلغاء. على الرغم من أن هذا التعديل لا يؤثر على التحقق أو نتيجة المعاملة، إلا أنه يغير بشكل طفيف بيانات المعاملة، مما يؤدي بدوره إلى تغيير قيمة التجزئة/معرف المعاملة المحسوب. وتُعرف هذه المشكلة باسم تشويه المعاملة.

المشكلة في ذلك هي أنه إذا كنت تخطط لبدء معاملات متسلسلة متعددة تعتمد على بعضها البعض (على سبيل المثال، يشير المعاملة 3 إلى إخراج المعاملة 2، وتشير المعاملة 2 إلى إخراج المعاملة 1)، يجب على المعاملات التالية أن تشير إلى تجزئة المعاملات السابقة. يمكن لأي وسيط، مثل مجموعة تعدين أو عقدة بيتكوين، إجراء تعديلات طفيفة على النص الذي يقوم بإلغاء القفل، مما يتسبب في اختلاف تجزئة المعاملة عن توقعك عندما تكون على البلوكشين.

يمكن أن تبطل هذه الفجوة تسلسل عمليات التداول المترابطة المُخطَط لها مسبقًا الخاصة بك. هذه المسألة ذات صلة بشكل خاص في سياق جسور دي إل سي وبيت في إم 2، حيث يتم بناء دُفعات من التعاملات ذات الصلة تسلسليًا، مما يجعل مثل هذه السيناريوهات شائعة إلى حد ما.


بشكل بسيط، يحدث مشكلة تشويه الصفقات لأن حساب معرف/تجزئة الصفقة يتضمن البيانات من النص الذي يقوم بفتح القفل. يمكن للوسطاء مثل عُقد بيتكوين إجراء تعديلات طفيفة على النص الذي يقوم بفتح القفل، مما ينتج عنه معرف صفقة لا يتطابق مع توقعات المستخدم. ينبع هذا المشكلة من قيود التصميم المبكرة في بيتكوين. يعالج الترقية إلى الشاهد المجزأ (SegWit) هذه المشكلة عن طريق فصل معرف الصفقة عن النص الذي يقوم بفتح القفل. مع الشاهد المجزأ، يستبعد حساب تجزئة الصفقة بيانات النص الذي يقوم بفتح القفل. يبدأ نصوص قفل UTXO ضمن الشاهد المجزأ برمز تشغيلي “OP_0” كعلامة، ويتم إعادة تسمية النص الذي يقوم بفتح القفل المقابل من SigScript إلى شاهد.

من خلال الالتزام بقواعد الشاهد المنفصل (SegWit) ، يتم حل مشكلة مرونة المعاملات بشكل فعال ، مما يلغي المخاوف بشأن بيانات المعاملات التي يتم العبث بها بواسطة عقد Bitcoin. وظيفة P2WSH (الدفع لتجزئة البرنامج النصي للشاهد) هي في الأساس نفس P2SH (الدفع لتجزئة البرنامج النصي). يمكنك تعيين تجزئة البرنامج النصي مسبقا في البرنامج النصي لقفل UTXO ، وسيوفر الشخص الذي يرسل البرنامج النصي لإلغاء القفل محتوى البرنامج النصي المقابل للسلسلة للتنفيذ. ومع ذلك ، إذا كان محتوى البرنامج النصي الذي تحتاجه كبيرا جدا ويحتوي على الكثير من التعليمات البرمجية ، فقد لا تسمح لك الطرق التقليدية بإرسال البرنامج النصي بالكامل إلى Bitcoin blockchain (بسبب حدود حجم الكتلة). في مثل هذه الحالات ، يلعب Taproot دوره. يتيح Taproot ضغط محتوى البرنامج النصي على السلسلة ، مما يجعل من الممكن التعامل مع البرامج النصية الأكبر. تستفيد BitVM من Taproot لبناء حلول أكثر تعقيدا. في المقالة التالية من سلسلة "الاقتراب من BTC" ، سنقدم تفسيرات مفصلة ل Taproot والتوقيع المسبق والتقنيات المتقدمة الأخرى المتعلقة ب BitVM. ترقبوا كل جديد!

إخلاء المسؤولية:

  1. تم نقل هذه المقالة من [المُدمن على تقنية الوِب 3], مع حقوق النشر تنتمي إلى الكتاب الأصليين [Nickqiao & Faust & Shew Wang]. إذا كانت هناك أي اعتراضات على إعادة الطبع، يرجى التواصل مع البوابة تعلمالفريق، وسيقوم الفريق بمعالجتها بسرعة وفقا للإجراءات ذات الصلة.
  2. إخلاء مسؤولية: وجهات النظر والآراء الواردة في هذه المقالة تعبر فقط عن وجهة نظر المؤلفين ولا تشكل أي نصيحة استثمارية.
  3. تمت ترجمة إصدارات اللغات الأخرى من المقالة بواسطة فريق Gate Learn. دون ذكرGate.io، يجب ألا تُنسخ أو تُنشر أو تُسرق المقالات المترجمة.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500