
هل سبق لك أن سمعت عن العقود الوكيلة (Proxy Contracts)؟ ربما أخبرك الناس أنها خطيرة، أو أنه "لا يمكنك الوثوق بها". من يستخدم العقود الوكيلة ولماذا؟ هل تتعارض مع مبادئ الويب 3 (Web3)؟ هل هي حقًا خطيرة كما يُقال؟ في هذه المقالة، نسعى إلى الإجابة على هذه الأسئلة ومشاركة بعض المعلومات المهمة الأخرى حول العقود الوكيلة، وكيف يجب أن تفكر فيها وتتعامل معها كمستخدم عادي للويب 3. هيا نبدأ!
ولكن أولاً، ما هو العقد الوكيل؟
عادةً، تكون العقود على شبكة إيثريوم (ethereum ) غير قابلة للتغيير، بمعنى أنه لا يمكن تحديثها بمجرد نشرها. تُعرف السلاسل الكتلية (BlockChain) بشكل عام بأنها "سجل عام غير قابل للتغيير"، ولكن يمكن للمطورين تجاوز هذه القيود باستخدام نموذج العقد الوكيل. يقوم العقد الوكيل بإرسال (أو تفويض) جميع وظائفه إلى عقد ذكي آخر يسمى "عقد التنفيذ".
يمكن لاحقًا تغيير عقد التنفيذ نفسه (العقد الذي يحتوي على جميع التعليمات البرمجية التي "تفعل أشياء") أو "ترقيتها" حسب الحاجة. يقوم المطورون ببساطة بنشر إصدار آخر من عقد التنفيذ على السلسلة الكتلية وتحديث العقد الوكيل لإرسال جميع الطلبات المستلمة إلى عقد التنفيذ الثاني (المخطط أدناه). مثال على أحد هذه الطلبات هو نقل أصل مثل رمز مميز أو NFT.
للتوضيح، يمكن تشبيه العقد الوكيل بشراء قطعة أرض. تعمل قطعة الأرض كعقد وكيل، حيث تفوض جميع الوظائف المفيدة إلى المنزل نفسه، حيث يكون المالكين أحرارًا في تغيير السقف، أو تجديد المطبخ، إلخ. ومع ذلك، بغض النظر عن مقدار التجديد، أو وضع منزل جديد بالكامل على الملكية، فإن العنوان لا يتغير!

