تخطي إلى المحتوى الرئيسي
Change page

الكتل

تعديل الصفحة (opens in a new tab)

الكتل هي دفعات من المعاملات تحتوي على تجزئة للكتلة السابقة في السلسلة. هذا يربط الكتل معًا (في سلسلة) لأن التجزئات تُشتق تشفيريًا من بيانات الكتلة. هذا يمنع الاحتيال، لأن تغييرًا واحدًا في أي كتلة في التاريخ من شأنه أن يبطل جميع الكتل التالية حيث ستتغير جميع التجزئات اللاحقة وسيلاحظ ذلك كل من يقوم بتشغيل سلسلة الكتل.

المتطلبات الأساسية

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

لماذا الكتل؟

لضمان احتفاظ جميع المشاركين في شبكة إيثيريوم بحالة متزامنة والاتفاق على التاريخ الدقيق للمعاملات، نقوم بتجميع المعاملات في كتل. هذا يعني أنه يتم الالتزام بعشرات (أو مئات) المعاملات، والاتفاق عليها، ومزامنتها في وقت واحد.

A diagram showing transaction in a block causing state changes مخطط مقتبس من Ethereum EVM illustrated (opens in a new tab)

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

كيف تعمل الكتل

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

بمجرد تجميع الكتلة بواسطة مُدَقِّق يتم اختياره عشوائيًا على الشبكة، يتم نشرها إلى بقية الشبكة؛ وتضيف جميع العقد هذه الكتلة إلى نهاية سلسلة الكتل الخاصة بها، ويتم اختيار مُدَقِّق جديد لإنشاء الكتلة التالية. يتم تحديد عملية تجميع الكتل الدقيقة وعملية الالتزام/الإجماع حاليًا بواسطة بروتوكول "إثبات الحصة (PoS)" الخاص بإيثيريوم.

بروتوكول إثبات الحصة (PoS)

إثبات الحصة (PoS) يعني ما يلي:

  • يجب على العقد المدققة تخزين حصة تبلغ 32 ETH في عقد الإيداع كضمان ضد السلوك السيئ. يساعد هذا في حماية الشبكة لأن النشاط غير النزيه الذي يمكن إثباته يؤدي إلى تدمير بعض أو كل حصة التخزين تلك.
  • في كل خانة (متباعدة بفاصل زمني يبلغ اثنتي عشرة ثانية)، يتم اختيار مُدَقِّق عشوائيًا ليكون مقترح الكتلة. يقومون بتجميع المعاملات معًا، وتنفيذها، وتحديد "حالة" جديدة. يقومون بتغليف هذه المعلومات في كتلة وتمريرها إلى المدققين الآخرين.
  • يقوم المدققون الآخرون الذين يتلقون الكتلة الجديدة بإعادة تنفيذ المعاملات للتأكد من موافقتهم على التغيير المقترح للحالة العالمية. بافتراض أن الكتلة صالحة، فإنهم يضيفونها إلى قاعدة البيانات الخاصة بهم.
  • إذا تلقى المُدَقِّق كتلتين متعارضتين لنفس الخانة، فإنه يستخدم خوارزمية اختيار التفرع الخاصة به لاختيار الكتلة المدعومة بأكبر قدر من ETH المخزن.

المزيد عن إثبات الحصة (PoS)

ماذا يوجد في الكتلة؟

هناك الكثير من المعلومات الواردة داخل الكتلة. في أعلى مستوى، تحتوي الكتلة على الحقول التالية:

الحقلالوصف
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