إحدى السمات المميزة لـ Web3 هي تزويد المستخدمين بالتحكم الكامل في الخصوصية وكيفية تفاعلهم مع منصاتها. تعرف على كيفية إدارة الموافقات والأذونات في MetaMask.

حتى لو كانت تجربتك في التفاعل مع سلاسل الكتل مثل Ethereum مقتصرة على إرسال معاملات بسيطة بين المحافظ، فستكون قد وافقت على معاملتك أو سمحت بها أو وقعت عليها. هذا يعني ببساطة أنك تؤكد تقديمه إلى blockchain.

تنطبق هذه العملية نفسها بالتساوي على التفاعل مع التطبيقات اللامركزية في Web3: هناك الكثير مما يمكن الموافقة عليه والموافقة عليه والسماح به. ولكن ما حقيقة موافقة MetaMask؟

لكسر هذا السؤال إلى أجزاء، سنحتاج أولًا إلى تغطية بعض الجوانب الأساسية للتشفير.

المفاتيح والتشفير: ما المقصود بالموافقة (approval)؟

كل نشاطك في عالم العملات المشفرة يعتمد على تشفير مفاتيح عامة. وبشكل أساسي، تمتلك كل محفظة «مفتاحًا» عامًا ومفتاحًا خاصًا مطابقًا يتم توليده عند إنشاء المحفظة. تخيّل بابًا يتطلب منك فتح مزلاج وقفل به وتحريكه للدخول، مع وجود مفتاح مختلف لكل شخص. امتلاك مفتاح واحد لا يفيدك — تحتاج إلى الزوج.

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

  1. أنت تقرر إرسال الرموز إلى جهة اتصال.

  2. كما تعلم، عنوان محفظة المستلم الذي تعرفه، أنت تمتلك مفتاحه العام — والأول هو ببساطة نسخة مُهشّة (مشفّرة) من الأخير. يُستخدم المفتاح العام لتشفير المعاملة.

  3. يستلم المستلم، صاحب المفتاح الخاص، المعاملة. وبما أن مفاتيحهم متطابقة معًا، لا يمكن إلا للمفتاح الخاص المقابل — الذي يمتلكه المستلم وحده — أن يفك تشفير المعاملة المرسلة من مفتاحه العام.

حتى الآن، كل شيء على ما يرام: لقد حددنا كيف تتفاعل أزواج المفاتيح الخاصة والعامة لدعم معاملات البلوك تشين. لكن لتطبيق هذه المعرفة على الموافقات/التواقيع، نقلب أدوار المفاتيح: بدلًا من ذلك، يقوم المُرسِل بتشفير الرسالة بمفتاحه الخاص. وبما أن الآخرين يستطيعون بسهولة معرفة المفتاح العام للمرسل (عنوان محفظته)، يمكن للمفتاحين معًا فك تشفير الرسالة والتحقق من هوية المُرسِل. لن تُظهر محتويات الرسالة إلا مجموعة المفاتيح المتطابقة، وهذا يعني أنه لا يمكن لأحد أن ينازع في مصدرها.

إن “طباعة” نوع من التوقيع على كل معاملة يضمن عدم القابلية للتلاعب، بحيث لا يستطيع أي شخص غيرك — صاحب المفتاح الخاص لديك — انتحال شخصيتك بشكل احتيالي.

أذونات الـ dapp

أول نوعين رئيسيين من الموافقات ستواجههما هو توصيل محفظتك بـ dapp لأول مرة — سواء كان DeFi أو خدمة مثل Etherscan أو سوقًا لشراء وبيع NFTs.

يتضمن ذلك منح الـ dapp إذنًا لاسترداد عنوان محفظتك، وهو شرط مسبق للتفاعل مع المنصة. وهذا أيضًا يوضح لماذا سترى الأمر مذكورًا على أنه «إذن» أو «أذونات»؛ فهذه أسماء تصف بالضبط ما تفعله. وفي بعض الحالات، تطلب dapps منك منح الإذن تلقائيًا؛ وفي حالات أخرى يلزمك النقر على الأزرار المكتوب عليها «connect» أو ما شابه.

منحك الإذن سيبدو، في حالتنا، شيئًا مثل هذا:

موافقة الرمز

سواء كنت مستخدمًا متمرسًا في عالم العملات المشفرة أو مبتدئًا تمامًا، للتفاعل مع أي عقد ذكي — من النوع الذي يشغّل dapps (بما في ذلك DeFi وألعاب البلوك تشين وشراء NFTs) — ستحتاج إلى الموافقة على وصوله إلى رموزك.

