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

الكتل

آخر تحديث للصفحة: 23 فبراير 2026

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

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

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

لماذا الكتل؟

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

مخطط يوضح معاملة في بلوك تتسبب في تغييرات في الحالة مخطط مقتبس من Ethereum EVM illustrated (opens in a new tab)

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

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

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

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

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

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

  • يجب على العقد المدققة تحصيص 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التجزئة الجذرية لبلوك المنارة (Beacon block) الذي يُعتبر رأس السلسلة
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قيمة مؤشر المُدقِّق

وقت البلوك

يشير وقت البلوك إلى الوقت الذي يفصل بين الكتل. في إيثريوم، يتم تقسيم الوقت إلى وحدات مدتها اثنتا عشرة ثانية تسمى 'فترات زمنية' (slots). في كل فترة زمنية، يتم اختيار مُدقِّق واحد لاقتراح بلوك. بافتراض أن جميع المدقّقين متصلون بالإنترنت ويعملون بكامل طاقتهم، سيكون هناك بلوك في كل فترة زمنية، مما يعني أن وقت البلوك هو 12 ثانية. ومع ذلك، في بعض الأحيان قد يكون المدقّقون غير متصلين بالإنترنت عند استدعائهم لاقتراح بلوك، مما يعني أن الفترات الزمنية يمكن أن تظل فارغة في بعض الأحيان.

يختلف هذا التنفيذ عن الأنظمة القائمة على إثبات العمل حيث تكون أوقات الكتل احتمالية ويتم ضبطها بواسطة صعوبة التعدين المستهدفة للبروتوكول. يُعد متوسط وقت البلوك (opens in a new tab) في إيثريوم مثالاً مثاليًا على ذلك حيث يمكن استنتاج الانتقال من إثبات العمل إلى إثبات الحصة بوضوح بناءً على اتساق وقت البلوك الجديد البالغ 12 ثانية.

حجم البلوك

ملاحظة أخيرة مهمة هي أن الكتل نفسها محدودة الحجم. كل بلوك له حجم مستهدف يبلغ 30 مليون غاز ولكن حجم الكتل سيزداد أو ينقص وفقًا لمتطلبات الشبكة، حتى يصل إلى حد البلوك البالغ 60 مليون غاز (ضعف حجم البلوك المستهدف). يمكن تعديل حد الغاز للبلوك صعودًا أو هبوطًا بمعامل 1/1024 من حد الغاز للبلوك السابق. نتيجة لذلك، يمكن للمدقّقين تغيير حد الغاز للبلوك من خلال الإجماع. يجب أن يكون إجمالي كمية الغاز المستهلكة بواسطة جميع المعاملات في البلوك أقل من حد الغاز للبلوك. هذا مهم لأنه يضمن عدم إمكانية أن تكون الكتل كبيرة بشكل عشوائي. إذا كان من الممكن أن تكون الكتل كبيرة بشكل عشوائي، فإن العقد الكاملة الأقل أداءً ستتوقف تدريجيًا عن القدرة على مواكبة الشبكة بسبب متطلبات المساحة والسرعة. كلما كان البلوك أكبر، زادت قوة الحوسبة المطلوبة لمعالجتها في الوقت المناسب للفترة الزمنية التالية. هذه قوة مركزية، يتم مقاومتها عن طريق وضع حد أقصى لأحجام الكتل.

قراءة إضافية

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

هل كانت هذه المقالة مفيدة؟