التعدين وإثبات العمل
المقال الرابع من سلسلة العلم — إزاي بيتولّد البيتكوينكل حوالي 10 دقايق، كتلة جديدة بتنضاف للسجل، وأول جهاز يحل اللغز الرياضي هو اللي ياخد المكافأة.
التعدين يعني إيه بالظبط؟
التعدين هو عملية إضافة كتلة جديدة للبلوكتشين عن طريق حل لغز رياضي صعب يُسمى إثبات العمل (Proof of Work).
إزاي يشتغل إثبات العمل؟
1. تجميع المعاملات الجديدة في كتلة 2. أخذ هاش الكتلة السابقة 3. تجربة ملايين قيم الـ Nonce كل ثانية 4. لحد ما يطلع هاش يحقق شرط الصعوبة الحالية للشبكة 5. أول جهاز يوصله = يفوز بالكتلة والمكافأة
شكل الكتلة أثناء التعدين
┌─────────────────────────────────────────────┐
│ Version: 4 │
│ هاش الكتلة السابقة: 00000000000000000002a7c..│
│ Merkle Root: 1a2b3c... │
│ Timestamp: ... │
│ Difficulty Target: يتغيّر كل ~2016 كتلة │
│ Nonce: ????????????? ← المُعدّن بيغيّره │
└─────────────────────────────────────────────┘
↓ SHA-256 مرتين
هاش الكتلة لازم يحقق شرط الصعوبة الحالية
جدول مكافآت التعدين (بروتوكول ثابت لا يتغيّر)
| الفترة | مكافأة الكتلة |
|---|---|
| 2024 – 2028 (الحالية) | 3.125 BTC |
| 2028 – 2032 (بعد الهبوط القادم) | 1.5625 BTC |
جدول المكافآت ده جزء من بروتوكول بيتكوين نفسه وثابت لا يتغيّر (يُعرف بـ"الهالفينج" — يحدث كل 210,000 كتلة). أما هاشريت الشبكة وأسماء أكبر شركات التعدين فبتتغيّر باستمرار، فحطيناها في قسم منفصل مع مصدر حي بدل أرقام هتبقى قديمة بسرعة.
هاشريت الشبكة وأكبر شركات التعدين (بيانات حية)
الأرقام دي بتتغيّر يوميًا تقريبًا، فبدل ما نكتب رقم هيبقى قديم خلال شهور، تابع المصادر الحية دي مباشرة:
جرّب مفهوم التعدين بكود Python (تعدين وهمي مبسّط)
نسخة مبسّطة جدًا للتوضيح فقط — الصعوبة الحقيقية للشبكة أعلى بملايين المرات من المثال ده:
import hashlib
import time
block = "كتلة تجريبية | معاملات: أحمد→سارة 0.1 BTC"
prev_hash = "00000000000000000002a7c4c1e48d4c..."
target = "0000" # مبسّط جدًا للتجربة — الصعوبة الحقيقية أعلى بكثير
nonce = 0
start = time.time()
while True:
text = block + prev_hash + str(nonce)
hash_result = hashlib.sha256(text.encode()).hexdigest()
if hash_result.startswith(target):
print(f"تم التعدين! Nonce = {nonce}")
print(f"الهاش: {hash_result}")
print(f"الوقت: {time.time()-start:.2f} ثانية")
break
nonce += 1
جرّب الكود في أي بيئة بايثون على جهازك — النتيجة هتختلف كل مرة وده طبيعي.
المقال الجاي في السلسلة: "العقود الذكية.. السحر اللي خلّى الإيثيريوم يغيّر قواعد اللعبة"
