---
title: "حسابات إيثيريوم"
description: "شرح لحسابات إيثيريوم – هياكل بياناتها وعلاقتها بتشفير أزواج المفاتيح."
lang: ar
---

حساب [إيثيريوم](/) هو كيان يمتلك رصيدًا من الإيثر (<span dir="ltr">ETH</span>) ويمكنه إرسال رسائل على إيثيريوم. يمكن أن تكون الحسابات خاضعة لسيطرة المستخدم أو يتم نشرها كعقود ذكية.

## المتطلبات الأساسية {#prerequisites}

لمساعدتك على فهم هذه الصفحة بشكل أفضل، نوصيك بقراءة [مقدمة عن إيثيريوم](/developers/docs/intro-to-ethereum/) أولاً.

## أنواع الحسابات {#types-of-account}

تحتوي إيثيريوم على نوعين من الحسابات:

- حساب مملوك خارجيًا (<span dir="ltr">EOA</span>) – يتحكم فيه أي شخص يمتلك المفاتيح الخاصة
- حساب عقد – عقد ذكي يتم نشره على الشبكة، ويتحكم فيه الكود. تعرف على [العقود الذكية](/developers/docs/smart-contracts/)

يتمتع كلا النوعين من الحسابات بالقدرة على:

- تلقي والاحتفاظ وإرسال <span dir="ltr">ETH</span> والرموز المميزة
- التفاعل مع العقود الذكية المنشورة

### الاختلافات الرئيسية {#key-differences}

**المملوكة خارجيًا**

- إنشاء حساب لا يكلف شيئًا
- يمكنه بدء المعاملات
- المعاملات بين الحسابات المملوكة خارجيًا لا يمكن أن تكون سوى تحويلات <span dir="ltr">ETH</span>/رموز مميزة
- يتكون من زوج تشفير من المفاتيح: مفاتيح عامة وخاصة تتحكم في أنشطة الحساب

**العقد**

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

## فحص الحساب {#an-account-examined}

تحتوي حسابات إيثيريوم على أربعة حقول:

- `nonce` – عداد يشير إلى عدد المعاملات المرسلة من حساب مملوك خارجيًا أو عدد العقود التي تم إنشاؤها بواسطة حساب عقد. يمكن تنفيذ معاملة واحدة فقط برقم فريد معين لكل حساب، مما يحمي من هجمات إعادة التشغيل حيث يتم بث المعاملات الموقعة وإعادة تنفيذها بشكل متكرر.
- `balance` – عدد <span dir="ltr">Wei</span> المملوكة لهذا العنوان. <span dir="ltr">Wei</span> هي فئة من <span dir="ltr">ETH</span> وهناك <span dir="ltr">1e+18 wei</span> لكل <span dir="ltr">ETH</span>.
- `codeHash` – تشير هذه التجزئة إلى _كود_ الحساب على آلة إيثيريوم الافتراضية (<span dir="ltr">EVM</span>). تحتوي حسابات العقود على أجزاء كود مبرمجة يمكنها أداء عمليات مختلفة. يتم تنفيذ كود <span dir="ltr">EVM</span> هذا إذا تلقى الحساب استدعاء رسالة. لا يمكن تغييره، على عكس حقول الحساب الأخرى. يتم احتواء جميع أجزاء الكود هذه في قاعدة بيانات الحالة تحت تجزئاتها المقابلة لاسترجاعها لاحقًا. تُعرف قيمة التجزئة هذه باسم <span dir="ltr">codeHash</span>. بالنسبة للحسابات المملوكة خارجيًا، يكون حقل <span dir="ltr">codeHash</span> هو تجزئة لسلسلة فارغة.
- `storageRoot` – تُعرف أحيانًا باسم تجزئة التخزين. تجزئة بحجم <span dir="ltr">256-bit</span> للعقدة الجذرية لـ [شجرة ميركل باتريشيا](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) التي تشفر محتويات تخزين الحساب (تعيين بين قيم صحيحة بحجم <span dir="ltr">256-bit</span>)، مشفرة في الشجرة كتعيين من تجزئة كيكاك-256 للمفاتيح الصحيحة بحجم <span dir="ltr">256-bit</span> إلى القيم الصحيحة بحجم <span dir="ltr">256-bit</span> المشفرة بـ <span dir="ltr">RLP</span>. تشفر هذه الشجرة تجزئة محتويات تخزين هذا الحساب، وتكون فارغة افتراضيًا.

