Nakamoto Consensus هو اسم الطريقة التي يصل بها Bitcoin إلى سجل معاملات صالح ومشترك دون حكم مركزي. يبدأ Full Node، أي حاسوب يشغّل برنامجًا يتحقق من القواعد بصورة مستقلة، برفض الكتل غير الصالحة. ثم يختار من الفروع الصالحة أكثرها عملًا متراكمًا. تزيد التأكيدات اللاحقة الثقة بالدفع ضمن افتراضات أمنية محددة، لكنها لا تجعله غير قابل للتغيير فورًا.
ترسل آنا دفعة إلى بيتر. ويمكنها أيضًا توقيع معاملة أخرى تنفق الأموال نفسها لصالح إيفا. التوقيع هنا يعني استخدام مفتاح خاص، وهو قيمة عددية سرية، لإنشاء دليل قابل للتحقق على الإذن بالدفع. يستطيع الآخرون فحص التوقيع دون معرفة تلك القيمة السرية. قد يكون التوقيعان صحيحين، لكن لا يمكن أن توجد الدفعتان معًا في سجل صالح واحد. وقد يتلقى بيتر وإيفا الرسالتين بترتيب مختلف. لذلك يحتاج Bitcoin إلى أكثر من فحص التوقيعات: طريقة للاتفاق على الترتيب ومنع الإنفاق المزدوج. يجمع Nakamoto Consensus القواعد وProof of Work واختيار الفرع ومكافآت المعدّنين. لا تستخدم ورقة ساتوشي البيضاء، وهي الوصف التقني الأصلي لـBitcoin، هذا الاسم الذي ظهر لاحقًا. [1] [4]
Full Node الخاص ببيتر ليس ورقة اقتراع. تجمع الكتلة معاملات في دفعة تُضاف إلى السجل المشترك. ويسجّل مخرج المعاملة مبلغًا وشروط إنفاقه لاحقًا. يفحص برنامج Full Node المعاملات والكتل بنفسه: هل المخرجات المراد إنفاقها ما زالت غير منفقة؟ هل تحققت شروط إنفاقها؟ وهل إصدار bitcoin جديد ضمن المقدار المسموح؟ يستطيع المعدّن اقتراح كتلة، لكنه لا يستطيع تجاوز هذه الفحوص كما يشاء. تظل الكتلة غير الصالحة كذلك حتى لو دعمها عمل هائل. لا تُقارن الفروع إلا بين الخيارات الصالحة؛ والسجل المشترك يفترض قواعد متوافقة لدى المشاركين. [2] [3]
لو كان لكل حاسوب متصل صوت، لأمكن للمهاجم إنشاء مشاركين كثيرين يبدون مستقلين. هذا هو Sybil Attack. بدل عدّ الأسماء، يربط Proof of Work وزن الفرع بعمل حسابي يمكن التحقق منه. يحسب المعدّنون قيم التجزئة مرارًا، وهي بصمات رقمية للبيانات، بحثًا عن نتيجة تحقق شرطًا محددًا. تستهلك المحاولات طاقة وأجهزة، بينما يسهل فحص النتيجة الناجحة. تعدد هويات الشبكة لا يضيف عملًا بذاته؛ فالأمر ليس فحص بطاقات هوية ولا تصويتًا لجميع العقد. [1] [4]
يجمع المعدّن كتلة مرشحة ويغيّر بيانات ترويستها، أي ملخصها الموجز، حتى تكون قيمة تجزئة الترويسة العددية أصغر من الهدف الصالح أو مساوية له. لا يحل معادلة مفيدة ولا يكسر التشفير، بل يبحث عن نتيجة نادرة. قد ينجح معدّنان في وقت متقارب جدًا. يرى جزء من الشبكة إحدى الكتلتين أولًا، ويرى جزء آخر الثانية، فيظهر فرعان صالحان مؤقتًا. هذا وحده ليس عطلًا. في ظروف الانتشار المعتادة، يتيح العمل اللاحق للعقد التقارب على الفرع الأقوى. [1] [8]
تقاس قوة الفرع بمقدار chainwork، وهو مجموع العمل المنسوب إلى كتله بحسب أهدافها. ليس عداد كهرباء ولا سجلًا لعدد المحاولات الفعلي. قد يحالف الحظ معدّنًا فورًا بينما ينتظر آخر طويلًا؛ ومع الهدف نفسه يكون لكتلتيهما الصالحتين الوزن نفسه. يختار Full Node الفرع الصالح المتاح ذا المجموع الأكبر. لذا تعني «السلسلة الأطول» أكبر عمل، لا بالضرورة أكبر عدد من الكتل. يسمى الانتقال إلى فرع آخر إعادة تنظيم؛ ويمكن إدراج دفعة من كتلة متروكة مجددًا إذا بقيت صالحة. [1] [2] [3] [7]
عندما تدخل دفعة آنا كتلة مقبولة، يصبح لها تأكيد واحد. وتضيف كل كتلة تالية تأكيدًا آخر. لاستبدال هذا السجل، يحتاج الفرع المنافس إلى اللحاق بعمله. بافتراض أغلبية نزيهة من القدرة الحسابية وانتشار الكتل بسرعة كافية، ينخفض عادة احتمال نجاح إعادة الكتابة مع العمق. هذه هي النهائية الاحتمالية: ثقة متزايدة، لا استحالة رياضية للتغيير. ويعتمد عدد التأكيدات الذي ينتظره بيتر أيضًا على قيمة الدفع ومخاطره. لا يوجد عدد موحد يضمن السلامة في جميع الظروف. [1] [4]
لو بقي الشرط ثابتًا عند دخول أجهزة أسرع، لظهرت الكتل بوتيرة أعلى. لذلك يعيد Difficulty Adjustment حساب الهدف في الشبكة الرئيسية كل 2016 كتلة اعتمادًا على الطوابع الزمنية السابقة. يسعى إلى متوسط عشر دقائق للكتلة، أي نحو أسبوعين لهذا المقطع. لكن كتلة بعينها قد تأتي قبل ذلك أو بعده بكثير. يبدأ التعديل عند بلوغ عدد الكتل، لا عند تاريخ في التقويم؛ وإذا اختفى جزء كبير من القدرة فجأة، فقد يتأخر بلوغ التعديل التالي. إنه ليس منظمًا فوريًا ولا ساعة دقيقة. [2] [8]
تكافئ عملات bitcoin الجديدة، أي إعانة الكتلة، ورسوم المعاملات المعدّنين على الكتل التي تبقى في السجل المقبول. يشجع ذلك تمديد السجل، لكنه لا يغني عن الافتراضات الأمنية. تستطيع أغلبية القدرة إعادة تنظيم فروع صالحة وحجب دفعات ومحاولة التراجع عن إنفاقها الخاص. لكنها لا تجبر Full Node على قبول توقيع غير صالح أو إصدار زائد أو إنفاق أموال الآخرين دون صلاحية. وحد 50% ليس مفتاحًا للأمان: لبعض الهجمات فرصة نجاح دونه أيضًا. وجود المكافأة وحده لا يصنع النزاهة. [1] [2] [3]
لنعد إلى بيتر. إذا سيطر المهاجم على جميع اتصالات عقدته، أمكنه عرض صورة ناقصة للأحداث. يعني Eclipse Attack هذا النوع من العزل الشبكي؛ وقد لا تحمل التأكيدات حينئذ المعنى نفسه الذي تحمله مع اتصال جيد ببقية الشبكة. كذلك يصعّب تقسيم الشبكة إلى أجزاء منفصلة الوصول إلى اتفاق. لذلك يعتمد الأمن على حصة المهاجم من القدرة، وعلى انتشار الرسائل والتحقق النزيه. تصوغ أبحاث Bitcoin Backbone هذه الشروط صراحة في نماذجها. نسبة القدرة وحدها دون افتراضات الشبكة ليست شرحًا كاملًا للأمن. [4]
تسعى طرق BFT (Byzantine Fault Tolerance) الكلاسيكية إلى الاتفاق رغم وجود مشاركين معطّلين أو خبيثين، وغالبًا ما تفترض مجموعة معروفة مسبقًا. ولأمثلة مثل OM (Oral Messages) وPBFT (Practical Byzantine Fault Tolerance) شروطها وقواعدها لتبادل الرسائل. يعالج Bitcoin المشاركة المفتوحة بالعمل واستقرار السجل تدريجيًا بصورة احتمالية؛ فهو ليس مجرد اسم جديد لتلك الطرق. كذلك لا يغيّر اختيار فرع صالح أقوى قواعد الصلاحية نفسها. تغيير القواعد يتطلب أن يتبنى المشاركون برامج مناسبة وشروطًا متوافقة. يساعد المعدّنون في تحديد السجل الصالح الذي يستمر، لا ما يجب على الجميع اعتباره صالحًا. [5] [6] [9]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Bitcoin, Proof of Work, Difficulty Adjustment, قواعد الإجماع, التعدين, Full Node. تشير إلى هذا المدخل أيضًا Bit Gold, Reusable Proofs of Work, Byzantine Generals Problem, Sybil Attack.