مشاريع تستخدم العقود الوكيلة
هل العقود الوكيلة خطيرة؟ هل يجب عليك الاستثمار في مشاريع NFT التي تستخدم العقود الوكيلة؟ ماذا عن الأسواق، أو الرموز المميزة، أو حتى بروتوكولات DeFi ؟ قبل الإجابة على هذه الأسئلة، دعونا نلقي نظرة على مثالين للعقود الوكيلة في العالم الحقيقي:
10KTF : يُعد هذا العقد الذكي أحد أكثر العقود الذكية شهرةً لـ NFT الذي يستخدم نموذج العقد الوكيل هذا السماح بإمكانية التحديث. يمكنهم ترقية عقودهم لدمج ميزات مثل تفويض المحفظة، وفرض حقوق الملكية، أو تطبيق معايير/بدائيات جديدة.
USDC : استخدمت إحدى أكبر العملات المستقرة، USDC، نموذج العقد الوكيل أيضًا. في الواقع، شرحوا أسبابهم وطريقة التنفيذ في مدونتهم عام 2020 بعنوان "ترقية رمز ERC-20 بقيمة مليارات الدولارات". عبّروا عن مخاوفهم بوضوح في هذه الجملة من المنشور المذكور: "ارتفعت القيمة السوقية لـ USDC إلى 1.4 مليار دولار وقت الترقية، وكانت حياتنا المهنية على المحك - لم يرغب أحد في أن يُخلّد في التاريخ كمطور أشعل النار في مليار دولار."
Blur: Blur هو سوق NFT يستخدم العقود الوكيلة في جميع عقوده الذكية المنشورة تقريبًا، باستثناء عقد رمز $BLUR. قد يكون هذا خطيرًا لأن المستخدمين قد وافقوا بالفعل على الأصول للعنوان الوكيل، والآن أصبح لدى عقد التنفيذ الجديد القدرة على سحب هذه الأصول من محافظ المستخدم. إذا كان عقد التنفيذ الجديد لـ Blur يحتوي على أخطاء، فإن مئات الآلاف من NFTs المعتمدة على عقد Blur الوكيل ستكون في خطر. يمكن للمخادعين إفراغ محافظ NFT الخاصة بهم، مما يهدد سلامة سوق NFT. هذا سيناريو كارثي للغاية، لكن من غير المرجح أن يحدث، حيث أن احتياطات الأمان مثل وظائف قاطع الدائرة، ومراجعات العقود، و"القراصنة ذوي القبعات البيضاء" ستوقف الهجوم على الأرجح قبل حدوثه.
Compound Finance : على الرغم من أنه من غير الواضح ما هي الحوكمة المحيطة بترقية Blur و 10KTF، نظرًا لأنها شركات خاصة، إلا أنه من الآمن القول أن ذلك قد لا يكون صارمًا (وبالتأكيد ليس شفافًا!) مثل تلك الموجودة في المنظمات اللامركزية المستقلة (DAOs) الأكثر نضجًا. أحد الأمثلة البارزة هو Compound Finance، وهي منصة إقراض DeFi بقيمة أكثر من مليار دولار في TVL. تُعرف بتركيزه الشديد على الأمان. على سبيل المثال، لا تسمح عملية الحوكمة الخاصة بها بتحديثات البروتوكول ما لم يكن هناك حد أدنى للوقت المستغرق يبلغ أسبوعًا واحدًا على الأقل، ويتم فرض ذلك بواسطة الكود.
لماذا تستخدم المشاريع العقود الوكيلة؟
على الرغم من وجود العديد من الأسباب الدقيقة لاستخدام العقود الوكيلة، إلا أن الأسباب الرئيسية هي:
- إمكانية التحديث: هذا هو السبب الرئيسي. يمكن ترقية عقد التنفيذ دون التأثير على العقد الوكيل أو المستخدمين. لا ترغب المشاريع في فقدان المستخدمين من خلال مطالبتهم بإعادة الموافقة على الأصول الموجودة بالفعل، ونقل الأموال، إلخ. لا يتأثر المستخدمون بترقيات عقد التنفيذ لأن العقد الوكيل يخزن فقط عنوان عقد التنفيذ، وليس الكود الخاص به. لذلك، يمكن للمستخدمين الاستمرار في التفاعل مع العقد الوكيل كالمعتاد، حتى لو تم ترقية عقد التنفيذ.
- إخفاء الميزات المستقبلية: ربما يخطط الفريق لإضافة ميزات إلى العقد بمرور الوقت، لكنه غير مستعد للإعلان عنها. يمكنهم ببساطة طرح المميزات بمرور الوقت دون الحاجة إلى بناء طرق بديلة تشير إلى عقود أخرى. تُعد العقود الوكيلة طريقة سهلة الإصدار ميزات جديدة فجأة لمشاريع blockchain.
- التكيف مع المستقبل: كما ذكرنا سابقًا، لا أحد يعلم ما يخبئه المستقبل للعملات المشفرة. ربما يحتاج نوع جديد ومثير من الأصول أو الرموز غير القابلة للانتقال (NFT) إلى معالجة خاصة على Blur. ربما سيتم تطوير مميزات وأساسيات جديدة. على سبيل المثال، تم إصدار CryptoPunks قبل معيار ERC-721، وتعتمد على "عقد غلاف" تابع لجهة خارجية من أجل تداولها على أسواق مثل Opensea. يرجع ذلك إلى أن معيار ERC-721 لم يكن موجودًا عندما تم إصدار CryptoPunks. ترغب مشاريع التشفير في تجنب وجود إصدارات متعددة للعقود لأنها تفتت السيولة لـ DeFi وتعقد منشأ NFTs. لو كانوا يستخدمون عقدًا وكيلًا، كان بإمكان CryptoPunks ترقيته فقط لمواجهة هذا التغيير (نظريًا)!

