الكتل
الكتل هي دفعات من المعاملات تحتوي على تجزئة للكتلة السابقة في السلسلة. هذا يربط الكتل معًا (في سلسلة) لأن التجزئات تُشتق تشفيريًا من بيانات الكتلة. هذا يمنع الاحتيال، لأن تغييرًا واحدًا في أي كتلة في التاريخ من شأنه أن يبطل جميع الكتل التالية حيث ستتغير جميع التجزئات اللاحقة وسيلاحظ ذلك كل من يقوم بتشغيل سلسلة الكتل.
المتطلبات الأساسية
الكتل موضوع مناسب جدًا للمبتدئين. ولكن لمساعدتك على فهم هذه الصفحة بشكل أفضل، نوصيك بقراءة الحسابات، والمعاملات، ومقدمة عن إيثيريوم أولاً.
لماذا الكتل؟
لضمان احتفاظ جميع المشاركين في شبكة إيثيريوم بحالة متزامنة والاتفاق على التاريخ الدقيق للمعاملات، نقوم بتجميع المعاملات في كتل. هذا يعني أنه يتم الالتزام بعشرات (أو مئات) المعاملات، والاتفاق عليها، ومزامنتها في وقت واحد.
مخطط مقتبس من Ethereum EVM illustrated (opens in a new tab)
من خلال المباعدة بين الالتزامات، نمنح جميع المشاركين في الشبكة وقتًا كافيًا للوصول إلى إجماع: على الرغم من أن طلبات المعاملات تحدث عشرات المرات في الثانية، إلا أنه يتم إنشاء الكتل والالتزام بها على إيثيريوم مرة واحدة فقط كل اثنتي عشرة ثانية.
كيف تعمل الكتل
للحفاظ على تاريخ المعاملات، يتم ترتيب الكتل بدقة (تحتوي كل كتلة جديدة يتم إنشاؤها على إشارة إلى الكتلة الأصلية الخاصة بها)، ويتم ترتيب المعاملات داخل الكتل بدقة أيضًا. باستثناء الحالات النادرة، في أي وقت، يتفق جميع المشاركين في الشبكة على العدد الدقيق للكتل وتاريخها، ويعملون على تجميع طلبات المعاملات الحية الحالية في الكتلة التالية.
بمجرد تجميع الكتلة بواسطة مُدَقِّق يتم اختياره عشوائيًا على الشبكة، يتم نشرها إلى بقية الشبكة؛ وتضيف جميع العقد هذه الكتلة إلى نهاية سلسلة الكتل الخاصة بها، ويتم اختيار مُدَقِّق جديد لإنشاء الكتلة التالية. يتم تحديد عملية تجميع الكتل الدقيقة وعملية الالتزام/الإجماع حاليًا بواسطة بروتوكول "إثبات الحصة (PoS)" الخاص بإيثيريوم.
بروتوكول إثبات الحصة (PoS)
إثبات الحصة (PoS) يعني ما يلي:
- يجب على العقد المدققة تخزين حصة تبلغ 32 ETH في عقد الإيداع كضمان ضد السلوك السيئ. يساعد هذا في حماية الشبكة لأن النشاط غير النزيه الذي يمكن إثباته يؤدي إلى تدمير بعض أو كل حصة التخزين تلك.
- في كل خانة (متباعدة بفاصل زمني يبلغ اثنتي عشرة ثانية)، يتم اختيار مُدَقِّق عشوائيًا ليكون مقترح الكتلة. يقومون بتجميع المعاملات معًا، وتنفيذها، وتحديد "حالة" جديدة. يقومون بتغليف هذه المعلومات في كتلة وتمريرها إلى المدققين الآخرين.
- يقوم المدققون الآخرون الذين يتلقون الكتلة الجديدة بإعادة تنفيذ المعاملات للتأكد من موافقتهم على التغيير المقترح للحالة العالمية. بافتراض أن الكتلة صالحة، فإنهم يضيفونها إلى قاعدة البيانات الخاصة بهم.
- إذا تلقى المُدَقِّق كتلتين متعارضتين لنفس الخانة، فإنه يستخدم خوارزمية اختيار التفرع الخاصة به لاختيار الكتلة المدعومة بأكبر قدر من ETH المخزن.
ماذا يوجد في الكتلة؟
هناك الكثير من المعلومات الواردة داخل الكتلة. في أعلى مستوى، تحتوي الكتلة على الحقول التالية:
| الحقل | الوصف |
|---|---|
slot | الخانة التي تنتمي إليها الكتلة |
proposer_index | معرف المُدَقِّق الذي يقترح الكتلة |
parent_root | تجزئة الكتلة السابقة |
state_root | التجزئة الجذرية لكائن الحالة |
body | كائن يحتوي على عدة حقول، كما هو محدد أدناه |
يحتوي body الخاص بالكتلة على عدة حقول خاصة به:
| الحقل | الوصف |
|---|---|
randao_reveal | قيمة تُستخدم لاختيار مقترح الكتلة التالي |
eth1_data | معلومات حول عقد الإيداع |
graffiti | بيانات عشوائية تُستخدم لتمييز الكتل |
proposer_slashings | قائمة المدققين الذين سيتم اقتطاع حصصهم |
attester_slashings | قائمة المصدقين الذين سيتم اقتطاع حصصهم |
attestations | قائمة التصديقات التي تمت ضد الخانات السابقة |
deposits | قائمة الإيداعات الجديدة في عقد الإيداع |
voluntary_exits | قائمة المدققين الذين يغادرون الشبكة |
sync_aggregate | مجموعة فرعية من المدققين تُستخدم لخدمة العملاء الخفيفين |
execution_payload | المعاملات الممررة من عميل التنفيذ |
يحتوي الحقل attestations على قائمة بجميع التصديقات في الكتلة. للتصديقات نوع بيانات خاص بها يحتوي على عدة أجزاء من البيانات. يحتوي كل تصديق على:
| الحقل | الوصف |
|---|---|
aggregation_bits | قائمة بالمدققين الذين شاركوا في هذا التصديق |
data | حاوية بها حقول فرعية متعددة |
signature | توقيع مجمع لمجموعة من المدققين ضد جزء data |
يحتوي الحقل data في attestation على ما يلي:
| الحقل | الوصف |
|---|---|
slot | الخانة التي يتعلق بها التصديق |
index | مؤشرات للمدققين المصدقين |
beacon_block_root | التجزئة الجذرية لكتلة المنارة التي يُنظر إليها على أنها رأس السلسلة |
source | آخر نقطة فحص مبررة |
target | أحدث كتلة حدودية للحقبة |
يؤدي تنفيذ المعاملات في execution_payload إلى تحديث الحالة العالمية. يعيد جميع العملاء تنفيذ المعاملات في execution_payload للتأكد من أن الحالة الجديدة تتطابق مع تلك الموجودة في حقل state_root للكتلة الجديدة. هذه هي الطريقة التي يمكن للعملاء من خلالها معرفة أن الكتلة الجديدة صالحة وآمنة للإضافة إلى سلسلة الكتل الخاصة بهم. إن execution payload نفسه عبارة عن كائن يحتوي على عدة حقول. يوجد أيضًا execution_payload_header يحتوي على معلومات ملخصة مهمة حول بيانات التنفيذ. يتم تنظيم هياكل البيانات هذه على النحو التالي:
يحتوي execution_payload_header على الحقول التالية:
| الحقل | الوصف |
|---|---|
parent_hash | تجزئة الكتلة الأصلية |
fee_recipient | عنوان الحساب لدفع رسوم المعاملات إليه |
state_root | التجزئة الجذرية للحالة العالمية بعد تطبيق التغييرات في هذه الكتلة |
receipts_root | تجزئة شجرة إيصالات المعاملات |
logs_bloom | هيكل بيانات يحتوي على سجلات الأحداث |
prev_randao | قيمة تُستخدم في الاختيار العشوائي للمدقق |
block_number | رقم الكتلة الحالية |
gas_limit | الحد الأقصى للغاز المسموح به في هذه الكتلة |
gas_used | الكمية الفعلية للغاز المستخدم في هذه الكتلة |
timestamp | وقت الكتلة |
extra_data | بيانات إضافية عشوائية كبايتات خام |
base_fee_per_gas | قيمة الرسم الأساسي |
block_hash | تجزئة كتلة التنفيذ |
transactions_root | التجزئة الجذرية للمعاملات في الحمولة |
withdrawal_root | التجزئة الجذرية للسحوبات في الحمولة |
يحتوي execution_payload نفسه على ما يلي (لاحظ أن هذا مطابق للترويسة باستثناء أنه بدلاً من التجزئة الجذرية للمعاملات، فإنه يتضمن القائمة الفعلية للمعاملات ومعلومات السحب):
| الحقل | الوصف |
|---|---|
parent_hash | تجزئة الكتلة الأصلية |
fee_recipient | عنوان الحساب لدفع رسوم المعاملات إليه |
state_root | التجزئة الجذرية للحالة العالمية بعد تطبيق التغييرات في هذه الكتلة |
receipts_root | تجزئة شجرة إيصالات المعاملات |
logs_bloom | هيكل بيانات يحتوي على سجلات الأحداث |
prev_randao | قيمة تُستخدم في الاختيار العشوائي للمدقق |
block_number | رقم الكتلة الحالية |
gas_limit | الحد الأقصى للغاز المسموح به في هذه الكتلة |
gas_used | الكمية الفعلية للغاز المستخدم في هذه الكتلة |
timestamp | وقت الكتلة |
extra_data | بيانات إضافية عشوائية كبايتات خام |
base_fee_per_gas | قيمة الرسم الأساسي |
block_hash | تجزئة كتلة التنفيذ |
transactions | قائمة المعاملات المراد تنفيذها |
withdrawals | قائمة كائنات السحب |
تحتوي قائمة withdrawals على كائنات withdrawal منظمة بالطريقة التالية:
| الحقل | الوصف |
|---|---|
address | عنوان الحساب الذي قام بالسحب |
amount | مبلغ السحب |
index | قيمة مؤشر السحب |
validatorIndex | قيمة مؤشر المُدَقِّق |
وقت الكتلة
يشير وقت الكتلة إلى الوقت الفاصل بين الكتل. في إيثيريوم، يُقسم الوقت إلى وحدات مدتها اثنتا عشرة ثانية تسمى "خانات". في كل خانة، يتم اختيار مُدَقِّق واحد لاقتراح كتلة. بافتراض أن جميع المدققين متصلون بالإنترنت ويعملون بكامل طاقتهم، ستكون هناك كتلة في كل خانة، مما يعني أن وقت الكتلة هو 12s. ومع ذلك، قد يكون المدققون غير متصلين بالإنترنت في بعض الأحيان عند استدعائهم لاقتراح كتلة، مما يعني أن الخانات يمكن أن تظل فارغة في بعض الأحيان.
يختلف هذا التنفيذ عن الأنظمة القائمة على إثبات العمل (PoW) حيث تكون أوقات الكتل احتمالية ويتم ضبطها بواسطة صعوبة التعدين المستهدفة للبروتوكول. يُعد متوسط وقت الكتلة (opens in a new tab) في إيثيريوم مثالاً مثاليًا على ذلك حيث يمكن استنتاج الانتقال من إثبات العمل (PoW) إلى إثبات الحصة (PoS) بوضوح بناءً على اتساق وقت الكتلة الجديد البالغ 12s.
حجم الكتلة
ملاحظة أخيرة مهمة هي أن الكتل نفسها محدودة الحجم. كل كتلة لها حجم مستهدف يبلغ 30 مليون غاز ولكن حجم الكتل سيزداد أو ينقص وفقًا لمتطلبات الشبكة، حتى حد الكتلة البالغ 60 مليون غاز (2x حجم الكتلة المستهدف). يمكن تعديل حد الغاز للكتلة صعودًا أو هبوطًا بمعامل 1/1024 من حد الغاز للكتلة السابقة. نتيجة لذلك، يمكن للمدققين تغيير حد الغاز للكتلة من خلال الإجماع. يجب أن يكون إجمالي كمية الغاز المستهلكة بواسطة جميع المعاملات في الكتلة أقل من حد الغاز للكتلة. هذا مهم لأنه يضمن عدم إمكانية أن تكون الكتل كبيرة بشكل تعسفي. إذا كان من الممكن أن تكون الكتل كبيرة بشكل تعسفي، فإن العقد الكاملة الأقل أداءً ستتوقف تدريجيًا عن القدرة على مواكبة الشبكة بسبب متطلبات المساحة والسرعة. كلما كبرت الكتلة، زادت قوة الحوسبة المطلوبة لمعالجتها في الوقت المناسب للخانة التالية. هذه قوة مركزية، تتم مقاومتها عن طريق وضع حد أقصى لأحجام الكتل.
قراءات إضافية
هل تعرف موردًا مجتمعيًا ساعدك؟ قم بتعديل هذه الصفحة وأضفه!
مواضيع ذات صلة
آخر تحديث للصفحة: 23 فبراير 2026