حسابات إيثيريوم
حساب إيثيريوم هو كيان يمتلك رصيدًا من الإيثر (ETH) ويمكنه إرسال رسائل على إيثيريوم. يمكن أن تكون الحسابات خاضعة لسيطرة المستخدم أو يتم نشرها كعقود ذكية.
المتطلبات الأساسية
لمساعدتك على فهم هذه الصفحة بشكل أفضل، نوصيك بقراءة مقدمة عن إيثيريوم أولاً.
أنواع الحسابات
تحتوي إيثيريوم على نوعين من الحسابات:
- حساب مملوك خارجيًا (EOA) – يتحكم فيه أي شخص يمتلك المفاتيح الخاصة
- حساب عقد – عقد ذكي يتم نشره على الشبكة، ويتحكم فيه الكود. تعرف على العقود الذكية
يتمتع كلا النوعين من الحسابات بالقدرة على:
- تلقي والاحتفاظ وإرسال ETH والرموز المميزة
- التفاعل مع العقود الذكية المنشورة
الاختلافات الرئيسية
المملوكة خارجيًا
- إنشاء حساب لا يكلف شيئًا
- يمكنه بدء المعاملات
- المعاملات بين الحسابات المملوكة خارجيًا لا يمكن أن تكون سوى تحويلات ETH/رموز مميزة
- يتكون من زوج تشفير من المفاتيح: مفاتيح عامة وخاصة تتحكم في أنشطة الحساب
العقد
- إنشاء عقد له تكلفة لأنك تستخدم مساحة تخزين الشبكة
- يمكنه فقط إرسال رسائل استجابةً لتلقي معاملة
- المعاملات من حساب خارجي إلى حساب عقد يمكن أن تؤدي إلى تشغيل كود يمكنه تنفيذ العديد من الإجراءات المختلفة، مثل تحويل الرموز المميزة أو حتى إنشاء عقد جديد
- حسابات العقود ليس لها مفاتيح خاصة. بدلاً من ذلك، يتم التحكم فيها بواسطة منطق كود العقد الذكي
فحص الحساب
تحتوي حسابات إيثيريوم على أربعة حقول:
nonce– عداد يشير إلى عدد المعاملات المرسلة من حساب مملوك خارجيًا أو عدد العقود التي تم إنشاؤها بواسطة حساب عقد. يمكن تنفيذ معاملة واحدة فقط برقم فريد معين لكل حساب، مما يحمي من هجمات إعادة التشغيل حيث يتم بث المعاملات الموقعة وإعادة تنفيذها بشكل متكرر.balance– عدد Wei المملوكة لهذا العنوان. Wei هي فئة من ETH وهناك 1e+18 wei لكل ETH.codeHash– تشير هذه التجزئة إلى كود الحساب على آلة إيثيريوم الافتراضية (EVM). تحتوي حسابات العقود على أجزاء كود مبرمجة يمكنها أداء عمليات مختلفة. يتم تنفيذ كود EVM هذا إذا تلقى الحساب استدعاء رسالة. لا يمكن تغييره، على عكس حقول الحساب الأخرى. يتم احتواء جميع أجزاء الكود هذه في قاعدة بيانات الحالة تحت تجزئاتها المقابلة لاسترجاعها لاحقًا. تُعرف قيمة التجزئة هذه باسم codeHash. بالنسبة للحسابات المملوكة خارجيًا، يكون حقل codeHash هو تجزئة لسلسلة فارغة.storageRoot– تُعرف أحيانًا باسم تجزئة التخزين. تجزئة بحجم 256-bit للعقدة الجذرية لـ شجرة ميركل باتريشيا التي تشفر محتويات تخزين الحساب (تعيين بين قيم صحيحة بحجم 256-bit)، مشفرة في الشجرة كتعيين من تجزئة كيكاك-256 للمفاتيح الصحيحة بحجم 256-bit إلى القيم الصحيحة بحجم 256-bit المشفرة بـ RLP. تشفر هذه الشجرة تجزئة محتويات تخزين هذا الحساب، وتكون فارغة افتراضيًا.
مخطط مقتبس من Ethereum EVM illustrated (opens in a new tab)
الحسابات المملوكة خارجيًا وأزواج المفاتيح
يتكون الحساب من زوج من مفاتيح التشفير: عام وخاص. إنها تساعد في إثبات أن المعاملة تم توقيعها بالفعل من قبل المرسل وتمنع التزوير. مفتاحك الخاص هو ما تستخدمه لتوقيع المعاملات، لذلك يمنحك الوصاية على الأموال المرتبطة بحسابك. أنت لا تمتلك عملة مشفرة فعليًا أبدًا، بل تمتلك مفاتيح خاصة – فالأموال موجودة دائمًا في دفتر أستاذ إيثيريوم.
هذا يمنع الجهات الخبيثة من بث معاملات مزيفة لأنه يمكنك دائمًا التحقق من مرسل المعاملة.
إذا أرادت أليس إرسال إيثر من حسابها الخاص إلى حساب بوب، تحتاج أليس إلى إنشاء طلب معاملة وإرساله إلى الشبكة للتحقق منه. يضمن استخدام إيثيريوم لتشفير المفتاح العام أن أليس يمكنها إثبات أنها بدأت طلب المعاملة في الأصل. بدون آليات التشفير، يمكن لخصم خبيث مثل إيف ببساطة بث طلب علنًا يبدو كالتالي "أرسل 5 ETH من حساب أليس إلى حساب إيف"، ولن يتمكن أحد من التحقق من أنه لم يأتِ من أليس.
إنشاء الحساب
عندما تريد إنشاء حساب، ستقوم معظم المكتبات بإنشاء مفتاح خاص عشوائي لك.
يتكون المفتاح الخاص من 64 حرفًا سداسيًا عشريًا ويمكن تشفيره بكلمة مرور.
مثال:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
يتم إنشاء المفتاح العام من المفتاح الخاص باستخدام خوارزمية التوقيع الرقمي للمنحنى الإهليلجي (opens in a new tab). تحصل على عنوان عام لحسابك عن طريق أخذ آخر 20 بايت من تجزئة كيكاك-256 للمفتاح العام وإضافة 0x إلى البداية.
هذا يعني أن الحساب المملوك خارجيًا (EOA) له عنوان مكون من 42 حرفًا (مقطع بحجم 20 بايت وهو 40 حرفًا سداسيًا عشريًا بالإضافة إلى البادئة 0x).
مثال:
0x5e97870f263700f46aa00d967821199b9bc5a120
يوضح المثال التالي كيفية استخدام أداة توقيع تسمى Clef (opens in a new tab) لإنشاء حساب جديد. Clef هي أداة لإدارة الحسابات والتوقيع تأتي مجمعة مع عميل إيثيريوم، Geth (opens in a new tab). ينشئ الأمر clef newaccount زوج مفاتيح جديدًا ويحفظه في مخزن مفاتيح مشفر.
> clef newaccount --keystore <path>
Please enter a password for the new account to be created:
> <password>
------------
INFO [10-28|16:19:09.156] Your new key was generated address=0x5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please backup your key file path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please remember your password!
Generated account 0x5e97870f263700f46aa00d967821199b9bc5a120
وثائق Geth (opens in a new tab)
من الممكن اشتقاق مفاتيح عامة جديدة من مفتاحك الخاص، ولكن لا يمكنك اشتقاق مفتاح خاص من المفاتيح العامة. من الضروري الحفاظ على أمان مفاتيحك الخاصة، وكما يوحي الاسم، يجب أن تظل خاصة.
تحتاج إلى مفتاح خاص لتوقيع الرسائل والمعاملات التي تُخرج توقيعًا. يمكن للآخرين بعد ذلك أخذ التوقيع لاشتقاق مفتاحك العام، مما يثبت مؤلف الرسالة. في تطبيقك، يمكنك استخدام مكتبة JavaScript لإرسال المعاملات إلى الشبكة.
حسابات العقود
تحتوي حسابات العقود أيضًا على عنوان سداسي عشري مكون من 42 حرفًا:
مثال:
0x06012c8cf97bead5deae237070f9587f8e7a266d
عادةً ما يتم إعطاء عنوان العقد عند نشر عقد على سلسلة كتل إيثيريوم. يأتي العنوان من عنوان المنشئ وعدد المعاملات المرسلة من ذلك العنوان ("الرقم الفريد").
مفاتيح المُدَقِّق
هناك أيضًا نوع آخر من المفاتيح في إيثيريوم، تم تقديمه عندما تحولت إيثيريوم من إثبات العمل (PoW) إلى الإجماع القائم على إثبات الحصة (PoS). هذه هي مفاتيح 'BLS' وتُستخدم لتحديد المُدَقِّقين. يمكن تجميع هذه المفاتيح بكفاءة لتقليل النطاق الترددي المطلوب للشبكة للوصول إلى الإجماع. بدون تجميع المفاتيح هذا، سيكون الحد الأدنى لحصة التخزين للمُدَقِّق أعلى بكثير.
ملاحظة حول المحافظ
الحساب ليس محفظة. المحفظة هي واجهة أو تطبيق يتيح لك التفاعل مع حساب إيثيريوم الخاص بك، سواء كان حسابًا مملوكًا خارجيًا أو حساب عقد.
عرض مرئي
شاهد أوستن وهو يشرح لك دوال التجزئة وأزواج المفاتيح.
قراءة متعمقة
- فهم حسابات إيثيريوم (opens in a new tab) - Etherscan
هل تعرف موردًا مجتمعيًا ساعدك؟ قم بتعديل هذه الصفحة وأضفه!