يبدو أن معظم هذه الأسباب مثل طرق مختلفة لقول نفس الشيء، لكن الاختلافات دقيقة. بالنسبة لبعض المشاريع، ليس من الضروري وجود نفس عنوان العقد تمامًا لمنفعتها أو المشروع؛ قد يتفاعل مستخدموها مع العقد فقط من خلال واجهة مستخدم أو موقع ويب محدد. ما لم يستخدم مستخدموها إشارات مرجعية للعقود الذكية (إستراتيجية أمن يتم تدريسها في صف NFT Security 101 الخاص بنا)، فلن يدركوا ذلك! ولكن قد تحتاج مشاريع أخرى إلى منشأ مجموعة الرموز المميزة وتوحيد الرموز المميزة الخاصة بها.
كيف تتعرف على العقد الوكيل؟
هناك طريقتان رئيسيتان لمعرفة ما إذا كان شيء ما هو عقد وكيل. بالطبع، هناك جميع أنواع أدوات تحليل blockchain، لكننا نوصي باستخدام Etherscan لمعظم الأشخاص.
الطريقة الأولى:
انتقل إلى العقد في Etherscan. في هذا المثال، سنستخدم عقدًا وكيلًا نشير إليه غالبًا في أمثلة دورة NFT Security 102 الخاصة بنا، Helix.
انتقل إلى Contract web. سترى زرين لن تراهما على معظم العقود، وهما زر "Write as Proxy" وزر "Read as Proxy".

A screenshot of a contract that has been identified to the Etherscan Team as a Verified Proxy.
الطريقة الثانية:
الطريقة الأخرى للتعرف على العقد الوكيل هي عندما تقول Etherscan أنه عقد وكيل، لكن المطور لم يختر صراحةً جعل الأزرار المذكورة أعلاه متاحة في Etherscan. بدلاً من ذلك، سيكون هناك لافتة صغيرة على صفحة العقد تشبه هذه، تشير إلى أنه "قد" يكون عقدًا وكيلًا

A contract that Etherscan believes is a proxy, but the developer hasn’t confirmed or submitted it to Etherscan as such.
مخاطر استخدام العقود الوكيلة:
الآن بعد أن عرفت أن شيئًا ما هو عقد وكيل، ما هي المخاطر التي يتعرض لها المستخدمون؟ لقد أشرنا إلى بعضها في قسم "مشاريع استخدام العقود الوكيلة"، لكن دعونا نلخص أدناه.
- يمكن اختراق محفظة نشر/إدارة المطور مما يسمح بنشر تحديث ضار: كان هناك عدد لا يحصى من الأمثلة على بعض المطورين الأكثر كفاءة، بما في ذلك أحد أشهر المطورين الأساسيين لبروتوكول Bitcoin، LukeDashJr، الذين تعرضوا لاختراق محفظتهم. يمكن للجهات الفاعلة السيئة استخدام عنوان نشر العقد الوكيل لتدمير المجموعة بأكملها، أو ما هو أسوأ.
- يمكن للمطور أن يصبح مارقًا وينشر تحديثًا ضارًا: على الرغم من أن معظم المطورين المارقين يميلون إلى سرقة الخزائن والهروب (هذا ما يسميه التشفير "سحب السجادة")، إلا أنهم يمكن أن يلحقوا ضررًا أكبر من خلال ترقية عقد وكيل بشكل ضار. يمكنهم سرقة جميع الأصول المعتمدة عليه باستخدام عقد تنفيذ drainer أو يمكنهم إضافة وظائف مثل وظيفة حرق الإدارة والتي يمكن أن تسرق حتى الرموز المميزة التي تم "إرسالها" بالفعل إلى محافظ المستخدم!
- يمكن للمطورين تحديث العقد وإدخال خطأ: في الآونة الأخيرة، نشر Sushiswap إصدارًا معيبًا من عقده. استخدم المهاجمون الخطأ لتصريف 3.3 مليون دولار من محافظ شخصيات مشهورة في مجال التشفير ومستخدمي Sushiswap العاديين الذين استخدموا المنصة في ذلك الوقت. على الرغم من أن Sushiswap لم يكن يستخدم عقدًا وكيلًا، إلا أنه كان سيكون أسوأ بكثير إذا كان الأمر كذلك. كان من شأن ترقية العقد المُخطئ أن يعني أن أي شخص قام على الإطلاق بالموافقة على Sushiswap سيكون عرضة لنفس الخطأ! كان من الممكن أن يكون قراصنة الإنترنت قادرين على سرقة الأموال من أي شخص قام بإجراء موافقات رمزية على Sushiswap. كان من المرجح أن يكون هذا أكبر استغلال DeFi في عام 2023، لو كان الأمر كذلك!

