44 / 736RULES

قواعد الإجماع

القواعد التي يستخدمها كل Full Node للتحقق من المعاملات والكتل بصورة مستقلة، دون الاضطرار إلى الثقة بالمعدّن أو بمزوّد المحفظة.

تحدّد قواعد الإجماع المعاملات والكتل التي يمكن أن يقبلها Bitcoin. ويطبّقها كل Full Node بصورة مستقلة، وهو برنامج يتحقق من الشبكة بنفسه. يفحص مثلًا أن الأموال نفسها لا تُنفق مجددًا، وأن شروط الإنفاق المكتوبة بلغة Bitcoin Script مستوفاة، وأن الكتلة تحمل Proof of Work صحيحًا، أي دليلًا على إيجاد حل لمسألة التعدين. ويتحقق أيضًا من كمية البيتكوين الجديدة التي تُنشأ. ولا تمنح القدرة الحاسوبية الأكبر المعدّن حق تجاوز هذه القواعد.

تخيّل أن شخصًا يستخدم الأموال نفسها من دفعة سابقة ليدفع لك أولًا ثم ليدفع لمتجر. لا يمكن أن يكون الإنفاقان جزءًا من سجل صالح. وللتحقق من ذلك تتتبّع العقدة مخرجات المعاملات، وهي سجلات للمبالغ وشروط إنفاقها. عندما تتلقى العقدة كتلة، تتحقق من مطابقتها للقواعد التي تطبّقها، لا من هوية من أوصى بها. وتشمل الفحوص توافر المخرجات المراد إنفاقها، وشروط Bitcoin Script والتوقيعات المطلوبة، وProof of Work، والمكافأة المسموح بها للمعدّن. مخالفة قاعدة تعني رفض الكتلة. ولا يغيّر دعم شركة أو أغلبية الأصوات على الإنترنت هذه النتيجة. [1]

يختار المعدّن المعاملات ويبحث عن كتلة، بينما يتحقق Full Node من النتيجة بصورة مستقلة. يستطيع المطوّرون اقتراح تغيير وإصدار برنامج، لكن ذلك وحده لا يغيّر قواعد العقد الأخرى. يختار مشغّل العقدة البرنامج الذي يشغّله. ويحدّد اختياره ما تقبله عقدته هو، لا ما يجب على الجميع قبوله. [2] [1]

للعقدة أيضًا قواعد تخص المعاملات غير المؤكدة: أيّها تحفظه في Mempool، مجموعتها المحلية من المعاملات التي تنتظر التأكيد، وأيّها تمرّره إلى عقد أخرى. تسمّى هذه القواعد المحلية policy، وقد تكون أشد من قواعد الإجماع. لذلك فإن رفض معاملة من مجمّع الذاكرة لا يعني وحده أنها ستكون غير صالحة داخل كتلة. ولا تُطبّق سياسة ترحيل المعاملات عند التحقق من الكتل. [3]

يضيّق Soft Fork نطاق ما تسمح به القواعد: فالكتل الصالحة وفق القواعد الجديدة تستوفي القديمة أيضًا. لكن العقد الأقدم لا تتحقق من الشروط الجديدة. أما Hard Fork فقد يسمح بكتلة ترفضها العقد الأقدم. تساعد آلية التفعيل على تنسيق التغيير؛ لكنها لا تضمن موافقة الجميع ولا تحل محل قرار المشغّلين بشأن البرنامج الذي يستخدمونه. [4]

يتيح لك تشغيل Full Node خاص بك التحقق من الكتل المستلمة بدل الاعتماد على موقع لاستكشاف الكتل. وقد تعرف العقدة عدة فروع، أي امتدادات مختلفة لتاريخ مشترك. وتختار من بين الفروع الصالحة وفق chainwork، وهو مجموع العمل المحتسب لكل كتلة بحسب صعوبة تعدينها. لا يقيس هذا المقدار الكهرباء المستهلكة فعليًا، ولا يكتفي بعدّ الكتل. والعمل الأكبر لا يبرّر مخالفة القواعد. ولكي تصل العقد إلى النتيجة نفسها، يجب أن تطبّق القواعد بالطريقة نفسها حتى في الحالات غير المعتادة. وقد يجعلها خطأ برمجي تختلف بشأن الكتل التي تقبلها. [4] [5]

قد ترفض العقدة ترحيل معاملة لأن رسمها منخفض جدًا. لكن إذا أدرجها معدّن في كتلة واستوفت المعاملة والكتلة قواعد الإجماع، تقبل العقدة الكتلة. أما إذا خصّص المعدّن لنفسه أكثر من الكمية المسموح بإنشائها من البيتكوين الجديدة، المسمّاة Block Subsidy، مضافًا إليها رسوم معاملات الكتلة، فترفض العقدة الكتلة حتى مع Proof of Work صحيح. الفارق هو سبب الرفض، لا سمعة المعدّن. [3] [1]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Full Node, Soft Fork, Proof of Work, Bitcoin Core, Bitcoin Script, Mempool. تشير إلى هذا المدخل أيضًا 21 Million, Soft Fork, Hard Fork, BIP (Bitcoin Improvement Proposal).

DOC · 001Bitcoin Core — Block validationمصدر أولي DOC · 002Bitcoin whitepaperمصدر أولي DOC · 003Bitcoin Core — Transaction Relay Policyتوثيق DOC · 004Bitcoin Developer Guide — Consensus Rule Changesتوثيق DOC · 005Bitcoin Core — Chainwork calculationمصدر أولي
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية