المؤلف: Wuyue& Faust، مهووس الويب 3
المستشار: كيفن هي، مؤسس مجتمع BitVM الصيني، ورئيس Web3 Tech Head@Huobi السابق< /p>
ولكن لسوء الحظ، فإن معظم المواد المكتوبة الحالية حول BitVM تفشل في شرح مبادئها بطريقة شائعة.
هذه المقالة بعد أن نقرأ تقرير BitVM المكون من 8 صفحات ومراجعة المعلومات المتعلقة بـ Taproot وMAST Tree وBitcoin Script. ملخص بسيط. لتسهيل فهم القراء، تختلف بعض التعبيرات عن المحتوى الموضح في الورقة البيضاء لـ BitVM، ونفترض أن القراء لديهم بعض الفهم لـ Layer2 ويمكنهم فهم الفكرة البسيطة المتمثلة في "إثبات الاحتيال".

تلخص الجمل القليلة الأولى أفكار BitVM: يجب تحرير البيانات التي لا تحتاج إلى أن تكون موجودة في السلسلة وتخزينها خارج السلسلة أولاً، ويتم تخزين الالتزام (الالتزام) فقط في السلسلة.
عند حدوث تحدي/إثبات احتيال، نضع فقط البيانات التي يجب تحميلها على السلسلة لإثبات أنها مرتبطة الالتزام بالسلسلة. بعد ذلك، ستتحقق شبكة BTC الرئيسية مما إذا كانت هناك أي مشاكل في البيانات الموجودة على السلسلة وما إذا كان منتجو البيانات (العقد التي تعالج المعاملات) قد فعلوا أي شيء شرير. كل هذا يتبع مبدأ شفرة أوكام - "لا تضيف كيانات إلا إذا لزم الأمر" (إذا كان بإمكانك تقليل السلسلة، فقم بتقليل السلسلة).

نص: ما يسمى بنظام التحقق من الاحتيال القائم على BitVM على سلسلة BTC، ملخص شائع:
1. أولاً وقبل كل شيء، الكمبيوتر/المعالج هو نظام إدخال وإخراج يتكون من عدد كبير من دوائر البوابات المنطقية. إحدى الأفكار الأساسية لـ BitVM هي استخدام Bitcoin Script لمحاكاة تأثير المدخلات والمخرجات لدائرة البوابة المنطقية.
طالما أنه من الممكن محاكاة دائرة البوابة المنطقية، فمن الممكن نظريًا تحقيق آلة تورينج وإكمال جميع المهام القابلة للحساب. بمعنى آخر، طالما أن لديك المزيد من الأشخاص والمال، يمكنك تعيين مجموعة من المهندسين لمساعدتك في استخدام كود Bitcoin Script الخام لمحاكاة دوائر البوابات المنطقية أولاً، ثم استخدام عدد كبير من دوائر البوابات المنطقية لتنفيذ الوظائف من EVM أو WASM.

(لقطة الشاشة هذه مأخوذة من لعبة تعليمية: "Turing Complete"، والمحتوى الأساسي لها هو استخدام دوائر البوابات المنطقية، وخاصة NAND بوابة، أنشئ معالجًا كاملاً لوحدة المعالجة المركزية)
قارن أحد الأشخاص ذات مرة فكرة BitVM بما يلي: في "أنا في "العالم"، استخدم دوائر ريدستون لصنع معالج M1. وبعبارة أخرى، فإنه يعادل استخدام اللبنات الأساسية لبناء مبنى إمباير ستيت في نيويورك.

(يقال أن هذا "معالج" أمضى أحد الأشخاص عامًا في بنائه في "Minecraft")
2. إذًا، لماذا يتعين عليك استخدام Bitcoin Script لمحاكاة EVM أو WASM؟ أليس هذا مزعجا للغاية؟ وذلك لأن معظم Bitcoin Layer 2 غالبًا ما تختار دعم اللغات عالية المستوى مثل Solidity أو Move، وما يمكن تشغيله حاليًا مباشرة على سلسلة Bitcoin هو Bitcoin Script، وهي لغة بسيطة غير تورينج تتكون من مجموعة من أكواد تشغيل فريدة من نوعها، لغة برمجة كاملة.

