تسعى تجريد الحساب إلى تحسين تجارب المستخدمين والمطورين عبر النظام البيئي لإثيريوم بأكمله. إلى جانب جعل تجارب السلسلة الأكثر إمكانية الوصول والمتعة للمستخدمين ، فإنه يمكن المطورين أيضًا من القيام بأشياء أكثر قوة على إثيريوم وخدمة المستخدمين بطرق أكثر إيجابية.
تصنيفنا للنهج المتبعة في تجريد الحسابات هو كما يلي:
تتميز هذه الطريقة بآليات تسمح لحساب المالك بالانتقال إلى حساب عقد ذكي دون الحاجة لنقل أصوله، مثلEIP 7377وEIP 5003 (عند النظر فيه جنبًا إلى جنب مع EIP 3074).
تم تقديم مقترحات مختلفة سابقًا لإنشاء حسابات ذكية وتجريد الحساب في مستوى البروتوكول؛EIP-86وEIP-2938هناك بعض الأمثلة المستشهد بها بشكل أكثر. ومع ذلك، كان هناك الكثير من الرفض بسبب الصعوبة المتوقعة التي يتم إدخالها بهذا التصميم والرأي الأغلبي إلى حد ما بأن Ethereum ليست جاهزة لمثل هذه الصعوبة.
بعد إحياء فيتاليك للموضوع بعد الدمج،ERC-4337تم اقتراحها كنسخة اختيارية من معيار الحساب الذكي، مماثلة لبنية PBS (فصل المقترح والباني) لقيمة MEV القصوى القابلة للاستخراج. بالتالي، يمكن للمستخدمين الذين يسعون للوصول إلى فوائد الحسابات الذكية ببساطة استخدام خط الأنابيب ERC-4337 لإعادة تعريف منطق حساباتهم وقواعد صحة المعاملات في هياكل تشار إليها بمصطلح UserOperation (أو UserOps بشكل مختصر).
ERC 4337 يوفر فوائد الحسابات الذكية لإثيريوم في الوقت الحاضر دون تجسيد أي من التعقيدات ، عن طريق العمل كبديل خارج البروتوكول للحسابات الذكية المجسدة. ومع ذلك ، هذا لا يعني أن البنية التحتية مثلى في الحالة الحالية حيث أن تعقيدها الخاص لا يزال نقطة فشل كبيرة.
لمعالجة هذه التعقيدات،RIP 7560تمت كتابته كنسخة مرسومة من البنية التحتية لـ ERC 4337 عبر إيثيريوم وطبقته الثانية ، بحيث يرث مخططات مقاومة سايبل في الشبكة بدلاً من الحاجة إلى تحديد مجموعة جديدة من القواعد (كما يفعل ERC 4337 معERC 7562).
في هذا التقرير، سنركز على استكشاف قابلية برمجة EOA، وتقييم مختلف EIPs التي تصف الحلول على طول هذا الخط ومناقشة مزاياها وعيوبها. في الجزءين 2 و 3 من هذه السلسلة، سنغطي الفئتين المتبقيتين من النهج لتجريد الحساب التي يتم استكشافها داخل إثيريوم.
من أجل البحث عن ما يمكن تجريده، نحتاج إلى صورة (إلى حد ما) كاملة لتصميم الحساب الحالي. سيكون هذا القسم في الغالب تقديمًا لنوع ما لما هي الحسابات في إثيريوم فعليًا، وكيف يتم تحقق وتنفيذ معاملاتها.
حسابات إيثريوم هي كيانات لها رصيد إيثر (ETH) والقدرة على إرسال المعاملات على سلسلة كتل إيثريوم. يتم تمثيلها بعنوان سداسي عشري من 42 حرفًا يعمل كمؤشر فريد لأرصدة الحساب والمعاملات.
العنوان يعمل كمفتاح في شجرة حالة البلوكشين. وتعتبر العقدة الأخيرة في هذه الشجرة هي هياكل البيانات الحسابية التي يمكن تجزئتها إلى أربعة حقول:
محتويات هذه الحقول الأربعة تستخدم لتحديد نوع حساب، وفي النهاية تحدد مدى وظائفه. وبالتالي، نوعاين من حسابات إثيريوم هما:
حسابات EOAs لديها حقول codeHash و storageHash فارغة ويمكن التحكم فيها فقط من قبل أي شخص يمتلك المفاتيح الخاصة. يمكن الحصول على عناوينهم من المفتاح العام المقابل عن طريق إضافة بادئة "0x" إلى آخر عشرين حرفًا من مجموعة بيانات keccak-256 للمفتاح العام للحساب.
عملياتهم تعتمد بالكامل على السحب وتعتمد على منطق الشيفرة المنفذة.
نظرًا لأن هذه الحسابات يمكن التحكم فيها فقط من خلال مضمون الكود الخاص بها، فإنها لا تحتاج إلى مفتاح خاص ولديها فقط مفتاح عام. وبالتالي، فإن أي وكيل لديه القدرة على تحديث/تغيير مضمون كود حساب عقد سيكون قادرًا على الوصول إلى رصيده.
يتم اشتقاق عنوان CA من عنوان مبتكره وعدد الصفقات حتى نقطة نشر العقد.
المعاملات
وصفنا مؤخرًا الحسابات على أنها كيانات تمتلك القدرة على إرسال المعاملات عبر إثيريوم. يمكننا بالتالي أن نفهم أن الغرض الأساسي من الحساب هو إرسال واستقبال المعاملات، بينما يعمل البلوكشين كدفتر يسجل تاريخ المعاملات ويصف كيفية تغيير حقول الحساب بناءً على القواعد الموضحة في مواصفات بروتوكول البلوكشين.
فما هي هذه "المعاملات"؟
المعاملات هي العمليات المرسلة من حساب، والتي تتسبب في تغيير "الحالة" الشبكة. إنها تعليمات موقعة بشكل تشفيري من الحسابات، والتي تؤدي إلى تحديث الحالة على مستوى الشبكة عند تنفيذها.
يأتي عدم الحاجة إلى إذن بتكلفة من المحفزات الخاطئة، وللتعامل مع هذه الأمور، يجب تحديد إرشادات صارمة (أو قواعد الصلاحية) للتفاعلات في مثل هذه البيئات.
في هذا السياق، يجب أن تتبع المعاملات قواعد الصلاحية المعينة لتعتبر صالحة ومنفذة. يتم تنفيذ معظم هذه القواعد من خلال القيود المفروضة على الحساب الذي يرسل المعاملة، وتختلف استناداً إلى نوع الحساب.
في إثيريوم، يتم تحسين EOAs للقابلية للاستخدام حيث أنها تواجه المستخدم النهائي. لديها القدرة على إرسال المعاملات بطريقة محددة والتشغيل بشكل مستقل تمامًا. يمكن أيضًا إنشاؤها محليًا، والطريقة الأكثر شيوعًا هي استخدام مزودي المحافظ مثل MetaMask و Rainbow و Rabby وما إلى ذلك.
من ناحية أخرى ، يمكن لحسابات العقود فقط إرسال المعاملات التي يسمح بها منطقها ، استجابة لكونها "تسمى". أيضا ، لا يمكن إنشاؤها إلا بواسطة EOA التي لديها رصيد كاف لدفع تكاليف تخزين الحالة الخاصة بها.
وصف أعلى مستوى آخر سيكون أن حسابات العناوين الخارجية يمكن أن تحتوي فقط على رصيد، بينما يمكن للحسابات الذكية أن تحتوي على كل من الرصيد والمنطق الذي يحدد كيفية إنفاق هذا الرصيد.
تتميز هذه الخصائص بسبب المعلمات المنطقية التالية التي تحدد القواعد التي يجب أن تلتزم بها معاملات الحساب:
تم تصميم هذه المعلمات لتكون صارمة للحسابات الخارجية بالتالي:
بشكل عام، تقيد منطقية تنفيذ EOAs بإجراء صفقة واحدة فقط لكل توقيع صالح.
من ناحية أخرى، لدى CAs مزيد من المرونة حول هذه المعلمات:
في معظم الحالات العملية ، يتم استخدام المنطق المستخدم في هذه الحالة تقنية التوقيع المتعددة التي تنص على أنه يتطلب M من N تواقيع صحيحة (حيث M < N) من حسابات محددة (عادةً EOAs) لكي يكون تغيير منطق CA صالحًا.
عند تقييم هذه الميزات، نلاحظ أن كل نوع من الحسابات مصمم لديه تناقض بين الاستقلالية والقابلية للبرمجة.
تتمتع EOAs بالحكم الكامل ولكن بإمكانيات برمجية محدودة؛ يمكنهم تفويض وإرسال المعاملات في أي وقت يرغبون فيه، ولكن يجب أن تلتزم هذه المعاملات بتنسيق صارم لتعتبر صالحة. تتمتع CAs بإمكانيات برمجية كاملة (محدودة فقط بتصميم EVM) ولكن بحكمة محدودة؛ لا تتطلب معاملاتهم أي تنسيق صارم، ولكن يمكن إرسالها فقط نظرًا لاستدعاء منطقهم أولاً.
في القسم التالي، سندرس الآن تأثيرات هذه الخيارات التصميمية، من أجل فهم الاقتراح بشكل كامل لكل EIP مطروح في هذه السلسلة.
الآن بعد أن لدينا معرفة موجزة إلى حد ما بوظائف الحسابات المختلفة، يمكننا بسهولة تحديد نقاط بيعها وكذلك المشكلات التي تواجه المستخدمين والمطورين على إثيريوم.
كما ذكرنا سابقًا ، تم تصميم EOAs كحسابات متميزة تستهدف المستخدمين النهائيين. تم تصميم التطبيقات للتفاعل معها بسهولة ، ولا يوجد تعقيد تقريبًا فيها ، وبالطبع لا يوجد تكلفة لإنشاء واحدة. ومع ذلك ، يأتي بساطتها بفقدان كبير للجديد ، حيث تم تصميمها لتكون محددة بدقة.
بعض المخاوف المتعلقة بها هي:
ليس كل شخص يريد (أو سيكون قادرًا على) الاحتفاظ بالإيثيريوم دائمًا (أعني انظر إلى تلك الحركة في الأسعار) ، لذا فإن الحلول الجديرة بالاعتبار هي السماح بعملات الغاز المتعددة (صعب جدًا ، ويكسر العديد من القواعد كما هو موضح في قسم "العملة")هناأو السماح بتسوية مدفوعات الغاز عن طريق حساب آخر ليس منشأ المعاملة.
على الطرف الآخر من طيف الحسابات، تستهدف الشهادات الرقمية المطورين وقاعدة مستخدمين أكثر تقنية. إنها تعمل كمركبات للعقود الذكية (أي نحن نعتبر العقود الذكية أن تكون منطقها المحتوى أو الكود) وبالتالي يمكنها تنفيذ تنسيقات المعاملات الجديدة كما يتيحه ال EVM.
ومع ذلك، بالنسبة لجميع هذه الميزات فإنها حسابات من الدرجة الثانية المبجلة لأنها ليست لديها استقلالية. بعض عيوبها على النحو التالي:
بعد مراجعة الخيارات التصميمية التي أدت إلى المشاكل المحددة في هذا الفرع، يمكننا الآن المضي قدمًا في تقييم الحلول المقترحة.
كانت مفهوم تجريد الحساب (من خلال الحسابات الذكية على الأقل) دائمًا جزءًا أساسيًا من خريطة طريق إثيريوم. الحكايات تقول إن التعقيد المحيط بتنفيذه تهدد بتأخير إطلاق إثيريوم بشكل أكبر، ولذلك تم التخلي عنه للتصميم الحالي مع حسابات مختلفة تقدم وظائف مختلفة. تم تأجيله مرة أخرى بسبب تركيز إثيريوم على الاندماج، والآن يعود كجزء رئيسي من ترقية الشبكة الرئيسية التالية - Pectra. ومع ذلك، لا يزال يعتبر تعقيده عائقًا كبيرًا يمنع تمجيده، خاصة مع تحول إثيريوم إلى خريطة طريق تركيبية محورية.
المتطلبات الآن ذاتية الطيف:
بشكل حدسي، يلعب هذا المفهوم دورًا أكبر في سياق تجريد السلسلة وقابلية التشغيل المتقاطعة، ومع ذلك، يقتصر نطاقنا طوال هذا التقرير على المبادرات التقنية المتخذة لتحقيق تجريد الحساب نفسه.
تهدف تجريد الحساب إلى دمج أفضل ميزات حسابات المالك الخارجي وحسابات العقود في معيار حساب جديد - حسابات ذكية، تسمح بفصل كامل أو جزئي لقواعد صحة أي حساب إلى منطق التحقق والتنفيذ. بحيث يمكن للحسابات تحديد قواعدها الخاصة بالصحة - كما يسمح به EVM - تمامًا مثل حسابات العقود، مع البقاء مستقلة تمامًا مثل حسابات المالك الخارجي.
غالبًا ما تكون هناك الكثير من الارتباك حول الاختلافات بين الحسابات الذكية ومحافظ العقود الذكية ، لذا دعنا نصف بشكل صريح ما هي هذه الاختلافات أدناه:
تسهل تجارة محافظ العقد الذكية اعتماد شهادات النماذج المعمارية من قبل الأسواق الأوسع ، مما يسمح للمستخدمين الأقل تقنية بالاستفادة من الميزات التي تقدمها. ومع ذلك ، فإنها تواجه لا يزالون المخاطر المرتبطة بشهادات النماذج المعمارية.
عد إلى المحادثة؛ لقد ناقشنا سابقًا المعايير التي تُستخدم لتحديد قواعد صحة معاملات الحسابات:
قد يشار إلى قيم المعلمات الأربعة الأولى جماعيًا باسم منطق التحقق من الحساب ، وهي عبارة عن فحوصات تحدث قبل بدء تنفيذ الصفقة.
المعلمة الأخيرة تحدد كيفية تنفيذ العملية.
في المقدمة، قدمنا نظرة عامة على المشهد الحالي لتجريد الحساب في شكل تصنيف للتصميمات المقترحة المختلفة. سنركز الآن على الفئة الأولى من الحلول لمشكلة حساب Ethereum- إمكانية برمجة EOA.
أكبر جاذبية ل Ethereum هي نظامها البيئي DeFi الشاب والنابض بالحياة والذي يتميز بمجموعة متنوعة من التطبيقات اللامركزية التي تعد أحواض السيولة الأساسية. تم تحسين معظم هذه التطبيقات اللامركزية لخدمة EOAs ، وبالتالي يصعب التفاعل مع المراجع المصدقة ، وفي النهاية الحسابات الذكية. في حين أن محافظ العقود الذكية تساعد المراجع المصدقة في هذه الحالة ، إلا أنها تأتي مع قيودها الخاصة وتجربة مستخدم مختلفة تماما.
تُستكشَف حلول مؤقتة بينما يتعود مُقدمو تطبيقات اللامركزية وموفري المحافظ على معيار الحساب الذكي، وذلك لتوفير تحسينات مؤقتة للحسابات الخارجية الذاتية التي تمكّنها من التغلّب على معظم القيود المفروضة عليها، سواء كان ذلك بالنسبة للتحقق من صحتها أو منطق تنفيذها.
أدناه، نستعرض مواصفات ثلاث EIPs رئيسية توفر طرقًا قابلة للتنفيذ إلى برمجة EOA؛ من الأقل شهرةEIP 5806، إلى الطموحEIP 3074ثم أخيرًا إلى الفائزEIP 7702.
تسعى هذه المقترحات إلى جلب المزيد من الوظائف إلى معيار EOA عن طريق السماح له بإجراء مكالمات وكيل إلى منطق حساب العقد (العقد الذكي الخاص به). هذا يؤدي بفعالية إلى تنفيذ العقد الذكي في سياق EOA المتصل، أي أن EOA يظل تحت السيطرة منطق التحقق من صحة، بينما يتم التعامل مع منطق التنفيذ بواسطة منطق CA المقابل.
قبل أن نقدم أي تقدم أكثر، دعنا نقوم برحلة عبر ذاكرة تطور إثيريومEIP-7.
اقترح EIP-7 إنشاء تعليمة 0xf4/DELEgateCALL ، والتي تُستخدم لإرسال مكالمات الرسائل إلى حساب أساسي بمنطق حساب ثانوي، مع الحفاظ على قيم حقول الحساب الأساسي [المُرسِل] و [القيمة].
بعبارة أخرى، يقوم الحساب الأساسي بـ"الاستدانة" (أو الاقتراض إذا كنت تفضل) منطق الحساب الثانوي لبعض المدة المحددة في استدعاء الرسالة، بحيث يتم تنفيذ منطق الأخير في سياق الأول.
هذا الرمز البرمجي يسمح لمطوري التطبيقات المشفرة بتقسيم منطق تطبيقهم إلى عدة عقود ذكية مترابطة بشكل فعال، حتى يتمكنوا بسهولة من تجاوز حواجز حجم الرمز البرمجي وحواجز الغاز.
حسنًا، فما الذي تسمح به المكالمات المفوّضة للحسابات المُصدّقة لتكون متكاملة؟ حسنًا، يستخدم EIP-5806 EIP-7 كمصدر إلهام لاقتراح توسيع وظيفة المكالمة المفوّضة إلى حسابات العقود الذكية والحسابات الخارجية؛ أي، دعونا نسمح أيضًا للحسابات الخارجية أن تكون متكاملة مع حسابات العقود الذكية، لماذا لا.
يقدم EIP 5806 جديدمتوافق مع EIP-2718نوع الصفقة الذي يتم تجميعه على النحو التالي:
rlp([chainID، nonce، max_priority_fee_per_gas، max_fee_per_gas، gas_limit، destination، data، access_list، signature_y_parity، signature_r، signature_s]).
تم تصميم هذه المعاملات بحيث يمكن أن يقبل حقل [إلى] - الذي يمثل عنوان المستلم - فقط عناوين كإدخالات بطول 20 بايتًا، مما يعطل المرسل من استخدام تعليمة الإنشاء CREATE.
الدافع وراء كل مكون من مكونات نظام RLP هو كما يلي:
بينما يسمح تغليف معاملات EIP-5806 في أظرفة EIP-2718 بكونها قابلة للتوافق مع الإصدارات السابقة بشكل كبير، فإن حسابات التنفيذ ذات التوكيل (EOAs) ليست مكافئة للحسابات التعاقدية (CAs). لذا يجب تحديد قيود معينة في الطريقة التي يستخدم بها حساب التنفيذ ذو التوكيل المكالمات التنفيذية لمنع كسر الثوابت.
تستهدف هذه القيود العمليات التالية:
التطبيق الأساسي لـ EIP 5806 هو تجريد التنفيذ لـ EOAs. يسمح لـ EOAs بالتفاعل بثقة مع العقود الذكية بعيدًا عن المكالمات البسيطة لمنطقها البرمجي ويمنحهم ميزات مثل:
التغييرات التي اقترحها EIP-5806 ، مع تمكين الميزات المطلوبة ، ليست جديدة بشكل خاص. يعتمد وجودها في الغالب على EIP-7 الذي يعمل بالفعل. هذا يسمح لها بتجاوز العديد من العقبات المحتملة للقبول.
أحد أهم المخاوف التي أعرب عنها في أيامها الأولى كانت المخاطر المحتملة للسماح لحسابات الإيثريوم الخارجية بالوصول إلى التخزين وتغييره، تمامًا كما تفعل الحسابات الذكية حاليًا. هذا يكسر الكثير من الثوابت المرسخة في الشبكة بخصوص كيفية إجراء المعاملات بواسطة حسابات الإيثريوم الخارجية، وتم التعامل مع هذا من خلال إدخال القيود المذكورة في الفرع السابق.
النقد الثاني (وهو سيف ذو حدين) هو بساطة EIP-5806. هناك بعض الشعور بأن المكافآت الناتجة عن قبول EIP-5806 قد لا تستحق التكلفة ، لأنها تتيح فقط تجريد التنفيذ وليس الكثير. تظل كل قيود صلاحية أخرى محددة للشبكة ل EOAs التي تشترك في EIP-5806 ، على عكس EIPs الأخرى المماثلة إلى حد ما والتي نناقشها في الأقسام الفرعية التالية.
يقترح EIP-3074 السماح للحسابات الخارجية بتفويض معظم منطق التحقق الخاص بها إلى حسابات العقود المتخصصة، المشار إليها بـ المُستدعين، من خلال تراكب منطق المصادقة الخاص بها على المصادقة الخاصة بالأشكال المحددة من المعاملات.
تحقق ذلك عن طريق توقيع سياسة الوصول الخاصة بهم إلى عقد الداعي، الذي يصبح بعد ذلك مسؤولاً عن تحديد سياسة الوصول لـ EOA.
تقترح هذه EIP إضافة اثنين من أوامر التشغيل الجديدة إلى EVM:
هذين الرمزين يسمحان لحساب EOA بتفويض التحكم إلى CA مسبقة التأسيس، وبالتالي، العمل كواحد من خلالها، دون الحاجة إلى نشر عقد وتكبد التكاليف والخارجيات المرتبطة بها.
يسمح EIP-3074 للمعاملات باستخدام تنسيق توقيع [MAGIC] لمنع التعارض مع تنسيقات توقيع المعاملات الأخرى. يتم تعريف الحساب النشط الذي يتم تمرير تعليمات [AUTHCALL] إليه على أنه حقل متغير سياق يسمى [مصرح به]، والذي يستمر فقط من خلال معاملة واحدة ويجب إعادة تعريفه لكل [AUTHCALL] جديد.
قبل التعامل مع تعقيدات كل عملية تعليمية، هذه هي الكيانات المشاركة في عملية EIP-3074:
يتلقى عقود المدعي رسائل [AUTH] بقيمة [COMMIT] من [authority]؛ تحدد هذه القيمة القيود التي يرغب الحساب في وضعها على تنفيذ [authorized] لتعليمات [AUTHCALL].
وبالتالي، يتحمل المستدعين مسؤولية ضمان أن [contract_code] المعرف في حساب [authorized] ليس خبيثًا ولديه القدرة على تحقيق الظواهر الموضوعة من قبل الحساب الأساسي للتوقيع في قيمة [COMMIT].
تحتوي عملية [AUTH] على ثلاثة عناصر في الدرجة التالية؛ أو ببساطة أكثر - يتم تحديدها بواسطة ثلاثة مدخلات تحسب إخراج واحد. هذه المدخلات هي:
يتم استخدام آخر اثنين من المدخلات لوصف نطاق من الذاكرة القابل للتعديل من 0 إلى 97، حيث:
يتم تفسير المتغيرات [yParity] و [r] و [s] بشكل جماعي على أنها توقيع ECDSA ، [سحري] ، على منحنى secp256k1 فوق الرسالة:
[keccak256 (MAGIC || chainID || nonce || invoker address || COMMIT)]
أين:
إذا كان التوقيع المحسوب صالحًا وعنوان الموقع يساوي [authority]، يتم تحديث الحقل [authorized] إلى القيمة المقدمة من [authority]. إذا لم يتم تحقيق أي من هذه المتطلبات، يبقى الحقل [authorized] دون تغيير في حالته السابقة، أو كقيمة غير مضبوطة.
تكلفة الغاز لهذا العملية تحسب كمجموع:
يتم تنفيذ [AUTH] لعدم تعديل الذاكرة، ويأخذ قيمة [authority] كوسيطة لذلك يسهل التحقق من قيمتها من التوقيع المقدم.
تحتوي عملية [AUTHCALL] على سبعة عناصر دخل في الدرجة التراكمية والتي تستخدم لحساب عنصر واحد في الدرجة التراكمية.
له نفس منطق رمز التشغيل [CALL] ، أي ؛ يتم استخدامه لإرسال مكالمات الرسائل إلى حساب وتشغيل منطق محدد في عقوده. الانحراف الوحيد في منطقهم هو أن [AUTHCALL] مصمم لتعيين قيمة [CALLER] قبل متابعة التنفيذ.
بالتالي، يتم استخدام [AUTHCALL] بواسطة [السلطة] لتشغيل سلوك ذي صلة بالسياق في [المعتمد] مع إجراءات التحقق المنطقية التالية:
تُحسب تكلفة الغاز لـ [AUTHCALL] كمجموع:
يتم الوصول إلى البيانات المُرجعة من [AUTHCALL] عبر:
لجمع كل ذلك مع أقل بكثير من الكلام التقني. تحدد معاملات Ethereum عادة قيمتين:
في EOAs ، كما ذكرنا سابقًا ، تكون الترخيص مرتبطًا بشكل وثيق بالتنفيذ ، أي (tx.origin == msg.sender). هذا الثابت البسيط يؤدي إلى معظم المشكلات التي شرحناها في قسم "الحسابات وصحة المعاملات" في هذا التقرير.
رسائل [AUTH] من [authority] تسمح له بتعويض وظيفة tx.origin إلى [authorized]، مع الإبقاء على msg.sender. كما يسمح له بتحديد قيود على هذا الامتياز باستخدام قيمة [COMMIT].
ثم يسمح [AUTHCALL] [المصرح له] بالوصول إلى منطق العقد ، باستخدام [المحتج] كوسيط لضمان أن العقد الذي يرغب في الوصول إليه غير ضار. أي أنه بالنسبة لكل [AUTHCALL] ، [مصرح به] هو تحديد [مستدعي] معين ل [COMMIT].
EIP 3074 مسؤول بشكل أساسي عن السماح ل EOAs بتفويض منطق التفويض الخاص بهم إلى حساب مختلف ، ولكن تصميمه المفتوح يتيح الكثير في سياقات مختلفة.
يمكن تجريد منطق التحقق الكامل لـ EOA عن طريق تطبيق مختلف القيود / الابتكارات على الداعي حسب الضرورة، وتشمل بعض التصاميم الممكنة استنادًا إلى منطقها المستهدف.
أيضًا ، تجريد منطق التنفيذ بشكل بديهي ؛ بعد كل شيء ، المُستدعي (الذي هو CA) مسؤول الآن عن تنفيذ طلبات المعاملات نيابة عن EOA.
اقتباس أحد مؤلفيها: "لا أتوقع أن تعرض المحافظ وظيفة التوقيع على المتذرعين التعسفيين ...". ربما تكون المشكلة الأكبر التي تواجهها مبادرة 3074 هي أن الابتكار فوقها سوف يميل بسهولة إلى تدفقات الصفقات المصرح بها والملكية. تماما مثل التكرارات الحالية لأسواق MEV و PBS في Ethereum.
بشكل افتراضي، يجب مراجعة عقود المستدعي الجيدة بشكل كبير لمنع الهجمات الأسوأ من التي يمكن أن تحدث حاليًا. وهذا سيؤدي بالضرورة إلى نظام بيئي حيث سيتم اعتماد عدد قليل جدًا من عقود المستدعي التي وضعتها شخصيات مؤثرة كالافتراضي لمطوري المحفظة. وبالتالي، فإنه ينحصر في مسألة تجارة بين اتباع المسار اللامركزي الصعب من مراجعة ودعم عقود المستدعي باستمرار على مخاطر أمن المستخدمين؛ أو ببساطة اعتماد عقود المستدعي من مصادر موثوقة ومعروفة مع ضمانات أفضل لأمان المستخدم ومزيد من الإشراف على سلامة العقد.
جانب آخر من هذه النقطة هو وظيفة التكلفة المرتبطة بتصميم وتدقيق وتسويق المستدعي الوظيفي والآمن. سيكون الفرق الأصغر دائمًا متفوقًا تقريبًا على المنظمات الأكبر - خاصة من حيث التسويق - التي لديها بالفعل بعض السمعة المرسومة، حتى لو كان منتجها أفضل.
يعمل EIP-3074 على تعزيز نظام توقيع ECDSA ، حيث يعتبر لا يزال أكثر صحة من نظام الموافقة الذي تم إدخاله عبر المستدعي. في حين يوجد حجج تقول بأن المقاومة للكم ليست مشكلة حاسمة حاليًا ، وأن هناك أمورًا أسوأ من ذلك في مستقبل يمكن فيه تعريض ECDSA للفساد ؛ إلا أن الهدف الغير معلن لـ Ethereum هو أن يكون دائمًا في مقدمة مثل تلك المشاكل. ربما ليس خيارًا مثاليًا في المستقبل القريب التضحية بالمقاومة للكم والرقابة من أجل تحسينات طفيفة في تجربة المستخدم.
نقطة أخرى في حجة التوافق المستقبلي هي أنه في حين كانت فوائد 3074 لا تزال قيد التقييم ، فقد حقق ERC-4337 (الذي لا يتطلب أي تغييرات في البروتوكول) الآن سوقًا رائعًا ، لذا يجب أن تكون متوافقًا معها أيضًا لتجنب تجزئة الأنظمة الإيكولوجية.
حتى مع خارطة طريق تجريد الحساب الأصلية، ستصبح عمليات [AUTH] و [AUTHCALL] في نهاية المطاف قديمة في EVM، مما يضيف الكثير من الديون الفنية إلى إثيريوم من أجل تقديم كمية ضئيلة من تحسين تجربة المستخدم.
بعد إرسال رسالة [AUTH] وتفويض التحكم ، من المتوقع أن تتجنب EOA نظام تفويض المفتاح الخاص المعتاد ، لأن إرسال معاملة "عادية" يؤدي إلى إلغاء التفويض الذي فوضته إلى كل محتج.
وبالتالي، فإن نظام ECDSA لا يزال يفوق بشكل صارم أي نظام تفويض آخر قد يتيحه العقود المرتبطة، وهذا يعني أن فقدان المفاتيح الخاصة سيؤدي إلى فقدان كلي لأصول الحساب.
كانت هذه الاقتراحات في البداية مقترحة كتقليص طفيف للغاية لـ EIP 3074، وحتى المقصودليكون تحديثًا له. تم ولادته لمعالجة الفشل المفترض لـ EIP 3074 ، وخصوصًا المخاوف المتعلقة بعدم التوافق مع النظام البيئي الذي يزدهر بالفعل 4337 واقتراح تجريد الحساب الأصلي - RIP 7560.
إن نهجها هو إضافة نوع جديد من عملية EIP 2718 المتوافقة -[SET_CODE_TX_TYPE]- الذي يسمح لحساب EOA بأن يتصرف كحساب ذكي للمعاملات المحددة.
هذا التصميم يتيح نفس الميزات كما في EIP 5806 وبعض المزيد، مع البقاء متوافقاً مع خارطة طريق تجريد الحساب الأصلية والمبادرات الحالية.
يسمح EIP-7702 لـ EOA بـ "استيراد" محتوى الكود لعقد من خلال معاملة متوافقة مع [SET_CODE_TX_TYPE] 2718 من النوع:
rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, value, data, access_list, authorization_list, signature_y_parity, signature_r, signature_s])
تشبه هذه الحمولة تماما حمولة EIP 5806 ، باستثناء أنها تقدم "قائمة تفويض". هذه القائمة عبارة عن تسلسل مرتب لقيم التنسيق:
[[chain_id, address, nonce, y_parity, r, s], …]
حيث يحدد كل tuple قيمة [address].
قبل المتابعة، الأطراف المعنية في SET_CODE_TX_TYPE هم:
عندما توقع [السلطة] على SET_CODE_TX_TYPE يحدد [العنوان]، يتم إنشاء معين تفويض. هذا هو "برنامج المؤشر" الذي يتسبب في توجيه جميع طلبات استرجاع التعليمات البرمجية بسبب إجراءات [السلطة] في أي لحظة إلى رمز [العنوان] الذي يمكن ملاحظته.
بالنسبة لكل [chain_id ، عنوان ، nonce ، y_parity ، r ، s] tuple ، تتدفق منطق عملية نوع 7702 على النحو التالي:
يسمح هذا EIP لحسابات EOAs بإرسال المعاملات التي تضع مؤشرًا على كود عقد، مما يتيح لهم تنفيذ هذا المنطق كخاص بهم في المعاملات التالية. وبهذه الطريقة، فهو أقوى بكثير من EIP 5806، لأنه يتيح لحسابات EOAs الحصول على محتوى الكود الفعلي طالما أرادوا ذلك (على عكس EIP 5806 الذي يسمح ببساطة لحسابات EOAs بإرسال المكالمات الوكيلة).
بينما يمكن الجدل بأنه لم يعد تجريدًا بما أن EOA يأخذ بنشاط المنطق الذي يرغب في تنفيذه، إلا أنه لا يزال ليس "المالك الأساسي" لذلك المنطق. أيضًا، فإنه لا يحتوي مباشرة على منطق، بل يحدد ببساطة مؤشرًا إلى المنطق (من أجل تقليل التعقيد الحسابي). لذا نحن نتبع تجريد التنفيذ!
على الرغم من أن الشرط (require(msg.sender == tx.origin)) مكسور للسماح بالترويج الذاتي، إلا أن EIP لا يزال يسمح بتكامل موجهي المعاملات الراعية. ومع ذلك، الإشكالية تكمن في أن مثل هذه الموجهين يحتاجون إلى نظام مبني على السمعة أو الرهن لمنع هجمات التشويش.
يمكن لـ EOAs أن تشير فقط إلى جزء محدد من كود الحساب، بحيث يكون البرمجيات الخاصة بذلك الجزء قابلة للتنفيذ في سياقها فقط.
يتيح ذلك أيضًا وجود مفاتيح فرعية تمكن من 'تخفيض الامتيازات'، بحيث يكون لدى تطبيقات القرصنة النقدية الرقمية الوصول إلى رصيد الحساب فقط في ظروف محددة. على سبيل المثال، يمكنك أن تتخيل إذنًا لإنفاق الرموز ERC-20 ولكن ليس الإيثريوم، أو لإنفاق ما يصل إلى 1% من الرصيد الإجمالي يوميًا، أو للتفاعل فقط مع تطبيقات محددة.
نظرًا لطبيعتها غير التقييدية، يمكن أن تسمح عملية EIP-7702 للمستخدم بالوصول إلى تعليمة CREATE2 واستخدامها لنشر بايتات التعليمات البرمجية إلى عنوان دون وجود معلمات قيدية أخرى مثل منطق سوق الرسوم (على سبيل المثال EIP-1559 و EIP-4844). يتيح هذا استعادة العنوان واستخدامه عبر عدة آليات حالة، مع نفس البايتات التعليمية، حيث تكون حسابه على كل سلسلة مسؤولة بعد ذلك عن تحديد معلمات السياق المتغيرة الأخرى.
بينما لا يزال EIP-7702 حديثًا جدًا ، إلا أنه تم بالفعل إجراء الكثير من عملية النمذجة والاختبار لتبعياته وعيوبه المحتملة ، ولكن النموذج البسيط يضمن له الكثير من المرونة وبالتالي الفائدة في سياقات مختلفة. ومع ذلك ، فإنه يكسر العديد من الثوابت ولا يكون متوافقًا مع الإصدارات السابقة على الفور.
بعض منطقه يشمل:
معظم المستخدمين ليسوا على دراية بالمحتويات الفعلية للحساب (أو حتى الفرق بين الحساب والعنوان!) ، بحيث يعني السماح بتضارب العناوين أن EOA يمكن أن يتنكر في صورة مرجع مصدق ويجذب أموال المستخدمين في جزء طويل لسرقة كل شيء في النهاية. عالج EIP-3607 هذا من خلال النص على أن الحسابات التي تحتوي على رمز يجب ألا تكون قادرة على إنفاق رصيدها باستخدام منطق التفويض الخاص بها. ومع ذلك ، فإن EIP 7702 يكسر هذا الثابت من أجل تمكين EOAs من البقاء مستقلا حتى بعد اكتساب بعض قابلية البرمجة.
توقيع عنوان الحساب بدلاً من محتوى رمزه هو في الأساس مثل حيلة 3074 مع المستدعين. لا يوفر ضمانات صارمة حول توافق محتوى رمز السلسلة العابرة ، حيث يمكن للعنوان أن يحمل محتوى رمز مختلف على سلاسل مختلفة. هذا يعني أن العنوان الذي يحتوي على نفس المنطق في محتوى رمزه على سلسلة واحدة يمكن أن يكون مفترسًا أو خبيثًا تمامًا على سلسلة أخرى ، وهذا يمكن أن يؤدي إلى فقدان أموال المستخدمين.
EOAs في شكلها الحالي اليوم محدودة بشكل كبير لأنها لا تسمح للمستخدمين بالاستفادة من ميزات البرمجة المقدمة من قبل EVM. بينما هناك مسارات مختلفة لترقية الحسابات، كما هو موضح في بداية هذا التقرير، يجب أن تحتفظ الحلول المختارة بمبادئ الحفظ الآمن والذاتي. علاوة على ذلك، قد تؤثر ترقيات EOAs بشكل كبير على تجربة المستخدم ومطوري التطبيقات لذا يجب أن يتم اعتبار أصوات جميع أصحاب المصلحة.
السماح للEOAs بتنفيذ الكود بأي طريقة يوسع بشكل كبير وظيفة الحسابات، ولكن هذه القابلية الجديدة تأتي مع مخاطر معنوية وعراقيل محتملة. حل هذه التناقضات أمر حاسم لتقديم ترقية تتمتع بفوائد تجربة مستخدم غير متنازع عليها لمستخدمي إثيريوم.
ثقافة إثيريوم المفتوحة للنقاش تجعلها ساحة اختبار رائعة لمثل هذه الابتكارات لأن تقريبًا كل تأثير لكل تصميم يتم تحليله بدقة من قبل خبراء الموضوع. يجب أن يساعد هذا الاعتبار الشامل في التخفيف من مخاطر السلوك غير القانوني من الخصوم.
حاليًا ، يُعتبر EIP-7702 هو رمز الطفل المعلق للآليات التي تسعى إلى جلب البرمجة للحسابات الخارجية لـ EVM ، حيث تم وضع علامة عليه كبديل للفتحة في ترقية Pectra لـ EIP 3074. إنه يرث التصميم المفتوح للآلية 3074 بينما يقلل بشكل كبير من سطح الهجوم / المخاطر. كما يتيح المزيد من خلال تجنب القيود التي تفرضها 3074 على فئات معينة من الأوبكود.
بينما لا يزال هناك بعض التحسينات التي يتم إجراؤها على تصميم الاقتراح، فقد حظي بالفعل على الكثير من الإرادة الحسنة والدعم من المطورين، خاصةً لأنه يحظى بدعم مباشر من فيتاليك.
داخل المجتمع هناك ادعاءات بأن هذا النهج في تجريد الحساب قد يكون حتى أفضل من الحسابات الذكية. يؤكد هذا التعليق أن هذا المسار يتطلب تغييرات أقل ولا يكون بمعقد، وأن حسابات الإرث الذاتي موجودة بالفعل. ومع ذلك، يجب أن نتذكر المعلمة الأمنية المستقبلية لمقاومة الكم على كل مستوى من مستويات شبكة إثيريوم. هذه الأمان الكمي غير قابلة للتحقيق مع نموذج الحساب الحالي الأساسي بسبب استخدام مخططات توقيع ECDSA لتفويض الحسابات الذاتية.
وبالتالي، يجب أن يُنظر إلى قابلية برمجة الحساب الخارجي المميزة كخطوة على طول الطريق نحو الحسابات الذكية وليس الوجهة. إنه يعزز الحسابات الخارجية ويتيح تجربة مستخدم ومطور أفضل، مع البقاء متوافقًا مع هدف التجريد النهائي للحسابات الذكية.
في تقريرنا القادم، سنقوم بالغوص في خطط ترحيل EOA لنرى مدى ملائمتها في خريطة تجريد الحساب، تابعونا!
تسعى تجريد الحساب إلى تحسين تجارب المستخدمين والمطورين عبر النظام البيئي لإثيريوم بأكمله. إلى جانب جعل تجارب السلسلة الأكثر إمكانية الوصول والمتعة للمستخدمين ، فإنه يمكن المطورين أيضًا من القيام بأشياء أكثر قوة على إثيريوم وخدمة المستخدمين بطرق أكثر إيجابية.
تصنيفنا للنهج المتبعة في تجريد الحسابات هو كما يلي:
تتميز هذه الطريقة بآليات تسمح لحساب المالك بالانتقال إلى حساب عقد ذكي دون الحاجة لنقل أصوله، مثلEIP 7377وEIP 5003 (عند النظر فيه جنبًا إلى جنب مع EIP 3074).
تم تقديم مقترحات مختلفة سابقًا لإنشاء حسابات ذكية وتجريد الحساب في مستوى البروتوكول؛EIP-86وEIP-2938هناك بعض الأمثلة المستشهد بها بشكل أكثر. ومع ذلك، كان هناك الكثير من الرفض بسبب الصعوبة المتوقعة التي يتم إدخالها بهذا التصميم والرأي الأغلبي إلى حد ما بأن Ethereum ليست جاهزة لمثل هذه الصعوبة.
بعد إحياء فيتاليك للموضوع بعد الدمج،ERC-4337تم اقتراحها كنسخة اختيارية من معيار الحساب الذكي، مماثلة لبنية PBS (فصل المقترح والباني) لقيمة MEV القصوى القابلة للاستخراج. بالتالي، يمكن للمستخدمين الذين يسعون للوصول إلى فوائد الحسابات الذكية ببساطة استخدام خط الأنابيب ERC-4337 لإعادة تعريف منطق حساباتهم وقواعد صحة المعاملات في هياكل تشار إليها بمصطلح UserOperation (أو UserOps بشكل مختصر).
ERC 4337 يوفر فوائد الحسابات الذكية لإثيريوم في الوقت الحاضر دون تجسيد أي من التعقيدات ، عن طريق العمل كبديل خارج البروتوكول للحسابات الذكية المجسدة. ومع ذلك ، هذا لا يعني أن البنية التحتية مثلى في الحالة الحالية حيث أن تعقيدها الخاص لا يزال نقطة فشل كبيرة.
لمعالجة هذه التعقيدات،RIP 7560تمت كتابته كنسخة مرسومة من البنية التحتية لـ ERC 4337 عبر إيثيريوم وطبقته الثانية ، بحيث يرث مخططات مقاومة سايبل في الشبكة بدلاً من الحاجة إلى تحديد مجموعة جديدة من القواعد (كما يفعل ERC 4337 معERC 7562).
في هذا التقرير، سنركز على استكشاف قابلية برمجة EOA، وتقييم مختلف EIPs التي تصف الحلول على طول هذا الخط ومناقشة مزاياها وعيوبها. في الجزءين 2 و 3 من هذه السلسلة، سنغطي الفئتين المتبقيتين من النهج لتجريد الحساب التي يتم استكشافها داخل إثيريوم.
من أجل البحث عن ما يمكن تجريده، نحتاج إلى صورة (إلى حد ما) كاملة لتصميم الحساب الحالي. سيكون هذا القسم في الغالب تقديمًا لنوع ما لما هي الحسابات في إثيريوم فعليًا، وكيف يتم تحقق وتنفيذ معاملاتها.
حسابات إيثريوم هي كيانات لها رصيد إيثر (ETH) والقدرة على إرسال المعاملات على سلسلة كتل إيثريوم. يتم تمثيلها بعنوان سداسي عشري من 42 حرفًا يعمل كمؤشر فريد لأرصدة الحساب والمعاملات.
العنوان يعمل كمفتاح في شجرة حالة البلوكشين. وتعتبر العقدة الأخيرة في هذه الشجرة هي هياكل البيانات الحسابية التي يمكن تجزئتها إلى أربعة حقول:
محتويات هذه الحقول الأربعة تستخدم لتحديد نوع حساب، وفي النهاية تحدد مدى وظائفه. وبالتالي، نوعاين من حسابات إثيريوم هما:
حسابات EOAs لديها حقول codeHash و storageHash فارغة ويمكن التحكم فيها فقط من قبل أي شخص يمتلك المفاتيح الخاصة. يمكن الحصول على عناوينهم من المفتاح العام المقابل عن طريق إضافة بادئة "0x" إلى آخر عشرين حرفًا من مجموعة بيانات keccak-256 للمفتاح العام للحساب.
عملياتهم تعتمد بالكامل على السحب وتعتمد على منطق الشيفرة المنفذة.
نظرًا لأن هذه الحسابات يمكن التحكم فيها فقط من خلال مضمون الكود الخاص بها، فإنها لا تحتاج إلى مفتاح خاص ولديها فقط مفتاح عام. وبالتالي، فإن أي وكيل لديه القدرة على تحديث/تغيير مضمون كود حساب عقد سيكون قادرًا على الوصول إلى رصيده.
يتم اشتقاق عنوان CA من عنوان مبتكره وعدد الصفقات حتى نقطة نشر العقد.
المعاملات
وصفنا مؤخرًا الحسابات على أنها كيانات تمتلك القدرة على إرسال المعاملات عبر إثيريوم. يمكننا بالتالي أن نفهم أن الغرض الأساسي من الحساب هو إرسال واستقبال المعاملات، بينما يعمل البلوكشين كدفتر يسجل تاريخ المعاملات ويصف كيفية تغيير حقول الحساب بناءً على القواعد الموضحة في مواصفات بروتوكول البلوكشين.
فما هي هذه "المعاملات"؟
المعاملات هي العمليات المرسلة من حساب، والتي تتسبب في تغيير "الحالة" الشبكة. إنها تعليمات موقعة بشكل تشفيري من الحسابات، والتي تؤدي إلى تحديث الحالة على مستوى الشبكة عند تنفيذها.
يأتي عدم الحاجة إلى إذن بتكلفة من المحفزات الخاطئة، وللتعامل مع هذه الأمور، يجب تحديد إرشادات صارمة (أو قواعد الصلاحية) للتفاعلات في مثل هذه البيئات.
في هذا السياق، يجب أن تتبع المعاملات قواعد الصلاحية المعينة لتعتبر صالحة ومنفذة. يتم تنفيذ معظم هذه القواعد من خلال القيود المفروضة على الحساب الذي يرسل المعاملة، وتختلف استناداً إلى نوع الحساب.
في إثيريوم، يتم تحسين EOAs للقابلية للاستخدام حيث أنها تواجه المستخدم النهائي. لديها القدرة على إرسال المعاملات بطريقة محددة والتشغيل بشكل مستقل تمامًا. يمكن أيضًا إنشاؤها محليًا، والطريقة الأكثر شيوعًا هي استخدام مزودي المحافظ مثل MetaMask و Rainbow و Rabby وما إلى ذلك.
من ناحية أخرى ، يمكن لحسابات العقود فقط إرسال المعاملات التي يسمح بها منطقها ، استجابة لكونها "تسمى". أيضا ، لا يمكن إنشاؤها إلا بواسطة EOA التي لديها رصيد كاف لدفع تكاليف تخزين الحالة الخاصة بها.
وصف أعلى مستوى آخر سيكون أن حسابات العناوين الخارجية يمكن أن تحتوي فقط على رصيد، بينما يمكن للحسابات الذكية أن تحتوي على كل من الرصيد والمنطق الذي يحدد كيفية إنفاق هذا الرصيد.
تتميز هذه الخصائص بسبب المعلمات المنطقية التالية التي تحدد القواعد التي يجب أن تلتزم بها معاملات الحساب:
تم تصميم هذه المعلمات لتكون صارمة للحسابات الخارجية بالتالي:
بشكل عام، تقيد منطقية تنفيذ EOAs بإجراء صفقة واحدة فقط لكل توقيع صالح.
من ناحية أخرى، لدى CAs مزيد من المرونة حول هذه المعلمات:
في معظم الحالات العملية ، يتم استخدام المنطق المستخدم في هذه الحالة تقنية التوقيع المتعددة التي تنص على أنه يتطلب M من N تواقيع صحيحة (حيث M < N) من حسابات محددة (عادةً EOAs) لكي يكون تغيير منطق CA صالحًا.
عند تقييم هذه الميزات، نلاحظ أن كل نوع من الحسابات مصمم لديه تناقض بين الاستقلالية والقابلية للبرمجة.
تتمتع EOAs بالحكم الكامل ولكن بإمكانيات برمجية محدودة؛ يمكنهم تفويض وإرسال المعاملات في أي وقت يرغبون فيه، ولكن يجب أن تلتزم هذه المعاملات بتنسيق صارم لتعتبر صالحة. تتمتع CAs بإمكانيات برمجية كاملة (محدودة فقط بتصميم EVM) ولكن بحكمة محدودة؛ لا تتطلب معاملاتهم أي تنسيق صارم، ولكن يمكن إرسالها فقط نظرًا لاستدعاء منطقهم أولاً.
في القسم التالي، سندرس الآن تأثيرات هذه الخيارات التصميمية، من أجل فهم الاقتراح بشكل كامل لكل EIP مطروح في هذه السلسلة.
الآن بعد أن لدينا معرفة موجزة إلى حد ما بوظائف الحسابات المختلفة، يمكننا بسهولة تحديد نقاط بيعها وكذلك المشكلات التي تواجه المستخدمين والمطورين على إثيريوم.
كما ذكرنا سابقًا ، تم تصميم EOAs كحسابات متميزة تستهدف المستخدمين النهائيين. تم تصميم التطبيقات للتفاعل معها بسهولة ، ولا يوجد تعقيد تقريبًا فيها ، وبالطبع لا يوجد تكلفة لإنشاء واحدة. ومع ذلك ، يأتي بساطتها بفقدان كبير للجديد ، حيث تم تصميمها لتكون محددة بدقة.
بعض المخاوف المتعلقة بها هي:
ليس كل شخص يريد (أو سيكون قادرًا على) الاحتفاظ بالإيثيريوم دائمًا (أعني انظر إلى تلك الحركة في الأسعار) ، لذا فإن الحلول الجديرة بالاعتبار هي السماح بعملات الغاز المتعددة (صعب جدًا ، ويكسر العديد من القواعد كما هو موضح في قسم "العملة")هناأو السماح بتسوية مدفوعات الغاز عن طريق حساب آخر ليس منشأ المعاملة.
على الطرف الآخر من طيف الحسابات، تستهدف الشهادات الرقمية المطورين وقاعدة مستخدمين أكثر تقنية. إنها تعمل كمركبات للعقود الذكية (أي نحن نعتبر العقود الذكية أن تكون منطقها المحتوى أو الكود) وبالتالي يمكنها تنفيذ تنسيقات المعاملات الجديدة كما يتيحه ال EVM.
ومع ذلك، بالنسبة لجميع هذه الميزات فإنها حسابات من الدرجة الثانية المبجلة لأنها ليست لديها استقلالية. بعض عيوبها على النحو التالي:
بعد مراجعة الخيارات التصميمية التي أدت إلى المشاكل المحددة في هذا الفرع، يمكننا الآن المضي قدمًا في تقييم الحلول المقترحة.
كانت مفهوم تجريد الحساب (من خلال الحسابات الذكية على الأقل) دائمًا جزءًا أساسيًا من خريطة طريق إثيريوم. الحكايات تقول إن التعقيد المحيط بتنفيذه تهدد بتأخير إطلاق إثيريوم بشكل أكبر، ولذلك تم التخلي عنه للتصميم الحالي مع حسابات مختلفة تقدم وظائف مختلفة. تم تأجيله مرة أخرى بسبب تركيز إثيريوم على الاندماج، والآن يعود كجزء رئيسي من ترقية الشبكة الرئيسية التالية - Pectra. ومع ذلك، لا يزال يعتبر تعقيده عائقًا كبيرًا يمنع تمجيده، خاصة مع تحول إثيريوم إلى خريطة طريق تركيبية محورية.
المتطلبات الآن ذاتية الطيف:
بشكل حدسي، يلعب هذا المفهوم دورًا أكبر في سياق تجريد السلسلة وقابلية التشغيل المتقاطعة، ومع ذلك، يقتصر نطاقنا طوال هذا التقرير على المبادرات التقنية المتخذة لتحقيق تجريد الحساب نفسه.
تهدف تجريد الحساب إلى دمج أفضل ميزات حسابات المالك الخارجي وحسابات العقود في معيار حساب جديد - حسابات ذكية، تسمح بفصل كامل أو جزئي لقواعد صحة أي حساب إلى منطق التحقق والتنفيذ. بحيث يمكن للحسابات تحديد قواعدها الخاصة بالصحة - كما يسمح به EVM - تمامًا مثل حسابات العقود، مع البقاء مستقلة تمامًا مثل حسابات المالك الخارجي.
غالبًا ما تكون هناك الكثير من الارتباك حول الاختلافات بين الحسابات الذكية ومحافظ العقود الذكية ، لذا دعنا نصف بشكل صريح ما هي هذه الاختلافات أدناه:
تسهل تجارة محافظ العقد الذكية اعتماد شهادات النماذج المعمارية من قبل الأسواق الأوسع ، مما يسمح للمستخدمين الأقل تقنية بالاستفادة من الميزات التي تقدمها. ومع ذلك ، فإنها تواجه لا يزالون المخاطر المرتبطة بشهادات النماذج المعمارية.
عد إلى المحادثة؛ لقد ناقشنا سابقًا المعايير التي تُستخدم لتحديد قواعد صحة معاملات الحسابات:
قد يشار إلى قيم المعلمات الأربعة الأولى جماعيًا باسم منطق التحقق من الحساب ، وهي عبارة عن فحوصات تحدث قبل بدء تنفيذ الصفقة.
المعلمة الأخيرة تحدد كيفية تنفيذ العملية.
في المقدمة، قدمنا نظرة عامة على المشهد الحالي لتجريد الحساب في شكل تصنيف للتصميمات المقترحة المختلفة. سنركز الآن على الفئة الأولى من الحلول لمشكلة حساب Ethereum- إمكانية برمجة EOA.
أكبر جاذبية ل Ethereum هي نظامها البيئي DeFi الشاب والنابض بالحياة والذي يتميز بمجموعة متنوعة من التطبيقات اللامركزية التي تعد أحواض السيولة الأساسية. تم تحسين معظم هذه التطبيقات اللامركزية لخدمة EOAs ، وبالتالي يصعب التفاعل مع المراجع المصدقة ، وفي النهاية الحسابات الذكية. في حين أن محافظ العقود الذكية تساعد المراجع المصدقة في هذه الحالة ، إلا أنها تأتي مع قيودها الخاصة وتجربة مستخدم مختلفة تماما.
تُستكشَف حلول مؤقتة بينما يتعود مُقدمو تطبيقات اللامركزية وموفري المحافظ على معيار الحساب الذكي، وذلك لتوفير تحسينات مؤقتة للحسابات الخارجية الذاتية التي تمكّنها من التغلّب على معظم القيود المفروضة عليها، سواء كان ذلك بالنسبة للتحقق من صحتها أو منطق تنفيذها.
أدناه، نستعرض مواصفات ثلاث EIPs رئيسية توفر طرقًا قابلة للتنفيذ إلى برمجة EOA؛ من الأقل شهرةEIP 5806، إلى الطموحEIP 3074ثم أخيرًا إلى الفائزEIP 7702.
تسعى هذه المقترحات إلى جلب المزيد من الوظائف إلى معيار EOA عن طريق السماح له بإجراء مكالمات وكيل إلى منطق حساب العقد (العقد الذكي الخاص به). هذا يؤدي بفعالية إلى تنفيذ العقد الذكي في سياق EOA المتصل، أي أن EOA يظل تحت السيطرة منطق التحقق من صحة، بينما يتم التعامل مع منطق التنفيذ بواسطة منطق CA المقابل.
قبل أن نقدم أي تقدم أكثر، دعنا نقوم برحلة عبر ذاكرة تطور إثيريومEIP-7.
اقترح EIP-7 إنشاء تعليمة 0xf4/DELEgateCALL ، والتي تُستخدم لإرسال مكالمات الرسائل إلى حساب أساسي بمنطق حساب ثانوي، مع الحفاظ على قيم حقول الحساب الأساسي [المُرسِل] و [القيمة].
بعبارة أخرى، يقوم الحساب الأساسي بـ"الاستدانة" (أو الاقتراض إذا كنت تفضل) منطق الحساب الثانوي لبعض المدة المحددة في استدعاء الرسالة، بحيث يتم تنفيذ منطق الأخير في سياق الأول.
هذا الرمز البرمجي يسمح لمطوري التطبيقات المشفرة بتقسيم منطق تطبيقهم إلى عدة عقود ذكية مترابطة بشكل فعال، حتى يتمكنوا بسهولة من تجاوز حواجز حجم الرمز البرمجي وحواجز الغاز.
حسنًا، فما الذي تسمح به المكالمات المفوّضة للحسابات المُصدّقة لتكون متكاملة؟ حسنًا، يستخدم EIP-5806 EIP-7 كمصدر إلهام لاقتراح توسيع وظيفة المكالمة المفوّضة إلى حسابات العقود الذكية والحسابات الخارجية؛ أي، دعونا نسمح أيضًا للحسابات الخارجية أن تكون متكاملة مع حسابات العقود الذكية، لماذا لا.
يقدم EIP 5806 جديدمتوافق مع EIP-2718نوع الصفقة الذي يتم تجميعه على النحو التالي:
rlp([chainID، nonce، max_priority_fee_per_gas، max_fee_per_gas، gas_limit، destination، data، access_list، signature_y_parity، signature_r، signature_s]).
تم تصميم هذه المعاملات بحيث يمكن أن يقبل حقل [إلى] - الذي يمثل عنوان المستلم - فقط عناوين كإدخالات بطول 20 بايتًا، مما يعطل المرسل من استخدام تعليمة الإنشاء CREATE.
الدافع وراء كل مكون من مكونات نظام RLP هو كما يلي:
بينما يسمح تغليف معاملات EIP-5806 في أظرفة EIP-2718 بكونها قابلة للتوافق مع الإصدارات السابقة بشكل كبير، فإن حسابات التنفيذ ذات التوكيل (EOAs) ليست مكافئة للحسابات التعاقدية (CAs). لذا يجب تحديد قيود معينة في الطريقة التي يستخدم بها حساب التنفيذ ذو التوكيل المكالمات التنفيذية لمنع كسر الثوابت.
تستهدف هذه القيود العمليات التالية:
التطبيق الأساسي لـ EIP 5806 هو تجريد التنفيذ لـ EOAs. يسمح لـ EOAs بالتفاعل بثقة مع العقود الذكية بعيدًا عن المكالمات البسيطة لمنطقها البرمجي ويمنحهم ميزات مثل:
التغييرات التي اقترحها EIP-5806 ، مع تمكين الميزات المطلوبة ، ليست جديدة بشكل خاص. يعتمد وجودها في الغالب على EIP-7 الذي يعمل بالفعل. هذا يسمح لها بتجاوز العديد من العقبات المحتملة للقبول.
أحد أهم المخاوف التي أعرب عنها في أيامها الأولى كانت المخاطر المحتملة للسماح لحسابات الإيثريوم الخارجية بالوصول إلى التخزين وتغييره، تمامًا كما تفعل الحسابات الذكية حاليًا. هذا يكسر الكثير من الثوابت المرسخة في الشبكة بخصوص كيفية إجراء المعاملات بواسطة حسابات الإيثريوم الخارجية، وتم التعامل مع هذا من خلال إدخال القيود المذكورة في الفرع السابق.
النقد الثاني (وهو سيف ذو حدين) هو بساطة EIP-5806. هناك بعض الشعور بأن المكافآت الناتجة عن قبول EIP-5806 قد لا تستحق التكلفة ، لأنها تتيح فقط تجريد التنفيذ وليس الكثير. تظل كل قيود صلاحية أخرى محددة للشبكة ل EOAs التي تشترك في EIP-5806 ، على عكس EIPs الأخرى المماثلة إلى حد ما والتي نناقشها في الأقسام الفرعية التالية.
يقترح EIP-3074 السماح للحسابات الخارجية بتفويض معظم منطق التحقق الخاص بها إلى حسابات العقود المتخصصة، المشار إليها بـ المُستدعين، من خلال تراكب منطق المصادقة الخاص بها على المصادقة الخاصة بالأشكال المحددة من المعاملات.
تحقق ذلك عن طريق توقيع سياسة الوصول الخاصة بهم إلى عقد الداعي، الذي يصبح بعد ذلك مسؤولاً عن تحديد سياسة الوصول لـ EOA.
تقترح هذه EIP إضافة اثنين من أوامر التشغيل الجديدة إلى EVM:
هذين الرمزين يسمحان لحساب EOA بتفويض التحكم إلى CA مسبقة التأسيس، وبالتالي، العمل كواحد من خلالها، دون الحاجة إلى نشر عقد وتكبد التكاليف والخارجيات المرتبطة بها.
يسمح EIP-3074 للمعاملات باستخدام تنسيق توقيع [MAGIC] لمنع التعارض مع تنسيقات توقيع المعاملات الأخرى. يتم تعريف الحساب النشط الذي يتم تمرير تعليمات [AUTHCALL] إليه على أنه حقل متغير سياق يسمى [مصرح به]، والذي يستمر فقط من خلال معاملة واحدة ويجب إعادة تعريفه لكل [AUTHCALL] جديد.
قبل التعامل مع تعقيدات كل عملية تعليمية، هذه هي الكيانات المشاركة في عملية EIP-3074:
يتلقى عقود المدعي رسائل [AUTH] بقيمة [COMMIT] من [authority]؛ تحدد هذه القيمة القيود التي يرغب الحساب في وضعها على تنفيذ [authorized] لتعليمات [AUTHCALL].
وبالتالي، يتحمل المستدعين مسؤولية ضمان أن [contract_code] المعرف في حساب [authorized] ليس خبيثًا ولديه القدرة على تحقيق الظواهر الموضوعة من قبل الحساب الأساسي للتوقيع في قيمة [COMMIT].
تحتوي عملية [AUTH] على ثلاثة عناصر في الدرجة التالية؛ أو ببساطة أكثر - يتم تحديدها بواسطة ثلاثة مدخلات تحسب إخراج واحد. هذه المدخلات هي:
يتم استخدام آخر اثنين من المدخلات لوصف نطاق من الذاكرة القابل للتعديل من 0 إلى 97، حيث:
يتم تفسير المتغيرات [yParity] و [r] و [s] بشكل جماعي على أنها توقيع ECDSA ، [سحري] ، على منحنى secp256k1 فوق الرسالة:
[keccak256 (MAGIC || chainID || nonce || invoker address || COMMIT)]
أين:
إذا كان التوقيع المحسوب صالحًا وعنوان الموقع يساوي [authority]، يتم تحديث الحقل [authorized] إلى القيمة المقدمة من [authority]. إذا لم يتم تحقيق أي من هذه المتطلبات، يبقى الحقل [authorized] دون تغيير في حالته السابقة، أو كقيمة غير مضبوطة.
تكلفة الغاز لهذا العملية تحسب كمجموع:
يتم تنفيذ [AUTH] لعدم تعديل الذاكرة، ويأخذ قيمة [authority] كوسيطة لذلك يسهل التحقق من قيمتها من التوقيع المقدم.
تحتوي عملية [AUTHCALL] على سبعة عناصر دخل في الدرجة التراكمية والتي تستخدم لحساب عنصر واحد في الدرجة التراكمية.
له نفس منطق رمز التشغيل [CALL] ، أي ؛ يتم استخدامه لإرسال مكالمات الرسائل إلى حساب وتشغيل منطق محدد في عقوده. الانحراف الوحيد في منطقهم هو أن [AUTHCALL] مصمم لتعيين قيمة [CALLER] قبل متابعة التنفيذ.
بالتالي، يتم استخدام [AUTHCALL] بواسطة [السلطة] لتشغيل سلوك ذي صلة بالسياق في [المعتمد] مع إجراءات التحقق المنطقية التالية:
تُحسب تكلفة الغاز لـ [AUTHCALL] كمجموع:
يتم الوصول إلى البيانات المُرجعة من [AUTHCALL] عبر:
لجمع كل ذلك مع أقل بكثير من الكلام التقني. تحدد معاملات Ethereum عادة قيمتين:
في EOAs ، كما ذكرنا سابقًا ، تكون الترخيص مرتبطًا بشكل وثيق بالتنفيذ ، أي (tx.origin == msg.sender). هذا الثابت البسيط يؤدي إلى معظم المشكلات التي شرحناها في قسم "الحسابات وصحة المعاملات" في هذا التقرير.
رسائل [AUTH] من [authority] تسمح له بتعويض وظيفة tx.origin إلى [authorized]، مع الإبقاء على msg.sender. كما يسمح له بتحديد قيود على هذا الامتياز باستخدام قيمة [COMMIT].
ثم يسمح [AUTHCALL] [المصرح له] بالوصول إلى منطق العقد ، باستخدام [المحتج] كوسيط لضمان أن العقد الذي يرغب في الوصول إليه غير ضار. أي أنه بالنسبة لكل [AUTHCALL] ، [مصرح به] هو تحديد [مستدعي] معين ل [COMMIT].
EIP 3074 مسؤول بشكل أساسي عن السماح ل EOAs بتفويض منطق التفويض الخاص بهم إلى حساب مختلف ، ولكن تصميمه المفتوح يتيح الكثير في سياقات مختلفة.
يمكن تجريد منطق التحقق الكامل لـ EOA عن طريق تطبيق مختلف القيود / الابتكارات على الداعي حسب الضرورة، وتشمل بعض التصاميم الممكنة استنادًا إلى منطقها المستهدف.
أيضًا ، تجريد منطق التنفيذ بشكل بديهي ؛ بعد كل شيء ، المُستدعي (الذي هو CA) مسؤول الآن عن تنفيذ طلبات المعاملات نيابة عن EOA.
اقتباس أحد مؤلفيها: "لا أتوقع أن تعرض المحافظ وظيفة التوقيع على المتذرعين التعسفيين ...". ربما تكون المشكلة الأكبر التي تواجهها مبادرة 3074 هي أن الابتكار فوقها سوف يميل بسهولة إلى تدفقات الصفقات المصرح بها والملكية. تماما مثل التكرارات الحالية لأسواق MEV و PBS في Ethereum.
بشكل افتراضي، يجب مراجعة عقود المستدعي الجيدة بشكل كبير لمنع الهجمات الأسوأ من التي يمكن أن تحدث حاليًا. وهذا سيؤدي بالضرورة إلى نظام بيئي حيث سيتم اعتماد عدد قليل جدًا من عقود المستدعي التي وضعتها شخصيات مؤثرة كالافتراضي لمطوري المحفظة. وبالتالي، فإنه ينحصر في مسألة تجارة بين اتباع المسار اللامركزي الصعب من مراجعة ودعم عقود المستدعي باستمرار على مخاطر أمن المستخدمين؛ أو ببساطة اعتماد عقود المستدعي من مصادر موثوقة ومعروفة مع ضمانات أفضل لأمان المستخدم ومزيد من الإشراف على سلامة العقد.
جانب آخر من هذه النقطة هو وظيفة التكلفة المرتبطة بتصميم وتدقيق وتسويق المستدعي الوظيفي والآمن. سيكون الفرق الأصغر دائمًا متفوقًا تقريبًا على المنظمات الأكبر - خاصة من حيث التسويق - التي لديها بالفعل بعض السمعة المرسومة، حتى لو كان منتجها أفضل.
يعمل EIP-3074 على تعزيز نظام توقيع ECDSA ، حيث يعتبر لا يزال أكثر صحة من نظام الموافقة الذي تم إدخاله عبر المستدعي. في حين يوجد حجج تقول بأن المقاومة للكم ليست مشكلة حاسمة حاليًا ، وأن هناك أمورًا أسوأ من ذلك في مستقبل يمكن فيه تعريض ECDSA للفساد ؛ إلا أن الهدف الغير معلن لـ Ethereum هو أن يكون دائمًا في مقدمة مثل تلك المشاكل. ربما ليس خيارًا مثاليًا في المستقبل القريب التضحية بالمقاومة للكم والرقابة من أجل تحسينات طفيفة في تجربة المستخدم.
نقطة أخرى في حجة التوافق المستقبلي هي أنه في حين كانت فوائد 3074 لا تزال قيد التقييم ، فقد حقق ERC-4337 (الذي لا يتطلب أي تغييرات في البروتوكول) الآن سوقًا رائعًا ، لذا يجب أن تكون متوافقًا معها أيضًا لتجنب تجزئة الأنظمة الإيكولوجية.
حتى مع خارطة طريق تجريد الحساب الأصلية، ستصبح عمليات [AUTH] و [AUTHCALL] في نهاية المطاف قديمة في EVM، مما يضيف الكثير من الديون الفنية إلى إثيريوم من أجل تقديم كمية ضئيلة من تحسين تجربة المستخدم.
بعد إرسال رسالة [AUTH] وتفويض التحكم ، من المتوقع أن تتجنب EOA نظام تفويض المفتاح الخاص المعتاد ، لأن إرسال معاملة "عادية" يؤدي إلى إلغاء التفويض الذي فوضته إلى كل محتج.
وبالتالي، فإن نظام ECDSA لا يزال يفوق بشكل صارم أي نظام تفويض آخر قد يتيحه العقود المرتبطة، وهذا يعني أن فقدان المفاتيح الخاصة سيؤدي إلى فقدان كلي لأصول الحساب.
كانت هذه الاقتراحات في البداية مقترحة كتقليص طفيف للغاية لـ EIP 3074، وحتى المقصودليكون تحديثًا له. تم ولادته لمعالجة الفشل المفترض لـ EIP 3074 ، وخصوصًا المخاوف المتعلقة بعدم التوافق مع النظام البيئي الذي يزدهر بالفعل 4337 واقتراح تجريد الحساب الأصلي - RIP 7560.
إن نهجها هو إضافة نوع جديد من عملية EIP 2718 المتوافقة -[SET_CODE_TX_TYPE]- الذي يسمح لحساب EOA بأن يتصرف كحساب ذكي للمعاملات المحددة.
هذا التصميم يتيح نفس الميزات كما في EIP 5806 وبعض المزيد، مع البقاء متوافقاً مع خارطة طريق تجريد الحساب الأصلية والمبادرات الحالية.
يسمح EIP-7702 لـ EOA بـ "استيراد" محتوى الكود لعقد من خلال معاملة متوافقة مع [SET_CODE_TX_TYPE] 2718 من النوع:
rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, value, data, access_list, authorization_list, signature_y_parity, signature_r, signature_s])
تشبه هذه الحمولة تماما حمولة EIP 5806 ، باستثناء أنها تقدم "قائمة تفويض". هذه القائمة عبارة عن تسلسل مرتب لقيم التنسيق:
[[chain_id, address, nonce, y_parity, r, s], …]
حيث يحدد كل tuple قيمة [address].
قبل المتابعة، الأطراف المعنية في SET_CODE_TX_TYPE هم:
عندما توقع [السلطة] على SET_CODE_TX_TYPE يحدد [العنوان]، يتم إنشاء معين تفويض. هذا هو "برنامج المؤشر" الذي يتسبب في توجيه جميع طلبات استرجاع التعليمات البرمجية بسبب إجراءات [السلطة] في أي لحظة إلى رمز [العنوان] الذي يمكن ملاحظته.
بالنسبة لكل [chain_id ، عنوان ، nonce ، y_parity ، r ، s] tuple ، تتدفق منطق عملية نوع 7702 على النحو التالي:
يسمح هذا EIP لحسابات EOAs بإرسال المعاملات التي تضع مؤشرًا على كود عقد، مما يتيح لهم تنفيذ هذا المنطق كخاص بهم في المعاملات التالية. وبهذه الطريقة، فهو أقوى بكثير من EIP 5806، لأنه يتيح لحسابات EOAs الحصول على محتوى الكود الفعلي طالما أرادوا ذلك (على عكس EIP 5806 الذي يسمح ببساطة لحسابات EOAs بإرسال المكالمات الوكيلة).
بينما يمكن الجدل بأنه لم يعد تجريدًا بما أن EOA يأخذ بنشاط المنطق الذي يرغب في تنفيذه، إلا أنه لا يزال ليس "المالك الأساسي" لذلك المنطق. أيضًا، فإنه لا يحتوي مباشرة على منطق، بل يحدد ببساطة مؤشرًا إلى المنطق (من أجل تقليل التعقيد الحسابي). لذا نحن نتبع تجريد التنفيذ!
على الرغم من أن الشرط (require(msg.sender == tx.origin)) مكسور للسماح بالترويج الذاتي، إلا أن EIP لا يزال يسمح بتكامل موجهي المعاملات الراعية. ومع ذلك، الإشكالية تكمن في أن مثل هذه الموجهين يحتاجون إلى نظام مبني على السمعة أو الرهن لمنع هجمات التشويش.
يمكن لـ EOAs أن تشير فقط إلى جزء محدد من كود الحساب، بحيث يكون البرمجيات الخاصة بذلك الجزء قابلة للتنفيذ في سياقها فقط.
يتيح ذلك أيضًا وجود مفاتيح فرعية تمكن من 'تخفيض الامتيازات'، بحيث يكون لدى تطبيقات القرصنة النقدية الرقمية الوصول إلى رصيد الحساب فقط في ظروف محددة. على سبيل المثال، يمكنك أن تتخيل إذنًا لإنفاق الرموز ERC-20 ولكن ليس الإيثريوم، أو لإنفاق ما يصل إلى 1% من الرصيد الإجمالي يوميًا، أو للتفاعل فقط مع تطبيقات محددة.
نظرًا لطبيعتها غير التقييدية، يمكن أن تسمح عملية EIP-7702 للمستخدم بالوصول إلى تعليمة CREATE2 واستخدامها لنشر بايتات التعليمات البرمجية إلى عنوان دون وجود معلمات قيدية أخرى مثل منطق سوق الرسوم (على سبيل المثال EIP-1559 و EIP-4844). يتيح هذا استعادة العنوان واستخدامه عبر عدة آليات حالة، مع نفس البايتات التعليمية، حيث تكون حسابه على كل سلسلة مسؤولة بعد ذلك عن تحديد معلمات السياق المتغيرة الأخرى.
بينما لا يزال EIP-7702 حديثًا جدًا ، إلا أنه تم بالفعل إجراء الكثير من عملية النمذجة والاختبار لتبعياته وعيوبه المحتملة ، ولكن النموذج البسيط يضمن له الكثير من المرونة وبالتالي الفائدة في سياقات مختلفة. ومع ذلك ، فإنه يكسر العديد من الثوابت ولا يكون متوافقًا مع الإصدارات السابقة على الفور.
بعض منطقه يشمل:
معظم المستخدمين ليسوا على دراية بالمحتويات الفعلية للحساب (أو حتى الفرق بين الحساب والعنوان!) ، بحيث يعني السماح بتضارب العناوين أن EOA يمكن أن يتنكر في صورة مرجع مصدق ويجذب أموال المستخدمين في جزء طويل لسرقة كل شيء في النهاية. عالج EIP-3607 هذا من خلال النص على أن الحسابات التي تحتوي على رمز يجب ألا تكون قادرة على إنفاق رصيدها باستخدام منطق التفويض الخاص بها. ومع ذلك ، فإن EIP 7702 يكسر هذا الثابت من أجل تمكين EOAs من البقاء مستقلا حتى بعد اكتساب بعض قابلية البرمجة.
توقيع عنوان الحساب بدلاً من محتوى رمزه هو في الأساس مثل حيلة 3074 مع المستدعين. لا يوفر ضمانات صارمة حول توافق محتوى رمز السلسلة العابرة ، حيث يمكن للعنوان أن يحمل محتوى رمز مختلف على سلاسل مختلفة. هذا يعني أن العنوان الذي يحتوي على نفس المنطق في محتوى رمزه على سلسلة واحدة يمكن أن يكون مفترسًا أو خبيثًا تمامًا على سلسلة أخرى ، وهذا يمكن أن يؤدي إلى فقدان أموال المستخدمين.
EOAs في شكلها الحالي اليوم محدودة بشكل كبير لأنها لا تسمح للمستخدمين بالاستفادة من ميزات البرمجة المقدمة من قبل EVM. بينما هناك مسارات مختلفة لترقية الحسابات، كما هو موضح في بداية هذا التقرير، يجب أن تحتفظ الحلول المختارة بمبادئ الحفظ الآمن والذاتي. علاوة على ذلك، قد تؤثر ترقيات EOAs بشكل كبير على تجربة المستخدم ومطوري التطبيقات لذا يجب أن يتم اعتبار أصوات جميع أصحاب المصلحة.
السماح للEOAs بتنفيذ الكود بأي طريقة يوسع بشكل كبير وظيفة الحسابات، ولكن هذه القابلية الجديدة تأتي مع مخاطر معنوية وعراقيل محتملة. حل هذه التناقضات أمر حاسم لتقديم ترقية تتمتع بفوائد تجربة مستخدم غير متنازع عليها لمستخدمي إثيريوم.
ثقافة إثيريوم المفتوحة للنقاش تجعلها ساحة اختبار رائعة لمثل هذه الابتكارات لأن تقريبًا كل تأثير لكل تصميم يتم تحليله بدقة من قبل خبراء الموضوع. يجب أن يساعد هذا الاعتبار الشامل في التخفيف من مخاطر السلوك غير القانوني من الخصوم.
حاليًا ، يُعتبر EIP-7702 هو رمز الطفل المعلق للآليات التي تسعى إلى جلب البرمجة للحسابات الخارجية لـ EVM ، حيث تم وضع علامة عليه كبديل للفتحة في ترقية Pectra لـ EIP 3074. إنه يرث التصميم المفتوح للآلية 3074 بينما يقلل بشكل كبير من سطح الهجوم / المخاطر. كما يتيح المزيد من خلال تجنب القيود التي تفرضها 3074 على فئات معينة من الأوبكود.
بينما لا يزال هناك بعض التحسينات التي يتم إجراؤها على تصميم الاقتراح، فقد حظي بالفعل على الكثير من الإرادة الحسنة والدعم من المطورين، خاصةً لأنه يحظى بدعم مباشر من فيتاليك.
داخل المجتمع هناك ادعاءات بأن هذا النهج في تجريد الحساب قد يكون حتى أفضل من الحسابات الذكية. يؤكد هذا التعليق أن هذا المسار يتطلب تغييرات أقل ولا يكون بمعقد، وأن حسابات الإرث الذاتي موجودة بالفعل. ومع ذلك، يجب أن نتذكر المعلمة الأمنية المستقبلية لمقاومة الكم على كل مستوى من مستويات شبكة إثيريوم. هذه الأمان الكمي غير قابلة للتحقيق مع نموذج الحساب الحالي الأساسي بسبب استخدام مخططات توقيع ECDSA لتفويض الحسابات الذاتية.
وبالتالي، يجب أن يُنظر إلى قابلية برمجة الحساب الخارجي المميزة كخطوة على طول الطريق نحو الحسابات الذكية وليس الوجهة. إنه يعزز الحسابات الخارجية ويتيح تجربة مستخدم ومطور أفضل، مع البقاء متوافقًا مع هدف التجريد النهائي للحسابات الذكية.
في تقريرنا القادم، سنقوم بالغوص في خطط ترحيل EOA لنرى مدى ملائمتها في خريطة تجريد الحساب، تابعونا!