BitVM هو أحدث بروتوكول ساخن في نظام Bitcoin البيئي، مع إمكانية الاستفادة من كل مشروع مبني على Bitcoin. دعونا نتحدث عن تصميم BitVM والإمكانيات الجديدة التي يفتحها للبيتكوين.
" الموسم الثاني من Bitcoin[3] " قيد التقدم، إن المطورين والمستخدمين على حد سواء متحمسون لبناء مشاريع على Bitcoin وتقديم حالات استخدام جديدة وأساليب جديدة لحل التحديات الأبدية للبناء على Bitcoin.
البيتكوين غير قابلة للتطوير. نظرًا لمساحة الكتلة المحدودة، يمكن أن تتقلب رسوم المعاملات بشكل كبير خلال أوقات ازدحام الشبكة. مع معالجة 7 معاملات فقط في الثانية، وتحتوي كل كتلة على حوالي 1 ميجا بايت فقط من البيانات، فإن عملة البيتكوين وحدها ليست كافية إذا أريد استخدامها من قبل مليارات المستخدمين. أنت بحاجة إلى توسيع الحل [4].
تم إنجاز الكثير من العمل على Bitcoin L2s[5] (Layer2 blockchain) لتحسين موثوقية وقابلية التوسعة في Bitcoin إدخال ميزات جديدة. هناك العشرات من المشاريع [6] التي يتم إنشاؤها باستخدام Bitcoin اليوم، وأحد أكثر مجالات البحث والابتكار الواعدة هو Bitcoin Rollups[7]. على مستوى عالٍ، تتيح مجموعات Bitcoin إجراء المعاملات خارج السلسلة ومن ثم "إدراجها" في تغيير حالة واحد يتم إرساله إلى blockchain، مع نظام إثبات التشفير حتى يتمكن المشاركون من التحقق من دقة تغيير الحالة المقدمة.
ومع ذلك، هناك تحديات في جلب هذا النوع من نظام الإثبات إلى Bitcoin، وهنا يأتي دور BitVM.
ما هو BitVM؟
BitVM[8] عبارة عن مجموعة بروتوكولات/قواعد تمكن من مقاومة الاحتيال على Bitcoin والتي يمكن للمطورين استخدامها على الفور. استخدم هذا البروتوكول لتنفيذ مختلف حالات الاستخدام على Bitcoin، بما في ذلك Bitcoin Rollups، والحد الأدنى من جسور الثقة، وما إلى ذلك. يعمل التصميم الأساسي لـ BitVM على نقل العمليات الحسابية خارج السلسلة وتنفيذ آلية مقاومة الاحتيال على blockchain Bitcoin.
يمكن لـ BitVM تنفيذ إثبات الاحتيال على Bitcoin.
تم إصدار المستند التقني الخاص بـ BitVM بواسطة Robin Linus في أكتوبر 2023 (تجدر الإشارة إلى أن Robin هو ZeroSync[9] كجزء من فريق يعمل على نظام إثبات المعرفة الصفرية للبيتكوين، بدأ المطورون في تجربة البروتوكول خلال الأشهر القليلة الماضية وأصبح اهتمامهم متزايدًا.
يمكنك التفكير في BitVM كبروتوكول/مجموعة من القواعد الموزعة التي يتفق المشاركون مسبقًا على اتباعها، بدلاً من كونها آلة افتراضية فعلية يتم تنفيذها بواسطة برنامج (مثل Ethereum) آلة افتراضية). على غرار كيفية عمل Bitcoin Ordinals، يوجد عنصر من الإجماع الاجتماعي هنا، حيث يختار المشاركون القواعد، ولا يتم تطبيق هذه القواعد بالكامل على مستوى البروتوكول.
ما يجعل BitVM مثيرًا للغاية هو أنه يوفر بروتوكول الاستجابة للتحدي للتحقق من صحة الدوائر العشوائية على Bitcoin - يمكنك تقديم مطالبات خارج السلسلة (على سبيل المثال، هذا يعمل الإثبات) ويتم التحقق منه باستخدام Bitcoin L1. يعد "On Bitcoin" أمرًا أساسيًا لأن البناء على Bitcoin أمر صعب للغاية، إذا تم تنفيذه، فيمكن استخدام بروتوكول BitVM لإنشاء مجموعات متفائلة، وتثبيت BTC ثنائي الاتجاه، وما إلى ذلك، مما يمكن أن يفيد المشاريع الأخرى المبنية على Bitcoin.
ما هي المشكلة التي يحلها BitVM؟
أي مشروع يعتمد على Bitcoin يعرف مدى صعوبة التفاعل مع السلسلة (في Hiro، نعرف هذا الألم بشكل مباشر). أحد تحديات البناء على البيتكوين هو أن البيتكوين ليس لديه القدرة على التعامل مع الحسابات المعقدة.
لا يوجد عقد ذكي. لا توجد أجهزة افتراضية. تقتصر قابلية البرمجة على ما يمكن للمطورين إنشاؤه عبر أكواد التشغيل [11] (أكواد التشغيل)، وهذه الوظيفة محدودة. يتطلب تقديم رموز تشغيل جديدة BIP وشوكة Bitcoin (وهو أمر صعب للغاية).
وهكذا، بدون الشوكات وأكواد التشغيل الجديدة، لدينا قابلية برمجة محدودة. في حالة توسيع نطاق Bitcoin، ينعكس هذا القيد بشكل أساسي في جانبين:
إذا كنت إذا كنت ترغب في إنشاء ربط ثنائي الاتجاه لـ BTC، فمن الصعب إزالة الثقة من المعادلة. تتضمن معظم عمليات ربط BTC اليوم جهة حفظ، إما مؤسسة واحدة أو اتحاد يتحكم في multisig، للتعامل مع الودائع/السحوبات. توصف أحيانًا بأنها "كتابة الأسئلة". في النظام البيئي Stacks، تتضمن ترقية Nakamoto القادمة [12] الحد الأدنى من جسر الثقة المصمم للاستخدام - المزيد عن ذلك لاحقًا.
إذا كنت تريد نقل الحسابات أو المعاملات خارج السلسلة من خلال Rollup، فمن الصعب التحقق من البيانات خارج السلسلة والتحقق منها على البيتكوين نفسها. هذه مسألة التحقق.
بالنسبة لكلتا هاتين المشكلتين، يمكن لـ BitVM فتح تحسينات جذرية في التصميم من خلال تنفيذ بروتوكول التحدي/الاستجابة على Bitcoin L1.
كيف يعمل BitVM؟
الطريقة الجيدة للتفكير في BitVM هي اعتباره بروتوكولًا أو مجموعة من القواعد. يمكن لعب أي لعبة تحدي واستجابة إذا وافق الطرفان مسبقًا على اتباع هذه القواعد (مما يعني أنهما بحاجة إلى التعاون مع بعضهما البعض). من الناحية النظرية، يمكن استخدام هذا للتحقق/إثبات البرامج المعقدة بشكل تعسفي على البيتكوين (يتم التنفيذ الفعلي لهذه البرامج خارج السلسلة).
دعونا نعطي مثالا محددا.
لنفترض أن أليس وبوب يريدان لعب لعبة رمي العملات المعدنية. يضع كل من اللاعبين 0.5 بيتكوين في مجموع الجوائز. الرؤوس تفوز بـ 1 بيتكوين. تحمل أليس العملة المعدنية وسوف تقلب العملة أولًا. يريد بوب التأكد من أن أليس لا تغش. وإليك كيفية لعب اللعبة باستخدام BitVM (تم حذف العديد من التفاصيل من أجل البساطة):
Alice and يوافق بوب على اتباع بروتوكول BitVM.
لنفترض أن الجانب الأمامي ممثل بالقيمة H0 والجانب الخلفي ممثل بالقيمة H1. تقوم أليس بإنشاء H0 وH1 عن طريق اختيار قيمتين أخريين، على سبيل المثال P0 وP1، وتجزئتهما. ولذلك، التجزئة (P0) = H0 والتجزئة (P1) = H1. تسمى P0 "الصورة المسبقة" لـ H0، وتسمى P1 الصورة المسبقة لـ H1.
تشارك أليس القيمتين H0 وH1 مع بوب (في الواقع، "تلتزم" أليس بشكل لا رجعة فيه بهذه التجزئات، لذا فهي لا يمكن المطالبة لاحقًا بأن لها قيمة مختلفة). لا يعرف بوب الصور الأولية P0 وP1 (و"تخمين" هذه القيم أمر صعب للغاية، لذلك يمكننا أن نفترض بأمان أن بوب لن يكتشف هذه القيم بطريقة سحرية).
يوقع أليس وبوب مسبقًا على معاملتين: واحدة للتحدي والأخرى للاستجابة.
في معاملة التحدي، سيتضمن بوب برنامجًا نصيًا يتحقق بشكل أساسي مما إذا كان الإدخال قد قدم تجزئة لإحدى قيم التجزئة المعروفة H0 أو H1 - إذا كانت التجزئة هي H0، فسيعلم بوب أن القيمة موجبة إذا كانت كذلك؛ H1، وهو عكس ذلك. بالإضافة إلى ذلك، يحتوي النص على قفل زمني، وإذا لم يتم تلقي الرد بحلول الموعد النهائي، يحصل بوب على مجموع الجوائز.
في معاملة الاستجابة، يمكن لأليس "الكشف" عن نتيجة رمي العملة عن طريق تضمين الصورة الأولية المقابلة P0 أو P1. إذا كانت أليس لا تحتوي على أي قيمة، أو تحتوي على قيمتين، أو تحتوي على أي قيمة باستثناء P0 أو P1، فإن بوب يفوز بمجموع الجوائز. بخلاف ذلك، إذا كانت القيمة P0 (رؤوس)، فستفوز أليس بمجموع الجوائز.
الآن نحن مستعدون لبدء اللعبة. ترمي أليس العملة المعدنية لكنها لم تكشف عن النتيجة بعد. يُصدر بوب معاملة ارتياب، ثم تقوم أليس بعد ذلك ببث معاملة استجابة. يتم تنفيذ منطق "الكشف عن الاحتيال" على السلسلة من خلال البرنامج النصي الموصوف سابقًا. من الواضح أن هذا مثال تافه ومفتعل، لكنه يوضح الفكرة الأساسية. للحصول على مثال أكثر تعقيدًا قليلًا، فكر في لعبة Tic-Tac-Toe التي صممها مطور يُدعى Super Testnet. يمكنك الاطلاع على مستودع GitHub [13] هنا وحتى اللعب باستخدام "bit tac toe[14]" اليوم. لقد عرضت Super Testnet اللعبة بالفعل على Hiro، والتي يمكنك مشاهدتها أدناه:
Bitvm Crash Course على Youtube [ 15]
في ما يلي المكونات عالية المستوى للعبة:
Tic-Tac-Toe عبارة عن شبكة مكونة من 9 مربعات. يمكن للاعب الأول، أليس، القيام بما يصل إلى 5 حركات، لذلك هناك 45 صورة أولية وتجزئة (9 في كل جولة). اللاعب الثاني، بوب، يمكنه القيام بـ 4 حركات على الأكثر، لذلك هناك 36 هاش.
تحتوي لعبة Tic-Tac-Toe على 3 طرق "للغش": يمكن للاعبين وضع عدة X/O في دورهم؛ قم بتغطية مربع استخدمه من قبل، يمكن للاعبين تغطية مربع استخدمه خصمهم من قبل. ولذلك، فإن بروتوكولات التحدي/الاستجابة مبنية على اكتشاف هذه المواقف.
إن تحدي التجارة سيجبر اللاعب الآخر على "الكشف" عن المربع الذي وضع عليه X أو O.
ستحتوي معاملة الاستجابة على برنامج نصي يتحقق من جميع الحالات الثلاث المذكورة أعلاه: إذا لم يتم اكتشاف أي احتيال، فستستمر اللعبة. (أو تنتهي اللعبة بسبب فوز شخص ما). إذا تم اكتشاف الاحتيال، يفوز المنافس ويخسر المثبت.
لاحظ أنه في كلتا الحالتين تكون إثباتات الاحتيال مصنوعة يدويًا ومصممة خصيصًا لحالة الاستخدام هذه: حسنًا، دليل الاحتيال في Word Chess لا يعمل مع تقلب العملات المعدنية أو أي شيء آخر.
بالعودة إلى الصورة الكبيرة، تصف الوثيقة التقنية الخاصة بـ BitVM منهجًا عامًا: بالنسبة لأي برنامج، فهي توفر طريقة لإنشاء دليل على صلاحية هذا البرنامج. الأفكار الرئيسية هي كما يلي:
من مثال رمي العملة المعدنية، نرى كيفية التحقق بت واحد: دعنا نسميه دليل "التزام البت".
باستخدام التزامات البت، يمكننا بناء التزامات البوابة المنطقية: ضع في اعتبارك عامل التشغيل المنطقي AND/OR - لأي مدخلين ( كل قيمة هو 0 أو 1)، يحدد هذا المشغل إخراجًا واحدًا. لذلك، باستخدام التزام 2 بت كمدخل والتزام 1 بت كمخرج، يمكننا إنشاء دليل صحة لأي بوابة منطقية. تستخدم الورقة البيضاء لـ BitVM بوابة منطقية NAND.
أخيرًا، يمكن تمثيل أي حساب عشوائي باستخدام سلسلة من البوابات المنطقية. يطلق المستند التقني الخاص بـ BitVM على هذا اسم "الدائرة الثنائية". يمكن تمثيل هذه الدوائر بكفاءة باستخدام Tapscript، حيث تمثل كل ورقة في شجرة الصنبور التزامًا ببوابة واحدة.
يتضمن بروتوكول التحدي/الاستجابة بشكل أساسي التحقق من صحة المخرجات التي وعدت بها بوابة معينة. في أسوأ الحالات، قد تحتاج إلى التحقق من مخرجات كل بوابة على حدة.
راجع هذا المستودع [16] للحصول على دليل لتحويل أي برنامج إلى دائرة Tapleaf طريقة.
كيف تتلاءم الأكوام مع بعضها البعض؟
التطبيقان الواضحان والأكثر صلة بـ BitVM في النظام البيئي Stacks هما:
تحسين افتراضات الثقة في sBTC
تحسين افتراضات الثقة في إضافة كتلة Bitcoin Stacks إثبات الصلاحية
لماذا تختار هذين التطبيقين؟ يعد تصميم sBTC الحالي [17] بالفعل واحدًا من أكثر أنظمة الربط ثنائية الاتجاه أمانًا وتقليل الثقة قيد التطوير لـ Bitcoin. ومع ذلك، لا يزال هناك مجال للتحسين فيما يتعلق بنماذج الأمان وافتراضات الثقة[18]. فبدلاً من اشتراط ما لا يقل عن 30% من الموقعين الصادقين أو الثقة في مجموعة من الموقعين ذوي السمعة العالية، يمكن للنهج القائم على BitVM نظريًا تمكين sBTC من العمل مع مشارك صادق واحد فقط.
وبالمثل، بينما تتم تسوية كل كتلة Stacks على Bitcoin، فإن التصميم الحالي يسمح لك فقط بالتحقق بشكل مستقل من بيانات Stacks بينما يكون لديك نسخة من حالة السلسلة. إذا كنت تستخدم BitVM، فإن كتل Stacks تتضمن أيضًا أدلة على الصلاحية، بحيث يمكنك التحقق ليس فقط من التكامل (البيانات الموجودة في كتلة Stacks معينة متوافقة مع التجزئة المخزنة على Bitcoin)، ولكن أيضًا من صحتها (يمكنك التحقق من التخزين من خلال النظر إلى تثبت البراهين على Bitcoin أن المعاملات في كتلة Stacks معينة قد تم تنفيذها بالفعل بشكل صحيح). بمعنى آخر: سيسمح هذا لـ Stacks بالتطور إلى مجموعة متفائلة من Bitcoin.
تتطلب الطرق المحددة لكيفية استخدام BitVM لتنفيذ هذه التطبيقات المزيد من البحث والتطوير. ولكن يمكننا أن نحاول رسم بعض الأفكار على مستوى عال.
BitVM وsBTC
فكر في مثال sBTC: عملية التثبيت بسيطة جدًا، مجرد بث معاملة Bitcoin يتم. ومع ذلك، في التصميم الحالي، تعتمد عملية الخروج المرساة على الموقّع للتعامل مع الطلب (على الأكوام). يؤدي هذا إلى بعض القيود:
قد يستغرق الخروج وقتًا اعتمادًا على عدد التوقيعات الموجودة لدى الشخص غير متصل/صادق.
أنت بحاجة إلى الثقة في شبكة الموقعين هذه، وعلى نطاق أوسع، في Stacks ككل.
إذا بدلاً من ذلك (أو ربما أيضًا) قم بإنشاء دليل صلاحية على Bitcoin واستخدم BitVM[ 19]، ثم:
يمكن التعامل مع الخروج بشكل متفائل (وبالتالي، في المسار السعيد و يمكن معالجتها بشكل أسرع).
يتطلب المرساة مشاركًا واحدًا صادقًا فقط ليعمل؛ ولا تحتاج إلى الثقة بنسبة 30% من شبكة الموقعين.
المفتاح هو معرفة كيفية إنشاء دليل على الصحة بالضبط. يمكن أن ينجح أسلوب القوة الغاشمة الموضح في الورقة البيضاء لـ BitVM، ولكنه يمكن أن يؤدي إلى دائرة أوراق تابل كبيرة جدًا (مليارات العقد). وهذا بدوره يعني أن أي تحدي سيستغرق وقتًا طويلاً (ربما أسابيع أو أكثر)، ناهيك عن التكلفة من حيث الاهتمام والموارد (رسوم المعاملات!). كما رأينا في مثال Tic-Tac-Toe، من الممكن إنشاء أدلة أكثر إيجازًا، ومصممة خصيصًا لحالات استخدام محددة، وقد يكون النهج المماثل أكثر فعالية في هذه الحالة.
BitVM والأكوام
أما بالنسبة لإثبات صحة كتلة الأكوام بأكملها، فهناك الكثير يستحق استكشاف مساحة التصميم. على سبيل المثال، هل يتم إثبات دقة معاملة واحدة أم دقة كتلة بأكملها أو في مكان ما بينهما (مثل المعاملات التي تشكل سلسلة من التبعيات السببية)؟ هل من الممكن اتباع نهج تدريجي، مثل إنشاء أدلة أولية لعمليات نقل رمزية بسيطة ثم إضافة عقود الوضوح تدريجيًا؟ هل يعد هذا استخدامًا جيدًا لمساحة كتلة Bitcoin نظرًا لأن القائمين بتعدين Stacks والمشاركين في الشبكة لديهم بالفعل حافز مالي للحفاظ على التاريخ الكامل لحالة سلسلة Stacks؟
الاستنتاج
BitVM هو موضوع مثير يحتاج إلى المزيد من العمل أكثر من مجرد مشاركة مدونة كثيرًا من البحث والفكر والتجريب، ولكن آمل أن يساعد هذا في تسليط الضوء على أحد التطورات الأخيرة المثيرة في Bitcoin. ص>
Preview
احصل على فهم أوسع لصناعة العملات المشفرة من خلال التقارير الإعلامية، وشارك في مناقشات متعمقة مع المؤلفين والقراء الآخرين ذوي التفكير المماثل. مرحبًا بك للانضمام إلينا في مجتمع Coinlive المتنامي:https://t.me/CoinliveSG