(مثال لرمز البرنامج النصي للبيتكوين)
إذا كانت طبقة Bitcoin Layer 2 تنوي التحقق من إثبات الاحتيال على الطبقة 1 مثل Arbitrum وطبقة Ethereum 2 الأخرى، وترث أمان BTC إلى حد كبير، فإنها تحتاج إلى التحقق مباشرة من "معاملة معينة متنازع عليها" على BTC سلسلة أو "رمز تشغيل معين مثير للجدل". بهذه الطريقة، يجب وضع رموز التشغيل المقابلة للغة Solidity/EVM المستخدمة بواسطة الطبقة الثانية على سلسلة Bitcoin وتشغيلها مرة أخرى. تتلخص المشكلة في ما يلي:
استخدم Bitcoin Script، وهي لغة برمجة بدائية أصلية في Bitcoin، لتحقيق تأثير EVM أو أي لغة افتراضية أخرى. آلات.
لذلك، لفهم حل BitVM من منظور مبادئ الترجمة، فإنه يترجم أكواد تشغيل EVM / WASM / Javascript إلى Bitcoin Script Opcode، تعمل دائرة البوابة المنطقية كنموذج وسيط (IR) بين "رمز تشغيل EVM -> رمز تشغيل Bitcoin Script".

(تتحدث الورقة البيضاء الخاصة بـ BitVM عن الفكرة العامة لتنفيذ "تعليمات مثيرة للجدل" معينة على سلسلة Bitcoin)
< p dir ="ltr" style="text-align: left;">على أي حال، تأثير المحاكاة النهائي هو وضع التعليمات التي لا يمكن معالجتها إلا على EVM / WASM في سلسلة Bitcoin للمعالجة المباشرة. على الرغم من أن هذا الحل ممكن، إلا أن الصعوبة تكمن في كيفية استخدام عدد كبير من دوائر البوابات المنطقية كنموذج وسيط للتعبير عن جميع أكواد تشغيل كود التشغيل EVM/WASM. علاوة على ذلك، فإن استخدام مجموعة من دوائر البوابات المنطقية للتعبير بشكل مباشر عن بعض عمليات معالجة المعاملات المعقدة للغاية قد يؤدي إلى عبء عمل ضخم.
3. دعنا نتحدث عن نواة أخرى مذكورة في الورقة البيضاء لـ BitVM، وهي "دليل الاحتيال التفاعلي" الذي يشبه إلى حد كبير Arbitrum . .
سيتضمن دليل الاحتيال التفاعلي كلمة تسمى "تأكيد". بشكل عام، مقدم مقترح الطبقة الثانية (غالبًا ما يتم تمثيله بواسطة جهاز التسلسل)، وهو سيتم إصدار تأكيد التأكيد على Layer1 للإعلان عن أن بعض بيانات المعاملات ونتائج انتقال الحالة صالحة وصحيحة.
إذا اعتقد شخص ما أن هناك مشكلة في التأكيد المقدم من مقدم العرض (البيانات المرتبطة غير صحيحة)، فسيحدث نزاع. في هذا الوقت، سيقوم مقدم العرض والمنافس بتبادل المعلومات بطريقة دائرية وإجراء بحث ثنائي على البيانات المتنازع عليها لتحديد موقع تعليمات التشغيل الدقيقة للغاية وأجزاء البيانات المرتبطة بها بسرعة.
بالنسبة لتعليمات التشغيل المثيرة للجدل (رمز OP)، يجب تنفيذها مباشرة على الطبقة 1 مع معلمات الإدخال الخاصة بها، ويجب التحقق من نتائج الإخراج (الطبقة 1 ستقوم العقدة بمقارنة نتائج المخرجات التي حسبتها مع نتائج المخرجات التي نشرها مقدم العرض مسبقًا). في Arbitrum، يسمى هذا "إثبات الاحتيال بخطوة واحدة".

