SUAVE هو مشروع لا مركزي تم تطويره بواسطة Flashbots وهو ينشئ شبكة ذات بيئة TEE لحل المشكلات التي تمت مواجهتها في عملية MEV، مثل حفظ المفاتيح والثقة المتبادلة بين الأطراف المتعددة. . وفي الوقت نفسه، فإن إضافة TEE في مشروع SUAVE يمنح SUAVE المزيد من الإمكانيات بالإضافة إلى حل مشكلات MEV.
مكتبة الأكواد ذات الصلة بـ SUAVE
يعتمد مشروع SUAVE على امتداد Ethereum، لذلك فهو من الطبيعي أن يكون متوافقًا مع EVM. تتضمن مشاريعها الحالية ذات الصلة على GitHub: SUAVE-geth، وSUAVE-std، وSUAVE-examples، وما إلى ذلك.
من بينها، SUAVE-geth هو كود طبقة التنفيذ الممتد على أساس geth، ويضيف بشكل أساسي بيئة حوسبة تشفير تعتمد على geth، بالإضافة إلى التشفير يتم ترجمة بعض هذه البرامج مسبقًا في بيئة الحوسبة. ومن الجدير بالذكر بشكل خاص إضافة الترجمة المسبقة لطلبات HTTPS القياسية، والتي تسمح للمطورين باستخدام بيئة TEE لتزويد المستخدمين بالقدرة على الوصول إلى الشبكات الأخرى. بالإضافة إلى ذلك، فهو يحتوي على سلسلة من التجميعات المسبقة بناءً على وظائف استخدام TEE، مثل الحصول على معلمات التشفير، وتخزين معلومات التشفير، والحصول على معلومات التشفير، وما إلى ذلك، والتي تشكل بنية تحتية للتطوير تعتمد على بيئة موثوقة.
SUAVE-std هو مشروع تم إنشاؤه لراحة المطورين ويمكن فهمه على أنه مكتبة أدوات التطوير. على سبيل المثال، يقوم بحزم كيفية استخدام طلبات HTTP، وحتى حزم مكتبة التعليمات البرمجية لاستخدام ChatGPT على هذا الأساس، مما يلغي حاجة المطورين إلى تجميع رسائل طلب ChatGPT وتحليل رسائل إرجاع ChatGPT بأنفسهم. ما عليك سوى استبدال مفتاح API الخاص بك عند إرسال رسالة. تضمن بيئة أمان TEE أمان مفتاح API، لأن كل شيء يتم في بيئة TEE. في البداية، تستخدم مكتبة ChatGPT القياسية نموذج GPT-3.5-turbo بشكل افتراضي، ودرجة الحرارة الافتراضية هي 0.7. تمت الآن إضافة واجهة مرنة، ويمكن أيضًا تمرير النماذج كمعلمات.
يهدف مشروع SUAVE-examples أساسًا إلى إظهار بعض الحالات حول كيفية تنفيذ تطوير التطبيقات، أو قد يكون أكثر ملاءمة كبرنامج تعليمي للمبتدئين. بالنسبة للمطورين الجدد في تطوير تطبيقات SUAVE، يمكنهم التعلم والمقارنة من خلال الحالات الموجودة في هذا المشروع.
ممارسة تطوير SUAVE
نظرًا لأن SUAVE يعتمد على امتداد Ethereum (القابل للتنفيذ البيئة) يُطلق عليه اسم MEVM (الجهاز الظاهري للإيثريوم المعدل)، وبالتالي فإن تطوير العقود الذكية متوافق مع EVM، ويتم تقديم وثائق التطوير الرسمية في Solidity. لذلك، تعد تجربة تطوير Solidity مفيدة تمامًا للمطورين. في تطوير تطبيقات SUAVE، يمكن فهم تطوير العقود الذكية على أنه تطوير Solidity مع وظيفة حوسبة التشفير في بيئة TEE.
هناك العديد من التحويلات المسبقة الرئيسية لـ SUAVE MEVM. الأول هو الإدخالات السرية. يقبل هذا التحويل المسبق معلمات التشفير من طلبات التطبيق. عادةً ما تكون هذه المعلمة عبارة عن بعض المعلومات الخاصة التي تحتاج إلى تشفير، مثل المفاتيح الخاصة، ومفاتيح واجهة برمجة التطبيقات، وما إلى ذلك. ويجب أن يتطلب ضمان الأمان الخاص بها ظهور النص العادي فقط. بيئة TEE، وفي تطوير التطبيقات، يعتمد الحصول على هذه المعلومات على هذه الواجهة للحصول على النص العادي. عملية النقل مشفرة بالكامل وآمنة وموثوقة وسنناقش المبدأ لاحقًا. والثاني هو SecretStore، والذي يستخدم لتخزين المعلومات الخاصة. عندما نحصل على معلومات خاصة من المعلمات، غالبًا ما لا تكون هناك حاجة للمشاركة في الحساب في ذلك الوقت، لذلك يتم تخزينها للاستخدام اللاحق. والثالث هو استرداد سري. يتم استخدام هذه الواجهة عند طلب نص عادي للبيانات من سياق TEE عندما تكون المعلومات الخاصة مطلوبة للمشاركة في العمليات الحسابية.
يسمح التخزين الآمن للمعلومات الخاصة في SUAVE للمطورين بتحقيق مثل هذا السيناريو: "يقوم المستخدم بتحميل المفتاح الخاص، ثم يقوم الطرف الثالث بإجراء حسابات الأعمال. عندما إذا تم استيفاء الشروط، يمكن للطرف الثالث استخدام المفتاح الخاص للمستخدم مباشرة للتوقيع، وبهذه الطريقة، يمكن للطرف الثالث استخدام المفتاح الخاص للمستخدم للتوقيع بموجب قواعد معينة، ولكن الطرف الثالث لن يتمكن أبدًا من الحصول على النص العادي. المفتاح الخاص "
يستخدم SUAVE طلبات HTTPS لتنفيذ عمليات عبر السلسلة. توجد مكتبة تسمى البوابة في مجموعة الأدوات الخاصة بها لقراءة المعلومات عبر السلسلة مباشرة، وجوهرها هو أن المستخدم يقوم بتعيين عقدة RPC لسلسلة معينة. والأكثر شيوعًا هو قيام المستخدم بتحميل معلومات مفتاح API مثل Infura و Etherscan وما إلى ذلك .، ثم عندما تحتاج إلى الاتصال، ما عليك سوى استخدام طلب HTTP للعقدة المقابلة. عندما يكون من الضروري كتابة المعلومات عبر السلاسل، توجد حزمة معاملات في مجموعة الأدوات، والتي يمكن أن تساعد المطورين على تشفير الرسائل مثل EIP1559، وأخيرًا بث المعاملة من خلال واجهة eth_sendRawTransaction.
هناك سيناريو استخدام آخر جدير بالذكر، وهو تحميل وتخزين الكود الثانوي الذي تم تجميعه بواسطة Solidity كمعلمة خاصة، ثم نشره واستدعائه عندما تتوفر الشروط يتم الوفاء بها، وبالتالي تشكيل مكتبة خاصة. يمكن توسيع سيناريو الاستخدام هذا ليشمل: المفتاح الخاص + مكتبة الرموز الثانوية الخاصة. في هذه الحالة، يمكن تحقيق معاملات خاصة تمامًا عند إجراء مكالمات تفويض من طرف ثالث.
ميزات SUAVE
الحالة النهائية لـ SUAVE هي سلسلة، والتي نسميها SUAVE سلسلة . يمكننا اعتبار سلسلة SUAVE بمثابة سلسلة تطبق MEVM. نظرًا لأنها سلسلة كتل متوافقة مع EVM، يمكننا أيضًا إنشاء أصول مثل ERC20 وERC721 على SUAVE، ولا تختلف عملياتها على السلسلة عن عمليات سلسلة EVM. لكن تفردها يكمن في إضافة عمليات خارج السلسلة، مثل إرسال المعاملات إلى العقد في سلاسل أخرى، ويمكن تخزين نتائج العمليات خارج السلسلة أو شروط الاستخدام على سلسلة SUAVE، ويتم ضمان النتائج المخزنة بالإجماع. وبهذه الطريقة، يمكن تحقيق الاتساق بين الحساب خارج السلسلة والحالة الموجودة على السلسلة. على سبيل المثال، يمكن للمطورين كتابة عقد ذكي لتسجيل بعض الشروط على السلسلة (والتي يمكن تعديلها أيضًا). عند الوصول إلى عقدة شبكة سلسلة معينة وتلبي النتيجة التي تم إرجاعها المتطلبات، سيتم إجراء نقل محدد مسبقًا لأصل ERC20 معين. تم تنفيذها.
ما ورد أعلاه هو كل الميزات التي توفرها حوسبة SUAVE الموثوقة خارج السلسلة. نحن نعلم أن SUAVE تم تطويره بواسطة فريق Flashbots، ويعتبر SUAVE "مستقبل MEV" من قبل فريق Flashbots، لذا فإن معالجة المعاملات المجمعة مطلوبة بالتأكيد استنادًا إلى سلسلة SUAVE في بيئة موثوقة، فإن المبادئ المتعلقة بـ MEV هي بسيط جدًا: يتم إرسال معاملات حزمة التجميع إلى عقد الترحيل الخاصة بـ Flashbots. يمكن تخزين المفاتيح الخاصة بشكل خاص، حتى في التعليمات البرمجية، مما يفتح إمكانات هائلة للاستخدام. على سبيل المثال، بالإضافة إلى مكافأة الغاز في السلسلة المستهدفة، يمكن للمنشئ أيضًا الحصول على أصول رقمية معينة في سلسلة SUAVE. بالنسبة لسوق MEV، من الممكن تحديد الخدمات بمرونة مع ضمان أمن المعلومات الخاصة، وهو أمر لا تستطيع MEV القيام به حاليًا (حاليًا لا يمكن تحقيق سوى الضمانات التقليدية خارج السلسلة القائمة على الثقة والعقد وحسن النية وما إلى ذلك).
أدوات تطوير SUAVE والبنية التحتية
للمطورين، تطوير تطبيق dapp بالإضافة إلى يعد تطوير العقود الذكية على السلسلة، ومجموعات الأدوات مثل ether.js أيضًا جزءًا مهمًا من تطوير الواجهة الأمامية. في تطوير تطبيقات SUAVE، نظرًا لأن سلسلة SUAVE تم تعديلها استنادًا إلى EVM، يمكن أيضًا استخدام أدوات مثل ether.js وweb3.js تتفاعل هذه الأدوات مع العقود الذكية في سلسلة SUAVE بشكل لا يختلف عن السلاسل الأخرى المتوافقة مع EVM ولكن يمكن استدعاء الوظائف في البيئات غير السرية فقط. ينقسم العقد الذكي لسلسلة SUAVE إلى عمليات على السلسلة (في إشارة إلى سلسلة SUAVE) وعمليات خارج السلسلة (يتم تضمين العمليات عبر السلسلة أيضًا في هذه الفئة) وتشير العمليات خارج السلسلة في الواقع إلى حسابات البيئة السرية. بالنسبة للحوسبة السرية في البيئة، يوفر فريق Flashbots أدوات تطوير البرامج (SDK) بلغتين (Go وTypeScript). يتم وصف الاستخدام في وثائق SUAVE. عند إرسال معاملة حوسبة خاصة (تسمى طلب حساب سري بواسطة فريق Flashbots) إلى عقدة SUAVE، يمكنك إحضار مدخلات سرية، وهي معلمات خاصة أثناء عملية الإرسال بأكملها، سيظهر النص العادي النهائي لهذه المعلمة فقط في ملف بيئة تي إي.
أخيرًا عند الحديث عن نشر العقود الذكية، اسم شبكة الاختبار لسلسلة SUAVE هو Regil، ولكن تمت ترقيتها وتسمى Toliman تم تفصيل طريقة النشر في مستند SUAVE. لا تختلف طريقة النشر وطريقة التفاعل بعد النشر وما إلى ذلك عن نشر العقود الذكية لـ Ethereum.
غلاية
بعد نشر العقد الذكي، تختلف طريقة تشغيله الفعلية عن تلك من الإيثريوم مختلفة. وحدة التنفيذ الرئيسية لـ SUAVE تسمى Kettle. Kettle هي بيئة تشغيل TEE الخاصة بـ SUAVE (وهي تتضمن عقدة MEVM ومخزن بيانات سري). بعد أن يكتب المطور العقد الذكي وينشره، يرسل المستخدم طلب حوسبة سريًا (يشار إليه فيما يلي باسم CCR). عندما يحتاج العقد الذكي إلى استخدام الحوسبة السرية، يتم تشغيله فعليًا بواسطة Kettle.
المخطط الهيكلي للغلاية هو كما يلي:
يمكننا أن نرى أن المطورين يستخدمون لغة الصلابة لتطوير التطبيقات ونشرها، وبعد طلب Kettle أخيرًا، جميع MEVM بالإضافة إلى وظائف geth، يضيف MEVM أيضًا بعض الترجمة المسبقة إليه، والتي يمكنها تخزين البيانات الخاصة واسترجاعها. بالإضافة إلى ذلك، فهو يعالج أيضًا (بما في ذلك التعديل والاسترداد) الحالة الموجودة على سلسلة SUAVE.
تتمثل مهمة Kettle الرئيسية في تلقي ومعالجة الحسابات الخاصة، بالإضافة إلى التعامل مع تخزين البيانات الخاصة واسترجاعها. بأخذ تخزين بعض البيانات الخاصة كمثال، تكون العملية برمتها كما يلي: تستخدم الواجهة الأمامية للمستخدم SDK أو أداة suave geth لبدء طلب CCR لعقد ذكي على سلسلة SUAVE سيستخدم مفتاح البيانات (المفتاح المتماثل) لتشفير البيانات، وسيظهر مفتاح البيانات هذا فقط في بيئة Kettle، ولن ترى عقدة RPC الخاصة بـ SUAVE سوى النص المشفر. ما إذا كانت هناك علاقة فردية بين الغلاية والعقد لم يتم رؤيتها في وثائق SUAVE. وبالمثل، لم يتم تقديم المبادئ التفصيلية لـ Kettle نفسها والعقد وتبادل المفاتيح في الوثيقة. ومع ذلك، استنادًا إلى عملية التشفير وفك التشفير المعروفة، لدى المطورين سبب للاعتقاد بأنه يمكن ضمان حماية البيانات بين الواجهة الأمامية للمستخدم وبيئة TEE الداخلية لـ Kettle.
سيتم تخزين بيانات Kettle الخاصة في مخزن البيانات السري. عندما يقوم المطورون بتطوير عقود ذكية، سيحددون الزوار ومعدلات البيانات، وستستخدمها Kettle تم نشر نقلها على الشبكة، إذا تم تحديد هذا العقد للوصول، فيجب أيضًا إرسال طلبات CCR اللاحقة إلى هذه Kettle، لأن تخزين بيانات Kettle لم يتم تحديثه عالميًا. بعد أن ينشر المطور العقد الذكي ويصل المستخدم إلى Kettle المقابلة (هناك معلمة في طلب CCR، يجب تحديد عنوان Kettle)، يمكن الوصول إلى بياناتها الخاصة. عندما يرسل مستخدم CCR ويطلب بيانات خاصة في عقد ذكي، يتم استخدام المعرف والمفتاح اللذين تم إنشاؤهما عند تخزين البيانات المقابلة لاسترجاعهما، وبعبارة أخرى، يتم الوصول إلى البيانات الخاصة واستخدامها من خلال قيمتها الرئيسية.
فيما يتعلق بطلبات HTTP وما إلى ذلك، يتم التعامل معها أيضًا بواسطة Kettle. من الواضح أن هذه وظائف خارج سلسلة SUAVE، مما يعني أن هذه الوظائف يتم تشغيلها بواسطة عقدة واحدة. على الرغم من أن SUAVE عبارة عن سلسلة، إلا أن خصائص blockchain الخاصة بها ضعيفة عندما تقوم Kettle بتشغيل طلب CCR، ولن يكون هناك تشغيل على العديد من العقد ثم تحقق. السبب بسيط للغاية، ومن المؤكد أن الوصول إلى الموارد خارج السلسلة ليس مضمونًا أن يكون عاجزًا. إذن هذه مهام خارج سلسلة SUAVE، والنتائج تعتمد في الواقع على العقدة. لذلك، يجب على المطورين الانتباه إلى عنوان Kettle عند النشر (من وجهة النظر هذه، يمكن اعتبار Kettle عقدًا ذكيًا خاصًا)، ويجب أن تحمل طلبات CCR اللاحقة للمستخدم عنوان Kettle المقابل.
بالإضافة إلى ذلك، هناك مشكلة أخرى تستحق اهتمام المطورين. في شبكة الاختبار الحالية Toliman، لا يتم ضمان تشغيل الغلاية في بيئة TEE. لذلك، عند تطوير العقود الذكية على شبكة الاختبار، يجب عليك الاهتمام بحماية البيانات الخاصة وعدم تسريب بيانات خاصة حقًا.
الملخص
توفر سلسلة SUAVE قوة كافية لتطوير التطبيقات من خلال تقديم إمكانات بيئة TEE، وسيناريوهات التطبيق المحتملة كثيرة جدًا. كما أن تشغيلها البسيط والمريح عبر السلسلة يوفر مساحة كافية للخيال لتصميم Dapp.
إن تصميم Kettle لسلسلة SUAVE قادر على التعامل مع الموارد خارج السلسلة، مما يثير مشكلات التحقق والإجماع. تعتبر Dishonest Kettle مدمرة للإنترنت. كيفية التأكد من أن Kettle لا يفعل الشر، أو أنه يمكن معاقبة الشر، أو أن تكلفة فعل الشر مرتفعة بما فيه الكفاية، كلها مشاكل تحتاج إلى حل. لا يزال المطورون ينتظرون لمعرفة ما إذا كان نموذج PoA المستخدم في إجماع سلسلة SUAVE يمكنه تحمل الاعتبارات العملية.
Preview
احصل على فهم أوسع لصناعة العملات المشفرة من خلال التقارير الإعلامية، وشارك في مناقشات متعمقة مع المؤلفين والقراء الآخرين ذوي التفكير المماثل. مرحبًا بك للانضمام إلينا في مجتمع Coinlive المتنامي:https://t.me/CoinliveSG