مراجعة MetaMask Snap الفنية: تجربة التطوير وقيود القدرات والأمان وتحليل إمكانات الأعمال

متقدم12/24/2023, 8:22:48 AM
تقدم هذه المقالة الميزات المتقدمة لـ MetaMask Snap، وتستكشف كيف تسمح هذه التقنية لمحفظة MetaMask بتحقيق تطبيقات أكثر تنوعًا من خلال المكونات الإضافية. ويؤكد على كيفية اختراق قيود المحافظ التقليدية مع الحفاظ على الأمان وإطلاق العنان لإمكانات أكبر.

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

قبل بضعة أيام، أعلنت شركة ConsenSys عن طرح الإصدار التجريبي المفتوح من MetaMask Snaps Open Beta للجمهور. MetaMask Snaps هي في الأساس مكونات إضافية تعمل على توسيع إمكانيات محفظة MetaMask. هذه «Snaps» هي تطبيقات طورتها جهات خارجية يمكن تثبيتها لإضافة وظائف جديدة.

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

وقد أدرج الموقع الرسمي بالفعل 35 لقطة متاحة وأطلق متجر تطبيقات سناب: https://snaps.metamask.io/.

قائمة جزئية من اللقطات

الجانب الفني لميتاماسك سناب

إذن، كيف تبدو MetaMask Snaps من الناحية الفنية؟ ما هي قدراتها وحدودها؟ هل هي آمنة؟ كيف تبدو تجربة المطور؟ كل هذه العوامل يمكن أن تحدد الإمكانات المستقبلية لـ MetaMask Snaps.

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

بدء استخدام تطبيق ميتاماسك سناب

تثبيت ميتاماسك سناب

يمكنك عمومًا تثبيت Snaps من سوق MetaMask Snap الرسمي، أو مباشرة من موقع الويب الخاص بالمشروع. على سبيل المثال، مع UniPass، بمجرد زيارة صفحة التطبيق، سيكون هناك زر لتوصيل MetaMask الخاص بك.

يؤدي النقر فوقه إلى بدء تثبيت Snap:

استخدام ميتاماسك سناب

بمجرد التثبيت، يمكنك البدء في استخدام المنتج وميزاته. في هذه الحالة، ستقوم UniPass بإنشاء حساب عقد ذكي لك، والذي يمكنك التحكم فيه من خلال MetaMask EOA (الحساب المملوك خارجيًا).

عند بدء عملية النقل، يقوم UniPass بتشغيل نافذة Snap المنبثقة لتأكيد ما إذا كنت تريد تنفيذ العملية لمحفظة UniPass AA.

بعد التأكيد من خلال MetaMask، يمكنك متابعة المعاملة. في هذا السيناريو، يكتسب MetaMask السيطرة على محفظة UniPass AA من خلال Snap، مما يلغي الحاجة إلى UniPass لتطوير المكون الإضافي الخاص بالمحفظة. يسمح هذا أيضًا بإعداد مستخدم منخفض التكلفة عبر MetaMask.

ما هي الأفكار التي يمكننا جمعها من عملية التثبيت والاستخدام هذه؟

  1. التحكم الدقيق في الأذونات: تقدم Snaps إعدادات أذونات معقدة، تشمل اتصالات المحفظة وطلبات الشبكة والمزيد. لقد تم تصميمها باستخدام نهج «مبدأ أقل الامتيازات»، مع وضع الأمان في المقام الأول.
  2. إدارة الحزم عبر NPM: كما هو موضح بواسطة npm:@unipasswallet/unipass-snap، يعتمد Snap على NPM لإدارة الحزم والإصدارات، وقد يؤدي ذلك إلى مشكلات أمنية، والتي سنقوم بتفصيلها لاحقًا.
  3. مرونة عالية ولكن واجهة مستخدم موجزة: تتميز Snaps بأنها قابلة للتكيف بدرجة كبيرة، مما يسمح للمشاريع بتطوير وإملاء ميزاتها ومنطقها. ومع ذلك، يمكن أن تستخدم واجهة المستخدم بعض التحسين.
  4. تجربة بسيطة وموثوقة: توفر Snaps تجربة مستخدم سلسة وموثوقة، وتفي بالمعايير التجريبية ومعايير مستوى الإنتاج.

دائمًا ما يكون للأمان الأسبقية عندما يتعلق الأمر بمنتجات المحفظة. دعونا نتعمق في التصميم الأمني لـ Snaps.

هل تطبيق Snaps آمن؟

تحليل وقت تشغيل سناب كود

تعتمد Snaps على NPM، مما يعني أنها تطبيقات ويب وجافا سكريبت. كما نعلم، فإن JavaScript مرنة للغاية ولكنها عرضة لهجمات مثل XSS والتصيد الاحتيالي. إذن كيف يتعامل MetaMask Snap مع هذه التحديات؟

عند البحث، وجدنا أن MetaMask قد قامت بتمويل ودمج جافا سكريبت المتصلب من Agoric (أو Secure ECMAScript) كحل «افتراضي بالكامل» لوضع الحماية. قامت Agoric بصياغة واجهة برمجة تطبيقات تقييد جافا سكريبت وقدمت مسودة اقتراح إلى اقتراح TC-39: TC-39.