(في بروتوكول إثبات الاحتيال التفاعلي الخاص بـ Arbitrum، سيتم استرداد البيانات الصادرة عن Proposer من خلال الانقسام الثنائي، وسيتم تحديد موقع التعليمات المتنازع عليها ونتائج التنفيذ في أقرب وقت ممكن، وسيتم إرسال دليل الاحتيال أحادي الخطوة إلى Layer1 للنهائي التحقق) p>
المواد المرجعية: السفير الفني السابق لشركة Arbitrum يشرح هيكل مكونات Arbitrum (الجزء الأول)

(المخطط التفاعلي لإثبات الاحتيال في Arbitrum، الشرح تقريبي نسبيًا)
ها نحن هنا، من السهل فهم فكرة إثبات الاحتيال بخطوة واحدة: الغالبية العظمى من تعليمات المعاملات التي تحدث في الطبقة الثانية لا تحتاج إلى إعادة التحقق منها على سلسلة BTC. ومع ذلك، يجب إعادة تشغيل أحد أجزاء البيانات/رموز التشغيل المثيرة للجدل في الطبقة الأولى عند الاعتراض عليها.
إذا كانت نتيجة الكشف هي أن هناك مشكلة في البيانات التي أصدرها مقدم العرض مسبقًا، فسيتم تعهد الأصول التي تعهد بها مقدم العرض. مقطوعة؛ إذا كانت هناك مشكلة مع تشالنجر، فقم بقطع الأصول التي تعهد بها تشالنجر. إذا لم يستجب Prover للتحدي لفترة طويلة، فمن الممكن أيضًا أن يتم قطعه.
يحقق Arbitrum التأثيرات المذكورة أعلاه من خلال العقود على Ethereum، بينما يعتمد BitVM على Bitcoin Script لتحقيق وظائف مثل تأمين الوقت والتوقيعات المتعددة.

4.بعد الحديث بإيجاز عن "إثبات الاحتيال التفاعلي" و"إثبات الاحتيال بخطوة واحدة"، سنتحدث عن أشجار MAST وإثبات Merkle.
كما ذكرنا سابقًا، في حل BitVM، يتم إيقاف الكمية الكبيرة من بيانات المعاملات/الكميات الضخمة من دوائر البوابة المنطقية المشاركة في معالجة الطبقة الثانية - لن تكون السلسلة مباشرة على السلسلة، فقط عدد قليل من بوابات البيانات/المنطق موجودة في السلسلة عند الضرورة.
ومع ذلك، نحتاج إلى طريقة ما لإثبات أن هذه البيانات "التي كانت في الأصل خارج السلسلة، والآن على السلسلة" ليست ملفقة فقط. وهذا هو الالتزام الذي يُذكر غالبًا في علم التشفير. Merkle Proof هو نوع من الالتزام.
أولاً، دعونا نتحدث عن شجرة MAST. الاسم الكامل لشجرة MAST هو Merkelized Abstract Syntax Trees، وهو الشكل الذي يتم بعد تحويل شجرة AST المشاركة في مبدأ التجميع إلى شجرة Merkle.
إذن، ما هي شجرة AST؟ اسمها الصيني هو "شجرة بناء الجملة المجردة"، وهي ببساطة تقسم التعليمات المعقدة إلى مجموعة من وحدات التشغيل الأساسية من خلال التحليل المعجمي، ثم تنظمها في بنية بيانات تشبه الشجرة.