![A diagram showing the make up of an account](./accounts.png)
_مخطط مقتبس من [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_

## الحسابات المملوكة خارجيًا وأزواج المفاتيح {#externally-owned-accounts-and-key-pairs}

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

هذا يمنع الجهات الخبيثة من بث معاملات مزيفة لأنه يمكنك دائمًا التحقق من مرسل المعاملة.

إذا أرادت أليس إرسال إيثر من حسابها الخاص إلى حساب بوب، تحتاج أليس إلى إنشاء طلب معاملة وإرساله إلى الشبكة للتحقق منه. يضمن استخدام إيثيريوم لتشفير المفتاح العام أن أليس يمكنها إثبات أنها بدأت طلب المعاملة في الأصل. بدون آليات التشفير، يمكن لخصم خبيث مثل إيف ببساطة بث طلب علنًا يبدو كالتالي "أرسل <span dir="ltr">5 ETH</span> من حساب أليس إلى حساب إيف"، ولن يتمكن أحد من التحقق من أنه لم يأتِ من أليس.

## إنشاء الحساب {#account-creation}

عندما تريد إنشاء حساب، ستقوم معظم المكتبات بإنشاء مفتاح خاص عشوائي لك.

يتكون المفتاح الخاص من 64 حرفًا سداسيًا عشريًا ويمكن تشفيره بكلمة مرور.

مثال:

`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f`

يتم إنشاء المفتاح العام من المفتاح الخاص باستخدام [خوارزمية التوقيع الرقمي للمنحنى الإهليلجي](https://wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm). تحصل على عنوان عام لحسابك عن طريق أخذ آخر 20 بايت من تجزئة كيكاك-256 للمفتاح العام وإضافة `0x` إلى البداية.

هذا يعني أن الحساب المملوك خارجيًا (<span dir="ltr">EOA</span>) له عنوان مكون من 42 حرفًا (مقطع بحجم 20 بايت وهو 40 حرفًا سداسيًا عشريًا بالإضافة إلى البادئة `0x`).

مثال:

`0x5e97870f263700f46aa00d967821199b9bc5a120`

يوضح المثال التالي كيفية استخدام أداة توقيع تسمى [Clef](https://geth.ethereum.org/docs/tools/clef/introduction) لإنشاء حساب جديد. Clef هي أداة لإدارة الحسابات والتوقيع تأتي مجمعة مع عميل إيثيريوم، [Geth](https://geth.ethereum.org). ينشئ الأمر `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](https://geth.ethereum.org/docs)

من الممكن اشتقاق مفاتيح عامة جديدة من مفتاحك الخاص، ولكن لا يمكنك اشتقاق مفتاح خاص من المفاتيح العامة. من الضروري الحفاظ على أمان مفاتيحك الخاصة، وكما يوحي الاسم، يجب أن تظل **خاصة**.

تحتاج إلى مفتاح خاص لتوقيع الرسائل والمعاملات التي تُخرج توقيعًا. يمكن للآخرين بعد ذلك أخذ التوقيع لاشتقاق مفتاحك العام، مما يثبت مؤلف الرسالة. في تطبيقك، يمكنك استخدام مكتبة JavaScript لإرسال المعاملات إلى الشبكة.

## حسابات العقود {#contract-accounts}

تحتوي حسابات العقود أيضًا على عنوان سداسي عشري مكون من 42 حرفًا:

مثال:

`0x06012c8cf97bead5deae237070f9587f8e7a266d`

يُعطى عنوان العقد عادةً عند نشر عقد على سلسلة كتل إيثيريوم. يأتي العنوان من عنوان المنشئ وعدد المعاملات المرسلة من ذلك العنوان ("الرقم الفريد"). هذه هي الطريقة التي تشتق بها عملية `CREATE` عنوانًا.

يمكن أيضًا نشر العقود باستخدام [`CREATE2`](https://eips.ethereum.org/EIPS/eip-1014)، والتي تشتق العنوان من عنوان المنشئ، وقيمة يختارها المنشئ ("<span dir="ltr">salt</span>")، وتجزئة كود إنشاء العقد. لا يتضمن ذلك أي رقم فريد، لذلك يمكن حساب العنوان قبل وجود العقد ويبقى كما هو بغض النظر عن عدد المعاملات الأخرى التي يرسلها المنشئ في غضون ذلك. هذا يجعل من الممكن الإشارة إلى عقد لم يتم نشره بعد.

## مفاتيح المُدَقِّق {#validators-keys}

هناك أيضًا نوع آخر من المفاتيح في إيثيريوم، تم تقديمه عندما تحولت إيثيريوم من إثبات العمل (<span dir="ltr">PoW</span>) إلى الإجماع القائم على إثبات الحصة (<span dir="ltr">PoS</span>). هذه هي مفاتيح '<span dir="ltr">BLS</span>' وتُستخدم لتحديد المُدَقِّقين. يمكن تجميع هذه المفاتيح بكفاءة لتقليل النطاق الترددي المطلوب للشبكة للوصول إلى الإجماع. بدون تجميع المفاتيح هذا، سيكون الحد الأدنى لحصة التخزين للمُدَقِّق أعلى بكثير.

[المزيد عن مفاتيح المُدَقِّق](/developers/docs/consensus-mechanisms/pos/keys/).

## ملاحظة حول المحافظ {#a-note-on-wallets}

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

## عرض مرئي {#a-visual-demo}

شاهد أوستن وهو يشرح لك دوال التجزئة وأزواج المفاتيح.

<VideoWatch slug="hash-function-eth-build" />

<VideoWatch slug="key-pair-eth-build" />

## قراءة متعمقة {#further-reading}

- [فهم حسابات إيثيريوم](https://info.etherscan.com/understanding-ethereum-accounts/) - Etherscan

_هل تعرف موردًا مجتمعيًا ساعدك؟ قم بتعديل هذه الصفحة وأضفه!_

## مواضيع ذات صلة {#related-topics}

- [العقود الذكية](/developers/docs/smart-contracts/)
- [المعاملات](/developers/docs/transactions/)
