التعدين منافسة لإضافة الكتلة التالية إلى سجل Bitcoin. يجمع المُعدّنون المعاملات في كتل ويجرون حسابات بحثًا عن نتيجة يسهل على الآخرين التحقق منها. وقد تمنح الكتلة المقبولة مُعدّنها بيتكوينات جديدة ورسوم الدفعات المدرجة فيها. لكنه لا يحدد القواعد؛ فحواسيب الشبكة الأخرى تفحص اقتراحه بصورة مستقلة وترفض الكتل غير الصحيحة.
لا يعني التعدين استخراج عملات مخبأة داخل الحاسوب. المنافسة هي على اقتراح الكتلة الصحيحة التالية: مجموعة معاملات تواصل السجل الموجود. يبحث المُعدّن لاقتراحه عن نتيجة حسابية يصعب الوصول إليها. وعندما ينجح يرسل الكتلة إلى الآخرين. يفحصون الحساب والمعاملات ويطبقون القواعد نفسها لتحديد إمكان قبولها. البيتكوينات الجديدة جزء من أجر هذه المهمة، لكن إصدار العملات ليس غرض التعدين الوحيد. ما يهم المستخدم أساسًا هو انتقال دفعته من الانتظار إلى سجل قابل للتحقق. [1] [2]
عندما ترسل دفعة تنتشر أولًا بين العقد. العقدة حاسوب يشارك في شبكة Bitcoin، وmempool لديها مجموعة محلية من المعاملات غير المؤكدة. لا يوجد طابور موحد تديره جهة للجميع. يبني المُعدّن كتلة مرشحة من المعاملات المتاحة مع مراعاة الرسوم والمساحة المحدودة. وإذا كانت معاملة تنفق مخرج معاملة أخرى غير مؤكدة، فيجب أن تسبقها تلك المعاملة في الكتلة نفسها. يوفر الأمر getblocktemplate بيانات بناء الكتلة، بما فيها هذه التبعيات. وتحد الاختيار أيضًا قواعد وزن الكتلة وتكلفة التحقق من التوقيعات. [1]
تسمى أول معاملة في الكتلة Coinbase Transaction. لا تتعلق بحساب في المنصة التي تحمل الاسم نفسه؛ إنها معاملة خاصة يخصص بها المُعدّن لنفسه المكافأة المسموحة. تجمع المكافأة بين إعانة الكتلة، أي البيتكوينات المنشأة حديثًا، ورسوم المعاملات الأخرى في الكتلة. الرسم هو الفرق بين قيمة المدخلات والمخرجات، ولذلك ينقل بيتكوينات موجودة فقط. إذا طالب المُعدّن بأكثر من المسموح، ترفض العقد الكتلة كلها. وحتى المكافأة الصحيحة لا يمكن إنفاقها فورًا: لا يجوز استخدام مخرج Coinbase Transaction قبل كتلة يزيد ارتفاعها بمقدار 100 عن الكتلة الأصلية. [2]
تخيل سحبًا لا يعرف أحد نتيجته الفائزة مسبقًا، لكن يستطيع الجميع فحصها بسرعة بعد إعلانها. يحسب المُعدّنون قيمة تجزئة، وهي بصمة رقمية للبيانات يمكن قراءتها أيضًا كعدد كبير. في كتلة Bitcoin يجب أن يكون العدد أقل من حد يسمى target أو مساويًا له. هذا هو شرط Proof of Work. وتحديدًا، تُطبّق دالة التجزئة SHA-256 مرتين على ترويسة الكتلة البالغ حجمها 80 بايتًا، والتي تحمل بياناتها الأساسية الموجزة. لا يحل المُعدّن كل دفعة كمسألة منفصلة؛ بل يغير بيانات الحساب ويختبر ما إذا كانت النتيجة الجديدة تحقق الشرط. [3]
ASIC شريحة مصممة لمهمة حسابية محددة؛ وتكرر شريحة تعدين Bitcoin حساب SHA-256 المزدوج على نسخ مختلفة من ترويسة حجمها 80 بايتًا. من الحقول القابلة للتغيير nonce، وهو عدد من أربعة بايتات داخل الترويسة. لكن نطاقه محدود. بعد استنفاده يمكن تغيير extra nonce، وهي بيانات إضافية داخل Coinbase Transaction. يتغير بذلك Merkle Root، البصمة المجمعة للمعاملات، ثم الترويسة، فتتاح احتمالات جديدة للتجربة. لا تقرب أي محاولة فاشلة الجهاز من فوز مضمون. والعشر دقائق ليست وعدًا لمُعدّن بعينه، بل متوسط تستهدفه الشبكة كلها. [3]
للمُعدّن مصلحة في بناء كتل صحيحة، لأن الاقتراح المرفوض لا يمنحه مكافأة قابلة للاستخدام. لكن فحصه لا يحل محل فحص الآخرين. Full Node حاسوب يتحقق بنفسه من قواعد Bitcoin، بما فيها المعاملات والمكافأة وProof of Work. فيرفض مثلًا كتلة تنشئ بيتكوينات أكثر من المسموح، حتى لو استثمر المُعدّن قدرة حاسوبية كبيرة فيها. تشغيل عقدتك الخاصة يعني أنك لا تحتاج إلى الاعتماد على ادعاء المُعدّن أن الكتلة سليمة. [2] [4]
قد ينتظر المُعدّن المنفرد طويلًا قبل النجاح. يتيح Mining Pool توزيع العمل والدخل بين المشاركين. ولتقدير مساهمة الأجهزة، يقبل المشغل أيضًا نتائج تحقق حدًا داخليًا أسهل. تسمى هذه النتيجة share. لا تكفي معظم نتائج share لشبكة Bitcoin؛ فبعضها فقط يحقق أيضًا شرط الشبكة الأشد. تعتمد مدفوعات المشاركين على نموذج التوزيع المختار والشروط المتفق عليها ورسوم التجمع. الانضمام إلى تجمع لا يمنح حق تغيير قواعد Bitcoin. كما أن المشغل لا يملك بالضرورة الأجهزة المتصلة؛ فنصيبه من الكتل المكتشفة لا يثبت وحده ملكية المعدات. [3]
بعد نجاح الحساب، لا بد أن تصل الكتلة كاملة إلى العقد الأخرى. قد يعثر مُعدّنان في الوقت نفسه تقريبًا على كتلتين صحيحتين مختلفتين تتصلان بالسلف نفسه. يعرف جزء من الشبكة حينها فرعًا، ويعرف جزء آخر الفرع الثاني مؤقتًا. تتبع العقد الفرع الصحيح ذا أكبر عمل متراكم، أي مجموع العمل المنسوب إلى كتله. وقد ترجح الكتلة التالية اختيار أحد الفرعين. يمكن أن تكون كتلة الفرع المتروك صحيحة بذاتها، لكن مكافأتها لا تدخل في السجل النشط. لذلك تهم سرعة نشر النتيجة والتوقف عن العمل على اقتراح قديم بعد استلام قمة جديدة للسلسلة. [4]
يقيس Hashrate عدد محاولات التجزئة في الثانية. تساعد حصة المُعدّن من قدرة الشبكة الكلية على تقدير تكرار النجاح، لكنها لا تضمن دخلًا منتظمًا. والدخل ليس الربح: يجب خصم الكهرباء والتبريد والأجهزة والصيانة ورسوم التجمع. وقد يزيد التوقف عن العمل النتيجة سوءًا. انتبه إلى الوحدات أيضًا: تقيس TH/s الأداء الحسابي، بينما يقيس الواط القدرة الكهربائية المستهلكة. قد يخسر جهاز قوي المال إذا غلت الكهرباء، ولا يثبت اكتشاف محظوظ واحد ربحية طويلة الأجل. [3]
على عقدتك الخاصة يمكنك مقارنة اقتراح getblocktemplate بترويسة الكتلة المكتشفة وCoinbase Transaction والمعاملات العادية فيها. الأوامر مثل getblocktemplate جزء من الواجهة التقنية للعقدة، وليست خدمة تحتاج إلى إيداع أموالك لديها. يمرر submitblock كتلة مكتملة إلى العقدة لفحصها. لكن قبولها محليًا لا يضمن بقاءها الدائم في سجل الشبكة كلها. وفي بيانات التجمع، ميز بين نتائج share المقدمة وكتل Bitcoin المقبولة والمبالغ المدفوعة فعلًا. مع تكاليف التشغيل، توضح هذه البيانات النتيجة الاقتصادية للتعدين. [5]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Proof of Work, Difficulty Adjustment, Block Subsidy, Transaction Fees, Mempool. تشير إلى هذا المدخل أيضًا Proof of Work, Difficulty Adjustment, Block Subsidy, Halving.