(حالة بسيطة لشجرة AST. تقسم شجرة AST هذه العمليات البسيطة مثل x=2, y=x*3 إلى رموز العمليات الأساسية+ البيانات)
شجرة MAST مخصصة لشجرة Merkle AST لدعم Merkle Proof. إحدى ميزات شجرة Merkle هي قدرتها على تحقيق "ضغط البيانات" بكفاءة. على سبيل المثال، تريد نشر جزء معين من البيانات في شجرة Merkle إلى سلسلة BTC عند الضرورة، ولكنك تريد أيضًا إقناع العالم الخارجي بأن جزء البيانات هذا موجود بالفعل في شجرة Merkle وليس شيئًا "التقطته" عرضًا". كيف؟ إدارة؟
ما عليك سوى تسجيل جذر شجرة Merkle على السلسلة مسبقًا، وتقديم Merkle Proof في المستقبل لإثبات أن توجد قطعة معينة من البيانات في الجذر المقابل لشجرة ميركل، هذا جيد.

(العلاقة بين إثبات/فرع Merkle والجذر)
لذا، ليست هناك حاجة لتخزين شجرة MAST كاملة على سلسلة BTC. ما عليك سوى الكشف عن جذرها مسبقًا لتكون بمثابة التزام، وتقديم أجزاء من البيانات + Merkle Proof/Branch عندما ضروري. يمكن أن يؤدي ذلك إلى ضغط كمية البيانات الموجودة على السلسلة بشكل كبير والتأكد من وجود البيانات الموجودة على السلسلة بالفعل في شجرة MAST. علاوة على ذلك، فإن الكشف عن جزء صغير فقط من أجزاء البيانات + Merkle Proof على سلسلة BTC بدلاً من الكشف عن جميع البيانات يمكن أن يحقق تأثيرًا جيدًا لحماية الخصوصية.
المرجع: حجب البيانات وإثبات الاحتيال: لماذا لا تدعم البلازما العقود الذكية
< img src="https://img.jinse.cn/7173446_image3.png">
( MAST مثال شجرة)
يحاول حل BitVM التعبير عن جميع دوائر البوابات المنطقية في نصوص Bitcoin ثم تنظيمها، ويصبح MAST ضخمًا الشجرة: الورقة الموجودة أسفل هذه الشجرة (المحتوى الموجود في الصورة) تتوافق مع دائرة البوابة المنطقية المنفذة باستخدام برنامج Bitcoin النصي.
سيقوم مقترح Layer2 بشكل متكرر بنشر جذر شجرة MAST في سلسلة BTC. وترتبط كل شجرة MAST بمعاملة. معلمات الإدخال/أكواد التشغيل/دوائر البوابة المنطقية. بطريقة ما، هذا مشابه لمقترح Arbitrum الذي ينشر كتلة تراكمية على سلسلة Ethereum.
عند حدوث نزاع، يعلن المنافس في سلسلة BTC أنه يريد تحدي الجذر الذي أصدره مقدم العرض، ثم يسأل يقترح الكشف عن الجذر المقابل لجزء من البيانات. بعد ذلك، قدم المقترح دليل ميركل وكشف بشكل متكرر عن أجزاء صغيرة من البيانات لشجرة MAST على السلسلة حتى تم تحديد موقع دائرة البوابة المنطقية المثيرة للجدل بالاشتراك مع المنافس. ثم يمكنك إجراء Slash.

