الاقتراب من BTC: المعرفة الأساسية التي تحتاجها لفهم BitVM
ستقدم هذه المقالة الأفكار الأساسية لـ BitVM ونصوص Bitcoin والشاهد المنفصل.
JinseFinanceالمؤلف: Nickqiao & Faust & strong>مؤخرًا، أصدرت شركة Delphi Digital تقرير بحث تقني حول الطبقة الثانية من Bitcoin بعنوان "فجر برمجة Bitcoin: تمهيد الطريق لمجموعات التحديثات". قام النظام بشكل منهجي بفرز المشكلات المتعلقة بتراكم Bitcoin المفاهيم الأساسية، مثل دلو عائلة BitVM، وقيود OP_CAT، وطبقة Bitcoin البيئية DA، والجسر، وطبقات Bitcoin الثانية الرئيسية الأربعة باستخدام BitVM، بما في ذلك Bitlayer وCitrea وYona وBob.
على الرغم من أن هذا التقرير البحثي يُظهر بشكل عام الصورة العامة لتقنية الطبقة الثانية للبيتكوين، إلا أنه عام بشكل عام ويفتقر إلى الوصف التفصيلي. الأشخاص يبدو أنه يفهم ولكن لا يفهم. أجرى Geek web3 عمليات تنقيب واسعة النطاق ومتعمقة استنادًا إلى تقارير أبحاث دلفي، في محاولة للسماح لمزيد من الأشخاص بفهم BitVM والتقنيات الأخرى بشكل منهجي.
سنطلق بشكل مشترك سلسلة من الأعمدة تسمى "Approaching BTC" مع فريق أبحاث Bitlayer ومجتمع BitVM الصيني، مع التركيز على BitVM وOP_CAT والتعميم. العلوم حول موضوعات رئيسية مثل جسور Bitcoin عبر سلاسل، ملتزمون بإحباط تقنيات الطبقة الثانية ذات الصلة بـ Bitcoin لعدد أكبر من الأشخاص وتمهيد الطريق لمزيد من المتحمسين.
النص: منذ بضعة أشهر، أصدر رئيس ZeroSyncRobin Linus مدونة بعنوان "" اقترحت رسميًا مفهوم BitVM وعززت تقدم تقنية الطبقة الثانية من Bitcoin. يمكن القول أن هذا هو أحد الابتكارات الأكثر ثورية في نظام Bitcoin البيئي، فقد فجر النظام البيئي للطبقة الثانية من Bitcoin بالكامل، وجذب مشاركة المشاريع البارزة مثل Bitlayer، وCitrea، وBOB، وما إلى ذلك، وجلب الحيوية إلى العالم. السوق بأكمله.
بعد ذلك،شارك المزيد من الباحثين في تحسين BitVM، وأطلقوا على التوالي إصدارات متكررة مختلفة مثل BitVM1، وBitVM2، وBitVMX، وBitSNARK. الوضع العام هو كما يلي:
الورقة البيضاء الخاصة بتنفيذ BitVM التي اقترحها Robin Linus لأول مرة العام الماضي هي تطبيق BitVM يعتمد على دوائر بوابة منطقية وهمية، تسمى BitVM0؛
اقترح Robin Linus أيضًا BitVM2، وهو عبارة عن خطوة واحدة غير مسموح بها - بروتوكول منع الاحتيال التفاعلي.
أصدر أعضاء Rootstock Labs وFairgate Labs المستند التقني الخاص بـ BitVMX ، على غرار BitVM1، يأملون في محاكاة تأثير وحدة المعالجة المركزية للأغراض العامة (خارج السلسلة) من خلال نصوص Bitcoin النصية.
في الوقت الحاضر، أصبح بناء النظام البيئي للمطورين المرتبط بـ BitVM متزايدًا واضح، كما أن التحسينات التكرارية لتطوير الأدوات الطرفية مرئية أيضًا بالعين المجردة، مقارنة بالعام الماضي، أصبح نظام BitVM البيئي اليوم "مرئيًا بشكل غامض" من "القلعة في الهواء" الأولية، والتي اجتذبت أيضًا المزيد والمزيد من المطورين. و VCs للاندفاع إلى نظام Bitcoin البيئي.
ولكن بالنسبة لمعظم الناس، ليس من السهل فهم المصطلحات الفنية المتعلقة بـ BitVM والطبقة الثانية من Bitcoin، لأنه يتعين عليك أولاً فهم البيئة المحيطة بها. فهم منهجي للمعرفة الأساسية، وخاصة المعرفة الأساسية مثل برنامج Bitcoin وTaproot. إن المواد المرجعية المتاحة حاليًا على الإنترنت إما طويلة للغاية ومليئة بالهراء، أو أن التفسيرات ليست شاملة بما فيه الكفاية، مما يجعل الناس يبدون وكأنهم يفهمون ولكنهم لا يفهمون. نحن ملتزمون بحل المشكلات المذكورة أعلاه ونسعى جاهدين لاستخدام أوضح لغة ممكنة لمساعدة المزيد من الأشخاص على فهم المعرفة المحيطة بالطبقة الثانية من Bitcoin، و لإنشاء فهم منهجي لنظام BitVM.
MATT والالتزام: الفكرة الأساسية لـ BitVM
بادئ ذي بدء، نريد التأكيد على أن الفكرة الأساسية من BitVM هو MATT، مما يعني أن Merkleize All The Things يشير بشكل أساسي إلى إظهار عملية تنفيذ البرنامج المعقدة من خلال بنية تخزين بيانات تشبه الشجرة مثل Merkle Tree، ومحاولة جعل إثبات التحقق من الاحتيال من Bitcoin Native.
على الرغم من أن MATT يمكنه التعبير عن برنامج معقد وآثار معالجة البيانات الخاصة به، إلا أنه لن ينشر هذه البيانات مباشرة على سلسلة BTC لأن النطاق الإجمالي لهذه البيانات كبير جدًا ضخمة. يقوم الحل الذي يستخدم MATT فقط بتخزين البيانات في شجرة Merkle خارج السلسلة، وينشر فقط الملخص العلوي (Merkle Root) لشجرة Merkle في السلسلة. تحتوي شجرة Merkle بشكل أساسي على ثلاثة محتويات أساسية:
· كود البرنامج النصي للعقد الذكي
· البيانات المطلوبة بموجب العقد
· آثار البيانات المتبقية أثناء تنفيذ العقد ( سجلات التغييرات في الذاكرة ووحدة المعالجة المركزية عند تنفيذ العقود الذكية في الأجهزة الافتراضية مثل EVM)
(مخطط بسيط لشجرة Merkle Tree Merkle يظهر جذر Merkle الخاص بها في الشكل أجزاء البيانات الثمانية في المنتصف والأسفل يتم حسابهما من خلال تجزئة متعددة الطبقات)
ضمن مخطط MATT، لا يوجد سوى جذر Merkle صغير جدًا يتم تخزين مجموعة البيانات الكاملة الموجودة في شجرة ميركل المخزنة على السلسلة خارج السلسلة، والتي تستخدم فكرة تسمى "الالتزام". فيما يلي شرح لما هو "الالتزام".
الوعد يشبه البيان الموجز. يمكننا أن نفهمه على أنه "بصمة" يتم الحصول عليها عن طريق ضغط كمية كبيرة من البيانات . بشكل عام، فإن الشخص الذي يصدر "التزامًا" على السلسلة سيدعي أن بعض البيانات المخزنة خارج السلسلة دقيقة، ويجب أن تتوافق هذه البيانات خارج السلسلة مع بيان موجز، وهذا البيان هو "الالتزام".
في مرحلة ما، يمكن استخدام تجزئة البيانات باعتبارها "التزامًا" بالبيانات نفسها. تتضمن مخططات الالتزام الأخرى التزام KZG أو Merkle Tree. في بروتوكول Layer2 المعتاد المقاوم للاحتيال، سيقوم ناشر البيانات بنشر مجموعة البيانات الكاملة خارج السلسلة والالتزام بنشر مجموعة البيانات عبر السلسلة. إذا اكتشف شخص ما بيانات غير صالحة في مجموعة البيانات خارج السلسلة، فسيتم الطعن في التزام البيانات الموجودة على السلسلة.
من خلال الالتزام (الالتزام)، يمكن للطبقة الثانية ضغط ومعالجة كمية كبيرة من البيانات ونشر "التزامها" فقط على سلسلة البيتكوين. . بالطبع، من الضروري أيضًا التأكد من أن مجموعة البيانات الكاملة الصادرة خارج السلسلة يمكن مراقبتها من قبل العالم الخارجي.
تعتمد حلول BitVM الرئيسية الحالية مثل BitVM0 وBitVM1 وBitVM2 وBitVMX بشكل أساسي هياكل مجردة مماثلة:
1. تحليل البرنامج والالتزام به: قم أولاً بتحليل البرنامج المعقد إلى عدد كبير من رموز التشغيل الأساسية (التجميع)، ثم قم بتسجيل الآثار التي تم إنشاؤها بواسطة رموز التشغيل هذه أثناء التنفيذ المحدد (بعبارة صريحة، عندما يتم تشغيل برنامج في وحدة المعالجة المركزية والذاكرة، يُسمى سجل تغيير الحالة بالكامل بالتتبع). بعد ذلك، نقوم بتنظيم جميع البيانات، بما في ذلك التتبعات وأكواد التشغيل، في مجموعة بيانات، ثم نقوم بإنشاء التزام لمجموعة البيانات.
يمكن أن تتخذ حلول الالتزام المحددة أشكالًا عديدة، مثل: أشجار Merkle، وPIOPs (خوارزميات ZK المختلفة)، ووظائف التجزئة
2. تعهد الأصول والتوقيع المسبق: يحتاج ناشرو البيانات والمتحققون منها إلى تأمين قدر معين من الأصول في السلسلة من خلال التوقيع المسبق، وسيكون هناك قيود. سيتم تفعيل هذه الشروط خصيصًا للمواقف التي قد تحدث في المستقبل. إذا ارتكب ناشر البيانات أفعالًا شريرة، فيمكن للمحقق تقديم شهادة لمصادرة أصول ناشر البيانات
3.نشر البيانات والالتزام:ينشر ناشر البيانات الالتزام على السلسلة، ويتم نشر مجموعة البيانات الكاملة خارج السلسلة، ويقوم المدقق يسترد مجموعة البيانات ويتحقق من وجود أي أخطاء. يرتبط كل جزء من مجموعة البيانات خارج السلسلة بالالتزام الموجود على السلسلة.
4. التحديات والعقوبات: بمجرد أن يجد القائم على التحقق وجود خطأ في البيانات المقدمة من ناشر البيانات سيتم التحقق من جزء من البيانات مباشرة على السلسلة (يجب قطع هذا الجزء من البيانات جيدًا أولاً). هذا هو منطق إثبات الاحتيال. إذا أظهرت نتائج التحقق أن ناشر البيانات قد قدم بالفعل بيانات غير صالحة خارج السلسلة، فسيتم أخذ أصوله من قبل المدقق الذي يتحداه.
للتلخيص،يكشف ناشر البيانات أليس عن جميع الآثار التي تم إنشاؤها أثناء تنفيذ معاملة الطبقة الثانية خارج السلسلة، وينشر الالتزامات المقابلة لـ السلسلة. إذا كنت تريد إثبات أن جزءًا معينًا من البيانات خاطئ، فأثبت أولاً لعقدة البيتكوين أن هذا الجزء من البيانات مرتبط بالالتزام على السلسلة، أي أثبت أن البيانات تم الكشف عنها بواسطة أليس نفسها، و ثم دع عقدة Bitcoin تؤكد أن هذا الجزء من البيانات خاطئ.
الآن نحن نفهم تقريبًا الفكرة العامة لـBitVM، وجميع متغيرات BitVM لا يمكن فصلها بشكل أساسي عن النموذج أعلاه. بعد ذلك، دعونا نبدأ في تعلم وفهم بعض التقنيات المهمة المستخدمة في العملية المذكورة أعلاه، بدءًا من نصوص Bitcoin الأساسية وTaproot والتوقيع المسبق.
ما هو برنامج Bitcoin النصي
المعرفة المتعلقة بالبيتكوين أكثر أهمية يصعب فهمها أكثر من Ethereum، حتى سلوك النقل الأساسي يتضمن سلسلة من المفاهيم، بما في ذلك UTXO (مخرجات المعاملات غير المنفقة)، وقفل البرنامج النصي (المعروف أيضًا باسم ScriptPubKey) وفتح البرنامج النصي (المعروف أيضًا باسم ScriptSig). دعونا أولا شرح هذه المفاهيم الرئيسية.
(مثال على كود البرنامج النصي للبيتكوين الذي يتكون من أكواد تشغيل ذات مستوى أقل من لغة عالية المستوى )
Ethereum's الطريقة التي يتم بها التعبير عن الأصول تشبه Alipay أو WeChat. كل عملية تحويل تقوم فقط بإضافة وطرح أرصدة الحسابات المختلفة. هذه الطريقة تتمحور حول الحساب، ورصيد الأصول هو مجرد رقم تحت اسم الحساب مثل الذهب، سيتم وضع علامة على كل قطعة من الذهب (UTXO) مع مالكها. يؤدي النقل في الواقع إلى تدمير UTXO القديم وإنشاء UTXO جديد (سيتغير المالك).
يحتوي Bitcoin UTXO على حقلين رئيسيين:
المبلغ بـ "ساتوشي" (مائة مليون ساتوشي تعادل عملة بيتكوين واحدة)؛
برنامج القفل النصي، المعروف أيضًا باسم مفتاح "شركة البرامج النصية" (ScriptPubKey)" سيحدد شروط فتح UTXO.
تجدر الإشارة إلى أن ملكية Bitcoin UTXO يتم التعبير عنها من خلال نص القفل. إذا كنت تريد امتلاك UTXO إلى Sam، فيمكنك بدء عملية معاملة لتدمير أحد UTXOs الخاص بك، واكتب شرط إلغاء القفل لـ UTXO الذي تم إنشاؤه حديثًا كـ "Sam فقط يمكنه فتحه."
بعد ذلك، إذا أراد Sam استخدام عملات Bitcoin هذه، فيجب عليه إرسال برنامج نصي لإلغاء القفل (ScriptSig) في برنامج إلغاء القفل هذا، يحتاج Sam إلى إظهار توقيعك الرقمي لإثبات أنك Sam. إذا كان نص إلغاء القفل يتطابق مع نص القفل المذكور أعلاه، فيمكن لـ Sam فتح عملات البيتكوين ونقلها إلى الآخرين.
(يجب أن يتطابق البرنامج النصي لإلغاء القفل مع البرنامج النصي للقفل)
من وجهة نظر العرض التقديمي،بت كل معاملة في سلسلة العملات يتوافق مع العديد من المدخلات والمخرجات، في كل إدخال، يجب عليك الإعلان عن UTXO معين تريد فتحه، وإرسال برنامج نصي لإلغاء القفل لفتح UTXO وتدميره، وسيعرض الإخراج معلومات UTXO الجديدة يكشف محتويات نص القفل للعالم الخارجي.
على سبيل المثال، في إدخال المعاملة، تثبت أنك Sam، وتفتح العديد من UTXOs الممنوحة لك من قبل الآخرين، وتدمرها بشكل موحد، وتولد عدة عناصر يعلن UTXOs الجديد أنه سيتم فتح xxx في المستقبل.
على وجه التحديد، في بيانات الإدخال الخاصة بالمعاملة، يجب عليك الإعلان عن كائنات UTXO التي تريد فتحها والإشارة إلى "موقع التخزين" لبيانات UTXO هذه. وتجدر الإشارة هنا إلى أن Bitcoin وEthereum مختلفان تمامًا، حيث توفر نوعين من الحسابات: حسابات العقود وحسابات EOA لتخزين البيانات، ويتم تسجيل رصيد الأصول كرقم تحت اسم حساب العقد أو حساب EOA موضوعة في ملف موحد يسمى "العالم" في قاعدة بيانات "الحالة العالمية"، يمكن تعديل حسابات محددة مباشرة من "الحالة العالمية" عند النقل، وذلك لتسهيل تحديد موقع تخزين البيانات؛
لا يوجد عالم للبيتكوين نظرًا لتصميم الحالة، يتم تخزين بيانات الأصول بشكل متفرق في الكتل السابقة (أي، يتم تخزين بيانات UTXO غير المؤمنة بشكل منفصل في مخرجات كل معاملة ).
إذا كنت تريد فتح UTXO، فيجب عليك الإشارة إلى مخرجات المعاملة التي كانت معلومات UTXO موجودة في الماضي، وإظهار معرف المعاملة (وهو التجزئة الخاصة بها)، والسماح بعقدة Bitcoin بحث في التاريخ. إذا كنت تريد الاستعلام عن رصيد البيتكوين لعنوان معين، فأنت بحاجة إلى اجتياز جميع الكتل من البداية للعثور على UTXO غير المؤمن المرتبط بعنوان xx.
عندما تستخدم عادةً محفظة Bitcoin، يمكنك التحقق بسرعة من رصيد Bitcoin المملوك لعنوان معين، ويرجع ذلك في كثير من الأحيان إلى أن خدمة المحفظة نفسها تقوم بفحص الكتل التحقق من كافة العناوين تم إنشاء فهرس لتسهيل الاستعلام السريع لدينا.
(عندما تقوم بإنشاء بيان معاملة لمنح UTXO الخاص بك للآخرين، يجب عليك وضع علامة على موضع UTXO في سجل Bitcoin استنادًا إلى تجزئة/معرف المعاملة الذي تنتمي إليه UTXOs هذه)< /p>
ومن المثير للاهتمام أنه يتم حساب نتائج معاملة Bitcoin خارج السلسلة، عندما يقوم المستخدم بإنشاء المعاملة على أجهزته المحلية، يتم ذلك من الضروري إنشاء جميع المدخلات والمخرجات مباشرة، وهو ما يعادل حساب نتائج مخرجات المعاملة. يتم بث المعاملات إلى شبكة Bitcoin ويتم التحقق منها بواسطة العقد قبل وضعها على السلسلة. يختلف نموذج "التحقق من الحساب على السلسلة خارج السلسلة" تمامًا عن Ethereum. في Ethereum، تحتاج فقط إلى توفير معلمات إدخال المعاملة، ويتم حساب نتائج المعاملة وإخراجها بواسطة عقدة Ethereum. .
بالإضافة إلى ذلك، يمكن تخصيص نص القفل الخاص بـ UTXO. يمكنك ضبط UTXO على ""محدد"" قابل للفتح بواسطة مالك Bitcoin العنوان"، يحتاج مالك العنوان إلى تقديم توقيع رقمي ومفتاح عام (P2PKH). في نوع معاملة Pay-to-Script-Hash (P2SH)، يمكنك إضافة Script Hash في البرنامج النصي لقفل UTXO. من يمكنه إرسال الصورة الأصلية للبرنامج النصي المتوافقة مع هذا التجزئة واستيفاء البرنامج النصي UTXO يمكن فتحه بناءً على الظروف المحددة مسبقًا في الصورة الأصلية. يستخدم البرنامج النصي Taproot الذي يعتمد عليه BitVM ميزات مشابهة لـ P2SH.
كيفية تشغيل برنامج Bitcoin النصي
نستخدم هنا أولاً P2PKH كمثال لتقديم طريقة التشغيل لبرنامج Bitcoin النصي فقط من خلال فهم طريقة التشغيل الخاصة به، يمكننا فهم Taproot وBitVM الأكثر تعقيدًا. الاسم الكامل لـ P2PKH هو "الدفع مقابل تجزئة المفتاح العام". وبموجب هذا المخطط، سيتم تعيين تجزئة المفتاح العام في البرنامج النصي لقفل UTXO. عند إلغاء القفل، يتعين عليك إرسال المفتاح العام المطابق للتجزئة. وهذا يختلف عن تحويلات البيتكوين العادية، والأفكار هي نفسها في الأساس.
في هذا الوقت، يجب أن تؤكد عقدة Bitcoin أن المفتاح العام في البرنامج النصي لإلغاء القفل يطابق تجزئة المفتاح العام المحدد في البرنامج النصي للقفل،< / strong>بعبارة أخرى، تأكد من أن "المفتاح" الذي تم إرساله بواسطة أداة إلغاء القفل و"القفل" المُعد مسبقًا بواسطة UTXO يتطابقان مع بعضهما البعض.
علاوة على ذلك، بموجب نظام P2PKH، بعد أن تتلقى عقدة Bitcoin المعاملة، فإنها ستدمج برنامج فتح القفل ScriptSig الذي قدمه المستخدم مع البرنامج النصي لفتح القفل ScriptSig الذي قدمه المستخدم. ليتم إلغاء قفله. يتم ربط برنامج ScriptPubkey النصي لقفل UTXO معًا وتنفيذه في بيئة تنفيذ البرنامج النصي BTC. ويوضح الشكل التالي نتيجة الربط قبل التنفيذ:
ربما لا يعرف القراء بيئة تنفيذ البرنامج النصي لـ BTC، وسنقدمها هنا باختصار. أولاً، يحتوي البرنامج النصي BTC على عنصرين:
البيانات وكود التشغيل. سيتم دفع هذه البيانات ورموز التشغيل إلى المكدس بالترتيب من اليسار إلى اليمين وتنفيذها وفقًا للمنطق المحدد للحصول على النتيجة النهائية (لن يتم توضيح تفاصيل ماهية المكدس هنا. يمكن للقراء الدردشة بأنفسهم).
بأخذ الصورة أعلاه كمثال، الجانب الأيسر هو البرنامج النصي لإلغاء القفل ScriptSig الذي تم تحميله بواسطة شخص ما، بما في ذلك توقيعه الرقمي ومفتاحه العام،
ويحتوي برنامج القفل ScriptPubkey الموجود على اليمين على كود تشغيل وبيانات تم تعيينها بواسطة منشئ UTXO عند إنشاء UTXO (لسنا بحاجة إلى فهم معنى كل كود تشغيل هنا، فقط لدينا فهم عام) قوي > .
إن DUP وHASH160 وEQUALVERIFY وأكواد التشغيل الأخرى الموجودة في برنامج القفل النصي على اليمين في الصورة أعلاه هي المسؤولة عن جلب المفتاح العام الموجود في برنامج إلغاء القفل على اليسار، قم بمقارنتها بتجزئة المفتاح العام المحددة مسبقًا في برنامج القفل النصي. إذا كان الاثنان متساويين، فهذا يعني أن المفتاح العام الذي تم تحميله في برنامج إلغاء القفل يتطابق مع تجزئة المفتاح العام المحدد مسبقًا في برنامج القفل الخطوة الأولى.
ومع ذلك، هناك مشكلة. محتوى نص قفل UTXO هو في الواقع عام على السلسلة، ويمكن لأي شخص ملاحظة تجزئة المفتاح العام الموجودة فيه. يمكن لأي شخص تحميل المفتاح العام المقابل والادعاء زوراً بأنه الشخص "المعين". لذلك، بعد التحقق من المفتاح العام وتجزئة المفتاح العام، من الضروري أيضًا التحقق مما إذا كان بادئ المعاملة هو حقًا المتحكم الفعلي في المفتاح العام، الأمر الذي يتطلب التحقق من التوقيع الرقمي. يعد كود التشغيل CHECKSIG الموجود في برنامج القفل مسؤولاً عن التحقق من التوقيع الرقمي.
للتلخيص، بموجب نظام P2PKH، يحتوي البرنامج النصي لإلغاء القفل المقدم من بادئ المعاملة على المفتاح العام والتوقيع الرقمي، ويجب أن يكون المفتاح العام يكون نفس القفل. يتطابق تجزئة المفتاح العام المحدد في البرنامج النصي، ويكون التوقيع الرقمي للمعاملة صحيحًا فقط عند استيفاء هذه الشروط، يمكن فتح UTXO بنجاح.
(هذه الصورة ديناميكية: رسم تخطيطي للبرنامج النصي لإلغاء قفل Bitcoin ضمن مخطط P2PKH
المصدر: / strong>https://learnmeabitcoin.com/technical/script )
بالطبع، تدعم شبكة Bitcoin أنواعًا متعددة من المعاملات، ليس فقط الدفع مقابل تجزئة المفتاح العام/المفتاح العام، ولكن أيضًا P2SH (الدفع مقابل تجزئة البرنامج النصي)، وما إلى ذلك.يعتمد كل شيء على التخصيص عند إنشاء UTXO. تم ضبط نص القفل على.
تجدر الإشارة هنا إلى أنه ضمن نظام P2SH، يمكن تعيين تجزئة البرنامج النصي مسبقًا في برنامج القفل النصي، ويتطلب البرنامج النصي لإلغاء القفل الإرسال الكامل لمحتوى البرنامج النصي المطابق لتجزئة البرنامج النصي. يمكن لعقد Bitcoin تنفيذ هذا البرنامج النصي. إذا تم تعريف منطق التحقق من التوقيع المتعدد في هذا البرنامج النصي، فيمكن تحقيق تأثير المحفظة متعددة التوقيع على سلسلة Bitcoin.
بالطبع، بموجب مخطط P2SH، يريد منشئ UTXO من أولئك الذين يفتحون UTXO في المستقبل أن يعرفوا محتوى البرنامج النصي المطابق لـ Script Hash مقدمًا، طالما أن كلا الطرفين يعرف محتوى هذا البرنامج النصي، فيمكننا تنفيذ منطق عمل أكثر تعقيدًا من التوقيع المتعدد.
هناك شيء واحد يجب ملاحظته هنا وهو أن سلسلة (كتلة) البيتكوين لا تسجل بشكل مباشر أي UTXOs مرتبطة بالعناوين، ولكنها تسجل فقط تلك UTXOs يمكن أن يكون أي تجزئة للمفتاح العام/تجزئة البرنامج النصي غير مقفلة، ولكن يمكننا حساب العنوان المقابل بسرعة بناءً على تجزئة المفتاح العام/تجزئة البرنامج النصي (يبدو القسم المعروض على واجهة المحفظة كأحرف مشوهة).
السبب وراء قدرتنا على رؤية كمية xx من عملات البيتكوين تحت عنوان xx على مستكشف الكتل وواجهة المحفظة هو أن مستكشف الكتل ومشروع المحفظة يساعدك بعد تحليل هذه البيانات ، سيتم فحص جميع الكتل وسيتم حساب "العنوان" المقابل بناءً على تجزئة المفتاح العام/تجزئة البرنامج النصي المعلن في برنامج القفل النصي، ثم سيتم عرض عدد عملات البيتكوين الموجودة تحت اسم عنوان xx.
الشاهد والشاهد المنفصلان
عندما نفهم P2SH بعد بالتفكير في الأمر، نحن نقترب خطوة واحدة من Taproot، الذي تعتمد عليه BitVM. لكن قبل ذلك، علينا أن نفهم مفهومًا مهمًا: الشاهد والشاهد المنفصل.
بمراجعة البرنامج النصي لفتح القفل وبرنامج القفل المذكور سابقًا، بالإضافة إلى عملية فتح UTXO، ستجد مشكلة: التوقيع الرقمي للمعاملة مضمن في البرنامج النصي لإلغاء القفل، ولا يمكن الكتابة فوق البرنامج النصي لإلغاء القفل عند التوقيع (لا يمكن أن تتضمن المعلمات المستخدمة لإنشاء التوقيع التوقيع نفسه)، لذلك يمكن للتوقيع الرقمي أن يغطي فقط الأجزاء الأخرى غير البرنامج النصي لإلغاء القفل، أي أنه يمكن أن تكون مرتبطة فقط بالجزء الرئيسي من بيانات المعاملة ولا يمكن تغطيتها بالكامل.
وبهذه الطريقة، حتى لو تم التلاعب بالبرنامج النصي لإلغاء قفل المعاملة قليلاً بواسطة الوسيط، فلن يؤثر ذلك على نتيجة التحقق من التوقيع. على سبيل المثال، يمكن لعقد البيتكوين أو مجمعات التعدين إدراج بيانات أخرى في البرنامج النصي لفتح المعاملة، مما يتسبب في تغييرات طفيفة في بيانات المعاملة دون التأثير على التحقق من التوقيع ونتائج المعاملة، وسيتم تجزئة المعاملة المحسوبة النهائية/معرف المعاملة تغيير أيضا. يُعرف هذا باسم مشكلة قابلية تطويع المعاملات.
عيب ذلك هو أنه إذا كنت تخطط لبدء معاملات متعددة بالتتابع وهناك تبعيات تسلسلية (على سبيل المثال، تشير المعاملة 3 إلى مخرجات المعاملة 2، فإن المعاملة 2 يشير إلى مخرجات المعاملة 1)، ثم يجب أن تشير المعاملات اللاحقة إلى معرف (التجزئة) للمعاملة السابقة ويمكن لأي وسيط مثل مجمع التعدين أو عقدة Bitcoin ضبط محتويات البرنامج النصي لإلغاء القفل بحيث يتم ذلك بعد المعاملة. تم تحميله إلى السلسلة. إذا كان التجزئة غير متوافق مع ما توقعته، فإن المعاملات المتعددة المرتبطة بالتسلسل التي قمت بإنشائها مسبقًا ستكون غير صالحة.
في الواقع، في جسر DLC وحلول BitVM2، سيتم إنشاء المعاملات ذات الارتباط المتسلسل على دفعات، لذا فإن السيناريو المذكور أعلاه ليس غير شائع.
ببساطة، ترجع مشكلة قابلية توسيع المعاملة إلى أنه عند حساب معرف/تجزئة المعاملة، سيتم تضمين بيانات البرنامج النصي لإلغاء القفل، ويمكن للوسطاء مثل عقد Bitcoin ضبط محتوى البرنامج النصي لإلغاء القفل مما أدى إلى عدم تطابق معرف المعاملة مع ما توقعه المستخدم. في الواقع، هذه هي الأمتعة التاريخية التي خلفها سوء الاعتبار للبيتكوين في تصميمها المبكر.
إن ترقية Segreged Witness/SegWit التي تم إطلاقها لاحقًا تعمل على فصل معرف المعاملة وإلغاء قفل البرنامج النصي بشكل كامل. ليست هناك حاجة لحساب المعاملة يجب تضمين بيانات البرنامج النصي لإلغاء القفل. سيقوم برنامج قفل UTXO الذي يتبع ترقية SegWit بتعيين رمز تشغيل يسمى "OP_0" في المقام الأول افتراضيًا، والذي يعمل كعلامة وتمت إعادة تسمية البرنامج النصي لإلغاء القفل المقابل من SigScript إلى Witness.
بعد اتباع قواعد الشاهد المنفصل، سيتم حل مشكلة قابلية التوسع للمعاملة بشكل صحيح، ولا داعي للقلق بشأن ضبط بيانات المعاملة المرسلة إلى عقدة Bitcoin بشكل دقيق. بالطبع، لا نحتاج إلى التفكير بشكل معقد للغاية. لا تختلف وظيفة P2WSH بشكل أساسي عن وظيفة P2SH المذكورة سابقًا. يمكنك إعداد تجزئة البرنامج النصي مسبقًا في البرنامج النصي لقفل UTXO، والانتظار حتى يرسل مُرسل البرنامج النصي لإلغاء القفل. محتوى البرنامج النصي المطابق للتجزئة على السلسلة وتنفيذه.
ولكن إذا كان محتوى البرنامج النصي الذي تريد تنفيذه كبيرًا بشكل خاص ويحتوي على الكثير من التعليمات البرمجية، فلا يمكن إرسال البرنامج النصي الكامل إلى Bitcoin من خلال الطرق التقليدية على السلسلة (كل كتلة لها حد للحجم). ما يجب القيام به؟ يتطلب هذا أن يقوم Taproot بتبسيط محتوى البرنامج النصي على السلسلة، ويعتبر BitVM حلاً معقدًا مبنيًا على Taproot. ص>
ستقدم هذه المقالة الأفكار الأساسية لـ BitVM ونصوص Bitcoin والشاهد المنفصل.
JinseFinanceBitVM هو أحدث بروتوكول ساخن في نظام Bitcoin البيئي، مع إمكانية الاستفادة من كل مشروع مبني على Bitcoin. دعونا نتحدث عن تصميم BitVM والإمكانيات الجديدة التي يفتحها للبيتكوين.
JinseFinanceBitVM، Layer 2، BTC، IOSG |BitVM: فجر قابلية برمجة Bitcoin Golden Finance، التوسع السريع لخطط توسيع Bitcoin
JinseFinanceيعد BitVM2 متغيرًا جريئًا: يمكن لأي شخص أن يعمل كمدقق.
JinseFinanceعلى الرغم من أن تقنية BitVM تتمتع بمزايا كبيرة في توسيع Bitcoin، إلا أنها لا تزال في مراحلها الأولى ولا تزال هناك بعض المشاكل من حيث الكفاءة والأمان.
JinseFinanceالهدف الرئيسي من هذا التصميم هو بناء شبكة من الطبقة الثانية مخصصة خصيصًا لـ Bitcoin blockchain.
JinseFinanceإذن، كيف يمكن وضع جزء من منطق التحقق في شبكة Bitcoin؟
JinseFinanceتركز BitVM على تعزيز قابلية التوسع في Bitcoin ومعالجة قيود الشبكة المسرّعة دون تكرار DeFi الخاص بـ Ethereum، والحفاظ على مبادئ Bitcoin الأساسية وأمنها.
Cheng Yuanتهدف BitVM، التي قدمتها ZeroSync، إلى تعزيز عقود Bitcoin الذكية، مما يجعلها أكثر تعبيرًا وقدرة دون الحاجة إلى ترقية جماعية
Sanya