بالنسبة للبورصات، من المنطقي عدم استخدام نموذج العقد الوكيل؛ يتيح ذلك للمستخدمين والمؤسسات الأكثر حذرًا تجنب أي مشكلات محتملة قد يواجهها المستخدمون الجدد بعد التحديث. يؤدي استخدام عقد وكيل لترقية عقد التنفيذ إلى تعريض جميع المستخدمين لمخاطر جديدة على كل رمز مميز سبق لهم الموافقة عليه ما لم يلغوا تلك الموافقة.
التوصيات:
بخلاف فهم المخاطر المرتبطة باستخدام العقود الوكيلة، هناك بعض القواعد العامة التي يجب اتباعها عند مواجهة أحدها في العالم الحقيقي:
- كن حذرًا بشكل خاص من عقود NFT التي تطلب موافقات للأصول الموجودة خارج نظامها البيئي. (لكن لا تتوتر كثيرًا إذا لم تفعل ذلك).
على سبيل المثال، أنت جزء من مشروع NFT تم نشر عقد وكيل له لمجموعته. إذا طلبت نفس المجموعة بعد ذلك موافقة على ApeCoin أو Wrapped Ethereum، فيجب معاملتها على أنها ذات مخاطر أعلى. غالبًا ما يتم الاستشهاد بـ Blur كمثال "لا مفر منه" على ذلك، كما ذكرنا سابقًا، حيث يستخدم Blur فقط العقود الوكيلة.
- عند الموافقة على NFTs أو رموز ERC-20، خاصة للأسواق أو البورصات، تحقق من وجود أي شيء هو عقد وكيل قبل الموافقة عليه.
كلما استخدمت سوقًا جديدًا أو DEX، أحب التحقق من ذلك، ومحاولة معرفة ما إذا كانوا قد تحدثوا عن سبب استخدامهم عقد وكيل، أو كيفية حمايتهم ومراجعتهم للنشر الجديد قبل تحديث التنفيذ الجديد.
- إلغاء الموافقات على الوكلاء غير المستخدمين أو غير النشطين (أو جميع العقود في هذا الشأن) باستخدام خدمات مثل Revoke.cash أو Approvals.xyz
قد يحاول المشاريع غير النشطة، خاصة تلك التي لديها مؤسسي مجهولين، استخدام موافقتك ضدك من خلال نشر الكود إلى عقد تنفيذ جديد مع الكود للسماح لهم بالسيطرة على الرموز المميزة المعتمدة. لتجنب هذا الاحتمال، حافظ دائمًا على نظافة موافقتك، وتذكر تعيين حدود الإنفاق للموافقات، وإجراء عمليات مراجعة روتينية لها للحفاظ على الموافقات غير الضرورية بعيدًا عن محفظتك!
الخلاصة:
العقود الوكيلة ليست سيئة تمامًا، وبصراحة في معظم المشاريع، خاصة تلك التي تستخدمها وسائلها الخاصة، داخل نظامها البيئي الخاص أو الرموز المميزة، إنها طريقة منطقية تمامًا لضمان قابلية مشروعك للاستمرار على المدى الطويل! سيساعد ذلك على البقاء على اطلاع دائم بمعايير ERC الجديدة، والاتجاهات، والقدرة على دمج البدائيات الجديدة بسلاسة مثل تفويض المحفظة. ومع ذلك، فإن استخدامها يقلل من القدرة على التنبؤ، والقدرة على التغيير، والخلود المهم والتقليدي الذي اعتاد مستخدمو blockchain على التعود عليه على مر السنين.
في النهاية، يعود قرار استخدام العقود الوكيلة أم لا إلى المستخدم وما يشعر بالراحة معه. في معظم الحالات، تعد العقود الوكيلة طريقة منطقية تمامًا لضمان قابلية مشروع ما للاستمرار على المدى الطويل. ومع ذلك، في الحالات التي تتضمن البورصات أو الأسواق (Blur، Opensea، إلخ)، حيث يجب أن تكون التحديثات نادرة، قد لا يكون استخدام العقود الوكيلة مناسبًا.
هل لديك أي أسئلة أو تريد معرفة المزيد عن أمان الويب 3 والبقاء على اطلاع دائم بأحدث معلومات الأمان والنصب والاحتيال والتكتيكات؟ انضم إلينا في discord على https://discord.gg/boringsecurity