(المصدر: https://medium.com/crypto-garage/deep-dive-into-bitvm-computing-paradigm-to - Express-turing-Complete-bitcoin-contracts-1c6cb05edfca)
5. اذهب هنا، لقد تم شرح الجزء الأكثر أهمية من حل BitVM بأكمله بشكل أساسي، وعلى الرغم من أن بعض التفاصيل لا تزال غامضة بعض الشيء، أعتقد أنه يمكن للقراء بالفعل الحصول على جوهر وجوهر BitVM. أما بالنسبة لالتزام قيمة البت المذكور في ورقته البيضاء، فهو منع مقدم العرض من "تعيين قيمة 0 وقيمة 1" لقيمة إدخال البوابة المنطقية عند تحديه وإجباره على التحقق من البوابة المنطقية دائرة على السلسلة مما يسبب الغموض.الارتباك الجنسي.
الملخص: يستخدم حل BitVM أولاً نصوص Bitcoin للتعبير عن دوائر البوابة المنطقية، ثم يستخدم دوائر البوابة المنطقية للتعبير عن عمليات EVM/أخرى رمز VMs، ثم استخدم رموز التشغيل للتعبير عن تدفق المعالجة لأي تعليمات معاملة، وأخيرًا تنظيمها في شجرة ميركل/شجرة MAST.
مثل هذه الشجرة، إذا كانت عملية معالجة المعاملة معقدة للغاية، فيمكن أن تتجاوز بسهولة 100 مليون ورقة، لذا يجب تقليل الالتزام إلى قدر الإمكان مساحة الكتلة المشغولة ونطاق إثبات الاحتيال.
على الرغم من أن إثبات الاحتيال بخطوة واحدة لا يتطلب سوى جزء صغير جدًا من البيانات والبرنامج النصي للبوابة المنطقية على السلسلة، إلا أن Merkle Tree الكاملة تحتاج إلى أن تكون مخزنة في خارج السلسلة، في حالة تحدي شخص ما، يمكن أن تكون البيانات الموجودة على الشجرة موجودة على السلسلة في أي وقت.
ستؤدي كل معاملة تحدث في Layer2 إلى إنشاء شجرة Merkle كبيرة. يمكن تخيل ضغط الحوسبة والتخزين على العقد. يمكن لمعظم الناس لا تكون على استعداد لتشغيل العقد (ولكن يمكن انتهاء صلاحية هذه البيانات التاريخية وإزالتها، وتقدم شبكة B^2 بشكل خاص إثبات تخزين zk مشابهًا لـ Filecoin لتشجيع عقد التخزين على حفظ البيانات التاريخية لفترة طويلة)
ومع ذلك، لا تحتاج مجموعة التحديثات المتفائلة المستندة إلى إثبات الاحتيال إلى عدد كبير جدًا من العقد، لأن نموذج الثقة الخاص بها هو 1/N، طالما أن إحدى العقد N صادقة ، إذا كان من الممكن بدء إثبات الاحتيال في اللحظات الحرجة، فإن شبكة الطبقة الثانية آمنة.
ومع ذلك، لا تزال هناك العديد من التحديات في تصميم حلول الطبقة الثانية المستندة إلى BitVM، مثل:
1.من الناحية النظرية، من أجل ضغط البيانات بشكل أكبر، ليست هناك حاجة للتحقق مباشرة من كود التشغيل في Layer1. تدفق معالجة كود التشغيل يمكن ضغطها مرة أخرى إلى إثبات zk.دع المتنافسين يتحدون خطوات التحقق من إثبات zk. يمكن أن يؤدي هذا إلى ضغط كمية البيانات الموجودة في السلسلة بشكل كبير. لكن تفاصيل التطوير المحددة ستكون معقدة.
2. يجب أن يتفاعل مقدم العرض والمنافس بشكل متكرر خارج السلسلة، وكيف ينبغي تصميم البروتوكول والالتزام به التحديات تتطلب العملية، وكيفية تحسين تدفق المعالجة، الكثير من خلايا الدماغ.
المراجع:
1.BitVM White ورق
https://bitvm.org/bitvm.pdf
2.التعمق في BitVM - نموذج الحوسبة للتعبير عن عقود Turing-Complete Bitcoin-
https://medium .com/crypto-garage/deep-dive-into-bitvm-computing-paradigm-to-express-turing-complete-bitcoin-contracts-1c6cb05edfca
3.أشجار بناء الجملة المجردة Merkelized
https://hashingit.com/elements/research-resources/2014-12- 11-merkelized-abstract-syntax-trees.pdf