بعبارات بسيطة، تعد جافا سكريبت Hardened مجموعة فرعية أكثر أمانًا من JavaScript القياسية. من خلال تعديل بعض إمكانيات JavaScript والحد من مكالمات API، فإنها تقلل من المخاطر المختلفة. يقوم بإنشاء صندوق حماية آمن لتنفيذ التعليمات البرمجية ويتبع «مبدأ الامتياز الأقل» في تخطيط أذونات التعليمات البرمجية.

لمزيد من التفاصيل الفنية التفصيلية حول جافا سكريبت المتصلب، يرجى الرجوع إلى: https://tvcutsem.github.io/assets/HardenedJS_BlueLava2022.pdf.

اشتركت أغوريك وميتاماسك في تطوير لافا ماوات (https://github.com/LavaMoat/lavamoat) مشروع لتعزيز أمن Snaps. يعالج LavaMoat بشكل أساسي المخاطر الأمنية للتبعيات الخارجية في مشاريع JavaScript.

خضع كل من Agoric و MetaMask لاختبارات أمان الصندوق الأسود والصندوق الأبيض ونشروا تقارير أمنية مفصلة. (مزيد من التفاصيل: https://agoric.com/blog/technology/purple-teaming-how-metamask-and-agoric-hunted-bugs-to-harden-javascript). لذلك، على مستوى تنفيذ التعليمات البرمجية، لدينا سبب وجيه للاعتقاد بأن Snaps آمنة.

كود مفتوح المصدر ومدقق

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

هل هناك خطر أمني مع Snaps المُدارة عبر NPM؟

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

لا يتحكم MetaMask في إصدارات الإصدارات على منصة NPM. هناك احتمال ألا تكون التغييرات الأخيرة في الإصدار مفتوحة المصدر أو مدققة، أليس كذلك؟

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

القدرات الفنية والقيود الخاصة بـ MetaMask Snap

تم الإعلان مؤخرًا عن MetaMask Snap رسميًا، ولكنه في الواقع قيد التطوير لأكثر من أربع سنوات! تم إصدار المفهوم الأولي لـ MetaMask Snap بواسطة دان فينلي في 10 أكتوبر 2019 على موقع Medium. مقال متوسط.

يمثل تحقيق التوازن بين الأمان والمرونة والكفاءة تحديًا كبيرًا. من الواضح أن MetaMask قد استثمرت الكثير من الموارد والإعداد في هذا المسعى.

في الوقت الحالي، يتم عرض ثلاث واجهات برمجة تطبيقات رئيسية بشكل أساسي:

  1. قابلية التشغيل البيني: تسمح للمطورين بإنشاء محافظ لسلاسل أخرى استنادًا إلى MetaMask.
  2. رؤى المعاملات: تمكن المطورين من استرداد بيانات المعاملات قبل أن يبدأ المستخدم المعاملة، لتقييم المخاطر.
  3. الإشعارات: تسمح بالمراسلة المباشرة للمستخدمين عبر Snaps، على الرغم من أن هذا يبدو أنه يتطلب دعم موقع الويب ويبدو محدودًا إلى حد ما.

فيما يلي مقدمة موجزة للإمكانيات والتأثيرات المحددة التي فتحتها MetaMask Snap، لتمنحك فهمًا أكثر وضوحًا.

قدرة الإخطار

يمكن لواجهة Snap_notify عرض الإشعارات داخل MetaMask أو المتصفح. يمكن لـ Snaps إرسال رسائل مباشرة للمستخدمين من خلال هذه الواجهة، كما هو موضح في الصورة أدناه.

إمكانية إحصاءات المعاملات

عندما يتفاعل المستخدم مع عقد ذكي، يقوم MetaMask بتشغيل حدث Snap's OnTransaction. تقوم MetaMask بتمرير المعاملة الأولية غير الموقعة إلى طريقة معالج onTransaction. يمكن لـ Snaps بعد ذلك إرجاع واجهة على صفحة التأكيد الثانوية للمعاملة، وتخصيص المحتوى المعروض.

من خلال هذه الإمكانية، يمكن تحقيق ميزات مثل التدقيق الآمن لمعلومات المعاملات وعروض المعلومات الموسعة.

واجهة الحوار وإمكانيات الواجهة المخصصة

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

من خلال Dialog، ستتمكن من تخصيص واجهات وعمليات تفاعلية بسيطة للتكامل مع dApp الخاص بك.

ما الذي لا يمكن لـ MetaMask Snap تحقيقه في الوقت الحالي؟

نظرًا لأسباب أمنية، لا تدعم Snap حاليًا أطر الواجهة الأمامية التابعة لجهات خارجية وتوفر فقط واجهة مستخدم محدودة. هنا، ما زلنا نستخدم Insight كمثال، حيث نعرض مكتبة مكونات واجهة المستخدم المتاحة للمطورين.

كما هو موضح في الصورة، تتضمن الميزات الحالية العنوان (نص كبير)، والنص (نص صغير)، واللوحة (بطاقة أحادية الاستخدام)، والمقسم، وقابل للنسخ (انقر للنسخ)، ومجموعة فرعية من ميزات Markdown (بالخط العريض والمائل). لذلك، تبدو الإمكانات التفاعلية غير قابلة للتحقيق مؤقتًا، ولا يمكن استخدام HTML المضمن للتفاعلات. ومع ذلك، بعد طرح سؤال في Discord الرسمي، ذكروا أن هذه القيود لأسباب أمنية وقد يتم تخفيفها في الإصدارات القادمة.

علاوة على ذلك، ولأسباب أمنية، يتم دعم الطلبات الخارجية فقط عبر طريقة Fetch ولا تدعم بروتوكولات الطلب الإضافية مثل WebSocket. نظرًا لقيود الأمان والقدرة والخصوصية، لا يمكن أيضًا الوصول إلى معلومات العميل، مثل عنوان URL الحالي الذي أدى إلى تشغيل Snap، مما يجعل من الصعب تنفيذ مجموعة واسعة من الميزات.

تنبع معظم هذه القضايا من مخاوف أمنية. نعتقد أنه مع التحقق من الأمان بمرور الوقت، سيتم منح المزيد من الأذونات.

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

في عام 2019، توقعت MetaMask بالفعل مشهد السوق الحالي مع العديد من السلاسل العامة وحفلات المشاريع ومتطلبات المحفظة المخصصة. بدلاً من قيام كل مشروع بتطوير المكون الإضافي الخاص به واضطرار المستخدمين إلى تثبيت مكونات إضافية متعددة، يكون تطويره أكثر كفاءة استنادًا إلى MetaMask Snap. في الدفعة الأولى من Snaps، رأينا محافظًا من أنظمة بيئية أخرى غير EVM، مثل Sui Wallet و Solana Wallet و Arweave Wallet. نظرًا لقاعدة المستخدمين الحالية، لا بد أن تؤثر MetaMask Snap بشكل كبير على مشهد المحفظة.

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

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

تتمحور Snaps بشكل كبير حول المطور. مع واجهة برمجة التطبيقات المفتوحة، كيف هي تجربة المطور؟ دعنا نتعمق في إنشاء Snap لمعرفة ذلك.

إنشاء لقطة للاختبار

عملية التفكير

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

  1. ما إذا كان قد تم استبدال عقد المعاملة بموقع تصيد.
  2. ما إذا كان عقد المعاملة قابلاً للترقية.
  3. ما إذا كان العقد الذكي قد تم نشره حديثًا ولم يتم التحقق منه من قبل الكثيرين.
  4. ما إذا كان عقد المعاملة مفتوح المصدر.

بالنسبة للمستخدمين العاديين، فإن توقع منهم مراجعة مدونة صلابة العقود قبل كل عملية يعد أمرًا صعبًا. يعد هذا الموقف مثاليًا لميزة Transaction Insight لتحليل العقود الذكية، مثل استخدام الذكاء الاصطناعي للتدقيق الأمني الأولي، وربما تصفية 80٪ من هجمات التصيد الاحتيالي الأساسية.

إعداد بيئة التطوير

تركيب المحفظة

أولاً، قم بتثبيت MetaMask Flask.

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

يوصى بتعطيل محفظة MetaMask العادية ومحافظ المتصفح الأخرى مؤقتًا بعد تثبيت أو إنشاء ملف تعريف Chrome جديد لتجنب التعارضات.

إنشاء الحساب

بعد تثبيت المحفظة، قم بإنشاء محفظة جديدة تمامًا مثل محفظة MetaMask العادية. هذه محفظة تجريبية، لذا لا تستورد محفظتك ذات الاستخدام اليومي.

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

لتهيئة Snap استنادًا إلى قالب، اتبع الوثائق الرسمية. أولاً، استخدم @metamask/create-snap CLI لإنشاء مشروع سناب جديد. في الوقت نفسه، سنقوم بالتهيئة باستخدام النموذج الرسمي:

yarn create @metamask/snap المعاملات والرؤى والسناب & & cd المعاملات والرؤى والسناب

هيكل ملف سناب

ملفات Snap الرئيسية موجودة. /الحزم/المفاجئة. بنية الدليل هي:

ملف تكوين سناب موجود في snap.mainfest.json، والجسم الرئيسي لـ Snap موجود . /src/index.ts، وهو موجز للغاية.

تمكين الأذونات

أولاً، قم بتمكين الأذونات. أضف الأسطر الثلاثة التالية إلى snap.mainfest.json:

كود JSONCopy

«الأذونات الأولية»: {

«الوقف: البصيرة في المعاملات»: {}،//نظرة ثاقبة للمعاملات

«الوقف: مزود الإيثيريوم»: {}،//الوصول إلى RPC

«الوقف: الوصول إلى الشبكة»: {}//

في ملف البيان، يمكنك أيضًا تحديث الوصف والاسم المقترح لتعديل وصف المشروع واسمه.

جلب المعاملات

بالنسبة لهذا العرض التوضيحي، كل ما هو مطلوب هو تعديل ملف index.ts لإكمال جميع الوظائف. يوجد أدناه مقتطف شفرة مبسط. للحصول على الكود الكامل القابل للتشغيل، يرجى زيارة: https://github.com/LidamaoHub/insights.

كود النسخ

استيراد { OnTransactionHandler, OnRpcRequestHandler } من '@metamask/snaps-types'؛

استيراد { heading, panel, text, copyable, divider } من '@metamask/snaps-ui'؛

تصدير const عند المعاملة: onTransactionHandler = async ({ transaction }) = > {

//تتضمن المعاملة قيمًا مثل (عنوان العقد) والبيانات (بيانات التفاعل)

//رمز مثال لجلب معلومات التدقيق للعقد أدناه

معلومات ثابتة = انتظر الجلب (http://contract-info.audit.dev/?address=${transaction.to}

//يوجد أدناه نموذج لرمز واجهة المستخدم

إرجاع {

المحتوى: [

 نص (

 `${info.riskList.length} عنصر المخاطرة`،

 )،

 العنوان (`${info.riskList.length ? 'Risk List' : ''}`)،

 ... معلومات. قائمة المخاطر. الخريطة (البند, i) = نص > (`${i + 1} ${item.text}`))،

 مقسم ()،

 نص (

 «مزيد من معلومات التدقيق من عنوان url التالي»،

 )،

 قابل للنسخ (

 `https://contract-info.audit.dev/mm${info.token}`،

 )

]

لمزيد من الميزات المتعمقة، راجع وثائق مطور MetaMask Snap.

بعد التثبيت، ستعرض كل معاملة تنبيهات مخاطر مماثلة:

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

دعم المطور

إذا تمكنت من تنفيذ المثال أعلاه بنجاح، تهانينا، فأنت مطور مبتدئ مؤهل لـ Snap!

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

يمكن لأي مشروع يثري نظام MetaMask البيئي التقدم بطلب للحصول على منحة MetaMask الرسمية من MetaMask Grants DAO. لمزيد من المعلومات، يرجى زيارة https://metamaskgrants.org/.

من الجدير بالذكر أن LXDAO تتشرف بالتقدم للحصول على منحة من MetaMask وتلقيها هذا العام، وشاركت بنشاط في تطوير المشاريع ذات الصلة، مما ساهم في نظام MetaMask البيئي!

الاستنتاج

لقد قمنا بتشريح ماهية Snap من منظور تقني واعتبارات الأمان والقيود وتجربة المطور. باختصار:

  • تشبه اللقطات برامج WeChat Mini، مما يفتح مجالًا أوسع من الاحتمالات لـ MetaMask.
  • الأمان موثوق نسبيًا. يتم تشغيل الكود في بيئة وضع الحماية المقيدة. يجب أن تكون الشفرة مفتوحة المصدر ومدققة. قام الفريق الرسمي بإعداد قائمة بيضاء للتثبيت للحصول على إذن التثبيت.
  • نظرًا للمخاوف الأمنية، فإن سطح API الحالي محدود إلى حد ما. ومع ذلك، فإنه لا يزال يسمح بمجموعة واسعة من اللقطات الخيالية.
  • مع أربع سنوات من التحسين والاختبار في العالم الحقيقي، تعد تجربة المطور من الدرجة الأولى. ومع ذلك، نظرًا للاحتياطات الأمنية المضمنة، بما في ذلك آلية القائمة البيضاء وعمليات التدقيق الإلزامية، لا تتوقع أن يغمر طوفان Snaps السوق في أي وقت قريب. ولكن هذا أمر مفهوم، فقد بدأت برامج WeChat Mini ببطء مع واجهات برمجة تطبيقات محدودة جدًا، وانفجرت منذ عام 2018، والآن هناك أكثر من 450 مليون DAU و 7 ملايين برنامج صغير.

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

من خلال الاستفادة من قاعدة مستخدمي MetaMask الضخمة، قد يجد المطورون المستقلون أيضًا فرصًا فريدة. دعونا نبقي أعيننا متيقظين للابتكارات التالية التي ستغير قواعد اللعبة والتي ستجلبها Snaps إلى الطاولة.

أخيرًا، شكرًا لك على مقالتك. أعتقد أنه سيساهم بشكل كبير في زيادة الوعي حول الوضع الحالي لـ MetaMask Snaps.

يرجى الاستمرار في متابعتنا على تويتر: < a href= "https://twitter.com/LXDAO_Official" " > @lxdao_official. سنطرح المزيد من المحتوى المرتبط بـ MetaMask Snap مثل ورش العمل، لذا ترقبوا!

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

  1. تمت إعادة طباعة هذه المقالة من [medium]. جميع حقوق التأليف والنشر تنتمي إلى المؤلف الأصلي [LXDAO]. إذا كانت هناك اعتراضات على إعادة الطبع هذه، فيرجى الاتصال بفريق Gate Learn(gatelearn@gate.io)، وسيتعاملون معها على الفور.
  2. إخلاء المسؤولية: الآراء ووجهات النظر الواردة في هذه المقالة هي فقط آراء المؤلف ولا تشكل أي نصيحة استثمارية.
  3. يقوم فريق Gate Learn بترجمة المقالة إلى لغات أخرى. ما لم يُذكر، يُحظر نسخ المقالات المترجمة أو توزيعها أو سرقتها.

مراجعة MetaMask Snap الفنية: تجربة التطوير وقيود القدرات والأمان وتحليل إمكانات الأعمال

متقدم12/24/2023, 8:22:48 AM
تقدم هذه المقالة الميزات المتقدمة لـ MetaMask Snap، وتستكشف كيف تسمح هذه التقنية لمحفظة MetaMask بتحقيق تطبيقات أكثر تنوعًا من خلال المكونات الإضافية. ويؤكد على كيفية اختراق قيود المحافظ التقليدية مع الحفاظ على الأمان وإطلاق العنان لإمكانات أكبر.

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

قبل بضعة أيام، أعلنت شركة ConsenSys عن طرح الإصدار التجريبي المفتوح من MetaMask Snaps Open Beta للجمهور. MetaMask Snaps هي في الأساس مكونات إضافية تعمل على توسيع إمكانيات محفظة MetaMask. هذه «Snaps» هي تطبيقات طورتها جهات خارجية يمكن تثبيتها لإضافة وظائف جديدة.

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

وقد أدرج الموقع الرسمي بالفعل 35 لقطة متاحة وأطلق متجر تطبيقات سناب: https://snaps.metamask.io/.

قائمة جزئية من اللقطات

الجانب الفني لميتاماسك سناب

إذن، كيف تبدو MetaMask Snaps من الناحية الفنية؟ ما هي قدراتها وحدودها؟ هل هي آمنة؟ كيف تبدو تجربة المطور؟ كل هذه العوامل يمكن أن تحدد الإمكانات المستقبلية لـ MetaMask Snaps.

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

بدء استخدام تطبيق ميتاماسك سناب

تثبيت ميتاماسك سناب

يمكنك عمومًا تثبيت Snaps من سوق MetaMask Snap الرسمي، أو مباشرة من موقع الويب الخاص بالمشروع. على سبيل المثال، مع UniPass، بمجرد زيارة صفحة التطبيق، سيكون هناك زر لتوصيل MetaMask الخاص بك.

يؤدي النقر فوقه إلى بدء تثبيت Snap:

استخدام ميتاماسك سناب

بمجرد التثبيت، يمكنك البدء في استخدام المنتج وميزاته. في هذه الحالة، ستقوم UniPass بإنشاء حساب عقد ذكي لك، والذي يمكنك التحكم فيه من خلال MetaMask EOA (الحساب المملوك خارجيًا).

عند بدء عملية النقل، يقوم UniPass بتشغيل نافذة Snap المنبثقة لتأكيد ما إذا كنت تريد تنفيذ العملية لمحفظة UniPass AA.

بعد التأكيد من خلال MetaMask، يمكنك متابعة المعاملة. في هذا السيناريو، يكتسب MetaMask السيطرة على محفظة UniPass AA من خلال Snap، مما يلغي الحاجة إلى UniPass لتطوير المكون الإضافي الخاص بالمحفظة. يسمح هذا أيضًا بإعداد مستخدم منخفض التكلفة عبر MetaMask.

ما هي الأفكار التي يمكننا جمعها من عملية التثبيت والاستخدام هذه؟

  1. التحكم الدقيق في الأذونات: تقدم Snaps إعدادات أذونات معقدة، تشمل اتصالات المحفظة وطلبات الشبكة والمزيد. لقد تم تصميمها باستخدام نهج «مبدأ أقل الامتيازات»، مع وضع الأمان في المقام الأول.
  2. إدارة الحزم عبر NPM: كما هو موضح بواسطة npm:@unipasswallet/unipass-snap، يعتمد Snap على NPM لإدارة الحزم والإصدارات، وقد يؤدي ذلك إلى مشكلات أمنية، والتي سنقوم بتفصيلها لاحقًا.
  3. مرونة عالية ولكن واجهة مستخدم موجزة: تتميز Snaps بأنها قابلة للتكيف بدرجة كبيرة، مما يسمح للمشاريع بتطوير وإملاء ميزاتها ومنطقها. ومع ذلك، يمكن أن تستخدم واجهة المستخدم بعض التحسين.
  4. تجربة بسيطة وموثوقة: توفر Snaps تجربة مستخدم سلسة وموثوقة، وتفي بالمعايير التجريبية ومعايير مستوى الإنتاج.

دائمًا ما يكون للأمان الأسبقية عندما يتعلق الأمر بمنتجات المحفظة. دعونا نتعمق في التصميم الأمني لـ Snaps.

هل تطبيق Snaps آمن؟

تحليل وقت تشغيل سناب كود

تعتمد Snaps على NPM، مما يعني أنها تطبيقات ويب وجافا سكريبت. كما نعلم، فإن JavaScript مرنة للغاية ولكنها عرضة لهجمات مثل XSS والتصيد الاحتيالي. إذن كيف يتعامل MetaMask Snap مع هذه التحديات؟

عند البحث، وجدنا أن MetaMask قد قامت بتمويل ودمج جافا سكريبت المتصلب من Agoric (أو Secure ECMAScript) كحل «افتراضي بالكامل» لوضع الحماية. قامت Agoric بصياغة واجهة برمجة تطبيقات تقييد جافا سكريبت وقدمت مسودة اقتراح إلى اقتراح TC-39: TC-39.

بعبارات بسيطة، تعد جافا سكريبت Hardened مجموعة فرعية أكثر أمانًا من JavaScript القياسية. من خلال تعديل بعض إمكانيات JavaScript والحد من مكالمات API، فإنها تقلل من المخاطر المختلفة. يقوم بإنشاء صندوق حماية آمن لتنفيذ التعليمات البرمجية ويتبع «مبدأ الامتياز الأقل» في تخطيط أذونات التعليمات البرمجية.

لمزيد من التفاصيل الفنية التفصيلية حول جافا سكريبت المتصلب، يرجى الرجوع إلى: https://tvcutsem.github.io/assets/HardenedJS_BlueLava2022.pdf.

اشتركت أغوريك وميتاماسك في تطوير لافا ماوات (https://github.com/LavaMoat/lavamoat) مشروع لتعزيز أمن Snaps. يعالج LavaMoat بشكل أساسي المخاطر الأمنية للتبعيات الخارجية في مشاريع JavaScript.

خضع كل من Agoric و MetaMask لاختبارات أمان الصندوق الأسود والصندوق الأبيض ونشروا تقارير أمنية مفصلة. (مزيد من التفاصيل: https://agoric.com/blog/technology/purple-teaming-how-metamask-and-agoric-hunted-bugs-to-harden-javascript). لذلك، على مستوى تنفيذ التعليمات البرمجية، لدينا سبب وجيه للاعتقاد بأن Snaps آمنة.

كود مفتوح المصدر ومدقق

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

هل هناك خطر أمني مع Snaps المُدارة عبر NPM؟

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

لا يتحكم MetaMask في إصدارات الإصدارات على منصة NPM. هناك احتمال ألا تكون التغييرات الأخيرة في الإصدار مفتوحة المصدر أو مدققة، أليس كذلك؟

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

القدرات الفنية والقيود الخاصة بـ MetaMask Snap

تم الإعلان مؤخرًا عن MetaMask Snap رسميًا، ولكنه في الواقع قيد التطوير لأكثر من أربع سنوات! تم إصدار المفهوم الأولي لـ MetaMask Snap بواسطة دان فينلي في 10 أكتوبر 2019 على موقع Medium. مقال متوسط.

يمثل تحقيق التوازن بين الأمان والمرونة والكفاءة تحديًا كبيرًا. من الواضح أن MetaMask قد استثمرت الكثير من الموارد والإعداد في هذا المسعى.

في الوقت الحالي، يتم عرض ثلاث واجهات برمجة تطبيقات رئيسية بشكل أساسي:

  1. قابلية التشغيل البيني: تسمح للمطورين بإنشاء محافظ لسلاسل أخرى استنادًا إلى MetaMask.
  2. رؤى المعاملات: تمكن المطورين من استرداد بيانات المعاملات قبل أن يبدأ المستخدم المعاملة، لتقييم المخاطر.
  3. الإشعارات: تسمح بالمراسلة المباشرة للمستخدمين عبر Snaps، على الرغم من أن هذا يبدو أنه يتطلب دعم موقع الويب ويبدو محدودًا إلى حد ما.

فيما يلي مقدمة موجزة للإمكانيات والتأثيرات المحددة التي فتحتها MetaMask Snap، لتمنحك فهمًا أكثر وضوحًا.

قدرة الإخطار

يمكن لواجهة Snap_notify عرض الإشعارات داخل MetaMask أو المتصفح. يمكن لـ Snaps إرسال رسائل مباشرة للمستخدمين من خلال هذه الواجهة، كما هو موضح في الصورة أدناه.

إمكانية إحصاءات المعاملات

عندما يتفاعل المستخدم مع عقد ذكي، يقوم MetaMask بتشغيل حدث Snap's OnTransaction. تقوم MetaMask بتمرير المعاملة الأولية غير الموقعة إلى طريقة معالج onTransaction. يمكن لـ Snaps بعد ذلك إرجاع واجهة على صفحة التأكيد الثانوية للمعاملة، وتخصيص المحتوى المعروض.

من خلال هذه الإمكانية، يمكن تحقيق ميزات مثل التدقيق الآمن لمعلومات المعاملات وعروض المعلومات الموسعة.

واجهة الحوار وإمكانيات الواجهة المخصصة

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

من خلال Dialog، ستتمكن من تخصيص واجهات وعمليات تفاعلية بسيطة للتكامل مع dApp الخاص بك.

ما الذي لا يمكن لـ MetaMask Snap تحقيقه في الوقت الحالي؟

نظرًا لأسباب أمنية، لا تدعم Snap حاليًا أطر الواجهة الأمامية التابعة لجهات خارجية وتوفر فقط واجهة مستخدم محدودة. هنا، ما زلنا نستخدم Insight كمثال، حيث نعرض مكتبة مكونات واجهة المستخدم المتاحة للمطورين.

كما هو موضح في الصورة، تتضمن الميزات الحالية العنوان (نص كبير)، والنص (نص صغير)، واللوحة (بطاقة أحادية الاستخدام)، والمقسم، وقابل للنسخ (انقر للنسخ)، ومجموعة فرعية من ميزات Markdown (بالخط العريض والمائل). لذلك، تبدو الإمكانات التفاعلية غير قابلة للتحقيق مؤقتًا، ولا يمكن استخدام HTML المضمن للتفاعلات. ومع ذلك، بعد طرح سؤال في Discord الرسمي، ذكروا أن هذه القيود لأسباب أمنية وقد يتم تخفيفها في الإصدارات القادمة.

علاوة على ذلك، ولأسباب أمنية، يتم دعم الطلبات الخارجية فقط عبر طريقة Fetch ولا تدعم بروتوكولات الطلب الإضافية مثل WebSocket. نظرًا لقيود الأمان والقدرة والخصوصية، لا يمكن أيضًا الوصول إلى معلومات العميل، مثل عنوان URL الحالي الذي أدى إلى تشغيل Snap، مما يجعل من الصعب تنفيذ مجموعة واسعة من الميزات.

تنبع معظم هذه القضايا من مخاوف أمنية. نعتقد أنه مع التحقق من الأمان بمرور الوقت، سيتم منح المزيد من الأذونات.

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

في عام 2019، توقعت MetaMask بالفعل مشهد السوق الحالي مع العديد من السلاسل العامة وحفلات المشاريع ومتطلبات المحفظة المخصصة. بدلاً من قيام كل مشروع بتطوير المكون الإضافي الخاص به واضطرار المستخدمين إلى تثبيت مكونات إضافية متعددة، يكون تطويره أكثر كفاءة استنادًا إلى MetaMask Snap. في الدفعة الأولى من Snaps، رأينا محافظًا من أنظمة بيئية أخرى غير EVM، مثل Sui Wallet و Solana Wallet و Arweave Wallet. نظرًا لقاعدة المستخدمين الحالية، لا بد أن تؤثر MetaMask Snap بشكل كبير على مشهد المحفظة.

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

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

تتمحور Snaps بشكل كبير حول المطور. مع واجهة برمجة التطبيقات المفتوحة، كيف هي تجربة المطور؟ دعنا نتعمق في إنشاء Snap لمعرفة ذلك.

إنشاء لقطة للاختبار

عملية التفكير

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

  1. ما إذا كان قد تم استبدال عقد المعاملة بموقع تصيد.
  2. ما إذا كان عقد المعاملة قابلاً للترقية.
  3. ما إذا كان العقد الذكي قد تم نشره حديثًا ولم يتم التحقق منه من قبل الكثيرين.
  4. ما إذا كان عقد المعاملة مفتوح المصدر.

بالنسبة للمستخدمين العاديين، فإن توقع منهم مراجعة مدونة صلابة العقود قبل كل عملية يعد أمرًا صعبًا. يعد هذا الموقف مثاليًا لميزة Transaction Insight لتحليل العقود الذكية، مثل استخدام الذكاء الاصطناعي للتدقيق الأمني الأولي، وربما تصفية 80٪ من هجمات التصيد الاحتيالي الأساسية.

إعداد بيئة التطوير

تركيب المحفظة

أولاً، قم بتثبيت MetaMask Flask.

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

يوصى بتعطيل محفظة MetaMask العادية ومحافظ المتصفح الأخرى مؤقتًا بعد تثبيت أو إنشاء ملف تعريف Chrome جديد لتجنب التعارضات.

إنشاء الحساب

بعد تثبيت المحفظة، قم بإنشاء محفظة جديدة تمامًا مثل محفظة MetaMask العادية. هذه محفظة تجريبية، لذا لا تستورد محفظتك ذات الاستخدام اليومي.

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

لتهيئة Snap استنادًا إلى قالب، اتبع الوثائق الرسمية. أولاً، استخدم @metamask/create-snap CLI لإنشاء مشروع سناب جديد. في الوقت نفسه، سنقوم بالتهيئة باستخدام النموذج الرسمي:

yarn create @metamask/snap المعاملات والرؤى والسناب & & cd المعاملات والرؤى والسناب

هيكل ملف سناب

ملفات Snap الرئيسية موجودة. /الحزم/المفاجئة. بنية الدليل هي:

ملف تكوين سناب موجود في snap.mainfest.json، والجسم الرئيسي لـ Snap موجود . /src/index.ts، وهو موجز للغاية.

تمكين الأذونات

أولاً، قم بتمكين الأذونات. أضف الأسطر الثلاثة التالية إلى snap.mainfest.json:

كود JSONCopy

«الأذونات الأولية»: {

«الوقف: البصيرة في المعاملات»: {}،//نظرة ثاقبة للمعاملات

«الوقف: مزود الإيثيريوم»: {}،//الوصول إلى RPC

«الوقف: الوصول إلى الشبكة»: {}//

في ملف البيان، يمكنك أيضًا تحديث الوصف والاسم المقترح لتعديل وصف المشروع واسمه.

جلب المعاملات

بالنسبة لهذا العرض التوضيحي، كل ما هو مطلوب هو تعديل ملف index.ts لإكمال جميع الوظائف. يوجد أدناه مقتطف شفرة مبسط. للحصول على الكود الكامل القابل للتشغيل، يرجى زيارة: https://github.com/LidamaoHub/insights.

كود النسخ

استيراد { OnTransactionHandler, OnRpcRequestHandler } من '@metamask/snaps-types'؛

استيراد { heading, panel, text, copyable, divider } من '@metamask/snaps-ui'؛

تصدير const عند المعاملة: onTransactionHandler = async ({ transaction }) = > {

//تتضمن المعاملة قيمًا مثل (عنوان العقد) والبيانات (بيانات التفاعل)

//رمز مثال لجلب معلومات التدقيق للعقد أدناه

معلومات ثابتة = انتظر الجلب (http://contract-info.audit.dev/?address=${transaction.to}

//يوجد أدناه نموذج لرمز واجهة المستخدم

إرجاع {

المحتوى: [

 نص (

 `${info.riskList.length} عنصر المخاطرة`،

 )،

 العنوان (`${info.riskList.length ? 'Risk List' : ''}`)،

 ... معلومات. قائمة المخاطر. الخريطة (البند, i) = نص > (`${i + 1} ${item.text}`))،

 مقسم ()،

 نص (

 «مزيد من معلومات التدقيق من عنوان url التالي»،

 )،

 قابل للنسخ (

 `https://contract-info.audit.dev/mm${info.token}`،

 )

]

لمزيد من الميزات المتعمقة، راجع وثائق مطور MetaMask Snap.

بعد التثبيت، ستعرض كل معاملة تنبيهات مخاطر مماثلة:

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

دعم المطور

إذا تمكنت من تنفيذ المثال أعلاه بنجاح، تهانينا، فأنت مطور مبتدئ مؤهل لـ Snap!

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

يمكن لأي مشروع يثري نظام MetaMask البيئي التقدم بطلب للحصول على منحة MetaMask الرسمية من MetaMask Grants DAO. لمزيد من المعلومات، يرجى زيارة https://metamaskgrants.org/.

من الجدير بالذكر أن LXDAO تتشرف بالتقدم للحصول على منحة من MetaMask وتلقيها هذا العام، وشاركت بنشاط في تطوير المشاريع ذات الصلة، مما ساهم في نظام MetaMask البيئي!

الاستنتاج

لقد قمنا بتشريح ماهية Snap من منظور تقني واعتبارات الأمان والقيود وتجربة المطور. باختصار:

  • تشبه اللقطات برامج WeChat Mini، مما يفتح مجالًا أوسع من الاحتمالات لـ MetaMask.
  • الأمان موثوق نسبيًا. يتم تشغيل الكود في بيئة وضع الحماية المقيدة. يجب أن تكون الشفرة مفتوحة المصدر ومدققة. قام الفريق الرسمي بإعداد قائمة بيضاء للتثبيت للحصول على إذن التثبيت.
  • نظرًا للمخاوف الأمنية، فإن سطح API الحالي محدود إلى حد ما. ومع ذلك، فإنه لا يزال يسمح بمجموعة واسعة من اللقطات الخيالية.
  • مع أربع سنوات من التحسين والاختبار في العالم الحقيقي، تعد تجربة المطور من الدرجة الأولى. ومع ذلك، نظرًا للاحتياطات الأمنية المضمنة، بما في ذلك آلية القائمة البيضاء وعمليات التدقيق الإلزامية، لا تتوقع أن يغمر طوفان Snaps السوق في أي وقت قريب. ولكن هذا أمر مفهوم، فقد بدأت برامج WeChat Mini ببطء مع واجهات برمجة تطبيقات محدودة جدًا، وانفجرت منذ عام 2018، والآن هناك أكثر من 450 مليون DAU و 7 ملايين برنامج صغير.

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

من خلال الاستفادة من قاعدة مستخدمي MetaMask الضخمة، قد يجد المطورون المستقلون أيضًا فرصًا فريدة. دعونا نبقي أعيننا متيقظين للابتكارات التالية التي ستغير قواعد اللعبة والتي ستجلبها Snaps إلى الطاولة.

أخيرًا، شكرًا لك على مقالتك. أعتقد أنه سيساهم بشكل كبير في زيادة الوعي حول الوضع الحالي لـ MetaMask Snaps.

يرجى الاستمرار في متابعتنا على تويتر: < a href= "https://twitter.com/LXDAO_Official" " > @lxdao_official. سنطرح المزيد من المحتوى المرتبط بـ MetaMask Snap مثل ورش العمل، لذا ترقبوا!

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

  1. تمت إعادة طباعة هذه المقالة من [medium]. جميع حقوق التأليف والنشر تنتمي إلى المؤلف الأصلي [LXDAO]. إذا كانت هناك اعتراضات على إعادة الطبع هذه، فيرجى الاتصال بفريق Gate Learn(gatelearn@gate.io)، وسيتعاملون معها على الفور.
  2. إخلاء المسؤولية: الآراء ووجهات النظر الواردة في هذه المقالة هي فقط آراء المؤلف ولا تشكل أي نصيحة استثمارية.
  3. يقوم فريق Gate Learn بترجمة المقالة إلى لغات أخرى. ما لم يُذكر، يُحظر نسخ المقالات المترجمة أو توزيعها أو سرقتها.
เริ่มตอนนี้
สมัครและรับรางวัล
$100