تُسمى هذه العملية بأسماء مختلفة، وبدون مفاجأة إلى حد ما، مثل «موافقة الرمز» (token approval). ما تقوم به هنا هو:

  1. السماح للعقد الذكي بالوصول إلى رصيد الرمز الخاص بك. اعتبر هذا «مرحلة العقد الذكي». سيشير MetaMask بوضوح في هذه النقطة إلى مقدار الوصول الذي ستتنازل عنه: قد تحدد بعض الـ dapps كمية محدودة من الرموز، بينما يطلب البعض الآخر وصولًا غير محدود.

  2. تأكيد أنك تريد إتمام المعاملة المعنية: أي «مرحلة البلوك تشين»، حيث تسمح للعقد الذكي بإرسال المعاملة إلى الشبكة نيابةً عنك.

لنفترض أنك تريد إجراء مقايضة للرموز على Uniswap، أكبر بورصة لامركزية (DEX) من حيث حجم التداول. عندما تبدأ مقايضة لأول مرة ضمن زوج رمزي، سيُطلب منك الموافقة على العقود الذكية الخاصة بزوج ERC-20 الذي تتداول به (لكن ليس على ETH نفسه، لأن ETH لا يحتاج إلى موافقة). ورغم أن ذلك يحدث فقط في المرة الأولى التي تتداول فيها ذلك الزوج، فإن الخطوة التالية — أي الخطوة الثانية أعلاه — ستكون مطلوبة كل مرة، وهذا يعني أن بروتوكولات Uniswap ستنفّذ تداولك عند الطلب.

ستشبه هذه العملية ما يلي:

  • أولًا، ستطلب المنصة منك الموافقة على الرمز. اضغط على الطلب وستبدأ عملية MetaMask فورًا.

  • سيعرض لك MetaMask عنوان عقد الرمز الخاص بالمعاملة (contract address)، مؤكّدًا أنه يطلب القدرة على الوصول إلى أموالك وتحريكها. وللاطمئنان لأنك تمنح الإذن للعقد الصحيح، يجدر بك مقارنة عنوان الرمز بما هو مذكور على موقع الـ dapp — وغالبًا ستجده في مركز المساعدة أو قاعدة المعرفة أو الوثائق (docs). لديك أيضًا خيار تحديد إلى أي مدى تريد أن يصل هذا الإذن؛ للقيام بذلك، اضغط على «تعديل الإذن» (Edit Permission).

  • يتيح لك هذا الخيار رؤية مقدار الوصول الذي تسمح به بدقة. في هذه الحالة، تريد Uniswap وصولًا إلى كمية شبه غير محدودة من stETH (1.1659)، لكن يمكننا وضع حد لهذا الإذن إذا لزم الأمر باستخدام حقل «حد الصرف المخصص» (Custom Spend Limit).

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

يأتي طلب التداول نفسه حيث يتدخل زوج مفاتيحك: أنت تُوقّع على المعاملة باستخدام مفتاحك الخاص. تخيّل التوقيع على الخط المنقّط بالقلم؛ لكن مع تشفير المفاتيح العامة، فإن خطر الاحتيال في الهوية شبه معدوم. في مثالنا، يعني موافقتك أنك قد خوّلت عقدًا ذكيًا في Uniswap لتحريك هذا الرمز إلى محفظتك وإليها منها نيابةً عنك. في كل مرة تحاول فيها بدء مقايضة، يمكن للعقد الذكي أن يتحقق من «الرسالة» الخاصة بك — أي التعليمة لتنفيذ المقايضة — ويتأكد من أنك أنت، باعتبارك الشخص الوحيد الذي لديه حق الوصول إلى مفتاحك الخاص، هو المُنشئ/الأصل.

كيف يمكنني إدارة الموافقات والأذونات؟

من أبرز مميزات Web3 أنها تمنح المستخدمين سيطرة كاملة على الخصوصية وعلى طريقة تفاعلهم مع منصاتها. يعكس تصميم MetaMask غير الحاضن (non-custodial) ذلك. لكن مبادئه تمتد إلى ميزات أخرى أيضًا؛ ومن بينها القدرة على عرض وإدارة موافقات الـ dapp والعقود الذكية.

عرض المواقع المتصلة في MetaMask

يتضمن MetaMask ميزة أصلية لمراجعة المواقع التي تكون محفظتك متصلة بها. يُطلق عليها «المواقع المتصلة» (Connected sites) — كما يمكنك على الأرجح أن تتوقع، لا نحب المبالغة في تعقيد الأمور. وبالمثل، الطريقة لإزالتها واضحة وسهلة.

عرض موافقات الرموز

أضاف Etherscan مؤخرًا أداة للتحقق من موافقات الرموز تتيح لك عرضها وإلغاؤها، حسنًا… موافقات الرمز.

يتم عرض قائمة الموافقات على الرموز بمجرد توصيل MetaMask ومنح Etherscan إذنًا لعرض محفظتك — مألوف؟ بعد ذلك يمكنك التأكد من استمرار ملاءمتها وإلغاؤها عند الحاجة. وبشكل مفيد أيضًا، يمكنك عرض الأصل/الأداة المحددة المعنية، ومن الذي وافقت عليه (مثلًا أي dapp، مُشار إليه بالاسم)، وكمية الرموز التي سمحت بالوصول إليها.

توجد أيضًا بدائل عدة، منها approved.zone وRevoke وToken Allowance Checker (TAC).

لا تنخدع وتضيع (Don’t get rekt)

التحكم الشخصي الذي يأتي مع إدارة محفظة غير حاضنة مثل MetaMask هو سلاح ذو حدّين. تمامًا كما أن الحفاظ على عبارة الاسترداد السرية لديك مسؤوليتك الشخصية وتتطلب يقظة ضد المحتالين، فأنت وحدك القادر على إدارة أذونات الـ dapp وموافقات العقود الذكية. ومع حقيقة مدى سهولة إنشاء رمز ERC-20 جديد — إذ يوجد تقريبًا 485,000 رمز في وقت كتابة هذا النص — تصبح المخاطر واضحة جدًا. ومع أن معظمها سيُنشأ بنوايا حسنة، فقد يُنشأ أي منها من طرف مُسيء.

تُعد موافقات الرموز مسارًا شائعًا نسبيًا لهجمات الاحتيال — فقط تحقق من rekt.news لتكوين فكرة عن حجم المشكلة، وهذه المقالة من Finematics لتكوين فكرة عن الأساليب. كما ذُكر سابقًا، يجب على الـ dapps تحديد عدد الرموز التي تريد الوصول إليها. على سبيل المثال، سيضمن MetaMask أن تظهر هذه المعلومات في شاشة الموافقة قبل أن تؤكد، مما يمنحك صورة أوضح لما أنت بصدد التوقيع عليه بالضبط.

قد تختلف طلبات الوصول من الـ dapps من كميات محددة ومحدودة إلى أن تكون بلا سقف إطلاقًا، حيث يمكن للعقد الذكي أن يسحب قدر ما يريد من محفظتك. وبشكل أساسي، لا يعد الوصول غير المحدود بحد ذاته مشكلة أو علامة إنذار — تقوم العديد من المنصات الموثوقة مثل DEXs الرئيسية بذلك لتجنب معاناتك من الحاجة إلى إعادة الموافقة بشكل متكرر إذا كنت تستخدم الـ dapp بانتظام. المشكلة تظهر عندما تطلب الـ dapps وصولًا غير محدود إلى رموزك بنية صريحة للسرقة.

قبل الموافقة على وصول عقد ذكي إلى أي كمية من الرموز، يجب أن تمر عبر قائمة تحقق ذهنية لتقييم مستوى المخاطر. ستصادف غالبًا اختصار «DYOR» مذكورًا على الإنترنت: أي إجراء بحثك الخاص قبل السماح بالوصول — وهذه عادة جيدة بالتأكيد لتبنيها. على سبيل المثال:

  • ما مدى شهرة المشروع؟

  • منذ متى وهو موجود؟

  • هل لديه قناة مجتمع نشطة على Discord أو Telegram أو Twitter؟

  • هل مطور/مالكي الـ dapp واضحون وقابلون للوصول إليهم علنًا، مثلًا على Twitter أو Discord؟

  • هل تعرض مؤخرًا لاختراق أمني؟ يستحق البحث هنا.

  • هل خضعوا لتدقيق أمني لعقد ذكي من طرف جهة ثالثة؟

  • تحقق من عنوان العقد على مستكشف البلوك. بعض المستكشفات، مثل Etherscan، لديها آلية للإبلاغ يقودها المستخدم حيث يتم وضع علامة على العناوين الاحتيالية (العقود أو المحافظ) . حتى لو لم تكن هناك علامات، افحص عن نشاط مريب مثل تدفقات نقدية كبيرة أو خروج نقدي كبير خلال فترات زمنية قصيرة.

لخلاصة القول:

بدلًا من مجرد إشارة رمزية للموافقة، فإن موافقات الرموز تُعد جانبًا عاديًا (لكن أساسيًا) للتعامل مع Web3. بعض النقاط الرئيسية:

  • يُستخدم تشفير المفاتيح العامة للتحقق من أذوناتك عند التفاعل مع الـ dapps.

  • تتضمن أذونات الـ dapp السماح للـ dapps بالاطلاع على رصيد محفظتك.

  • تتضمن موافقات الرموز السماح للعقد الذكي الخاص بالـ dapp بالوصول إلى رمز محدد في محفظتك وتحريكه.

  • ابحث دائمًا عن بيانات (اعتمادات) الـ dapp وتأكد بنفسك أنها موثوقة قبل الموافقة على عقدها الذكي.

MIRO