البيتكوين من الصفر

Bitcoin

إزاي شبكة من الغرباء بتتفق على دفتر واحد

الصفحة دي مش محتاجة أي خلفية عن التشفير. الآليات الأساسية فيها تجارب تشغّلها بإيدك، منها SHA-256، كارت بلوك الميلاد، شجرة Merkle، التعدين، وتعديل سلسلة مصغّرة.

LAB 01آلة البصمةHASH

دوس على الزرارين الأولانيين بالتبادل. فرق رقم واحد في المبلغ، والبصمتين ملهمش أي علاقة ببعض. حتى نقطة في آخر الجملة بتقلب كل حاجة. الخاصية دي هي اللي هتخلي "القفل" اللي جاي يشتغل.

المحتويات
  1. 01 مين يكتب الصفحة الجاية؟
  2. 02 يعني إيه هاش أصلاً؟
  3. 03 المعاملات والكارت الصغير جوّه البلوك
  4. 04 بصمة البصمات وشجرة الـ Merkle
  5. 05 فين المجهود في لعبة التعدين؟
  6. 06 الـ nonce وخانة العبث الحر
  7. 07 ساعة الشبكة
  8. 08 مين بيصدق مين؟
  9. 09 ليه التاريخ بيتقفل؟
  10. 10 أسئلة بتسألهالك

01 مين يكتب الصفحة الجاية؟

قبل أي هاش وأي تعدين، فيه مشكلة كل ده واقف عليها. بيتكوين في جوهرها دفتر حسابات واحد: مين معاه كام، ومين بعت لمين. الدفتر ده متشارك بين ملايين الغرباء حوالين العالم، ومفيش بنك مسؤول عنه. الشركة مش طرف ومفيش حد مسؤول عنه. طيب مين اللي يكتب الصفحة الجاية فيه؟

البنك جاوب السؤال ده بموظف، هو اللي بيكتب وانت مضطر تثق فيه. شيل الموظف وهتقع في مشكلتين فوراً. الأولى اسمها الصرف المزدوج (double spend): أكتب صفحة بقول فيها إني بعتلك فلوسي، وفي نفس اللحظة أكتب صفحة تانية بقول فيها إني بعت نفس الفلوس لحد تاني، وأوزع النسختين، فمين يحدد أنهي واحدة "الحقيقية"؟ التانية، لو قلنا "نعمل تصويت"، هعمل مليون حساب وهمي وأصوّت بيهم كلهم، لأن الهويات على النت ببلاش. دي اسمها هجمة Sybil.

حق كتابة الصفحة عند بيتكوين بيتكسب بقرعة تمن تذكرتها كهربا حقيقية محدش يقدر يزوّرها. مش صوت لكل شخص، صوت لكل وات. القرعة دي هي التعدين، وباقي الصفحة بتفكك إزاي بتشتغل قطعة قطعة.

أنا معايا 10 بس دفعت 10 لعلي TX-A دفعت 10 لأحمد TX-B الشبكة ؟؟ صفحة علي صفحة أحمد قرعة الكهربا SHA-256 x N بلوك واحد بس TX-A ✓ التانية اترمت
شكل ١من غير بنك، نفس الفلوس ممكن تتكتب مرتين: وشبكة بيتكوين بتحسمها بقرعة تمنها كهربا، مش تصويت.

02 يعني إيه هاش أصلاً؟

في ناس فاكرة إن الموضوع قفل ومفتاح. لأ. الهاش مش تشفير. التشفير قفل ليه مفتاح، اللي معاه المفتاح يفك ويرجّع الرسالة. الهاش معندوش مفتاح ومفيش رجوع أصلاً، آلة بتاخد أي كلام مهما كان طوله وتطلعلك بصمة ثابتة الحجم، في حالة SHA-256 دايماً 64 خانة hex (256 بت).

سلوك الآلة أساس كل حاجة جاية.

نفس المدخل يطلّع نفس البصمة كل مرة، على أي جهاز، مدى الحياة. دي ثابتة (deterministic). من البصمة ترجع للكلام؟ لأ، باتجاه واحد (one way)، الخلاط بيعمل عصير في ثانية ورجوع الفاكهة من العصير مستحيل. بعدين تقلب حرف واحد في المدخل. الآلة فوضوية (avalanche)، البصمة كلها تتقلب بشكل مالوش أي علاقة بالقديمة. الـ 64 كلهم.

الآلة فوق في أول الصفحة هي SHA-256 الحقيقية جوه متصفحك. انت شغّلتها بإيدك خلاص.

البصمة الواحدة ببلاش. الآلة فوق بترد عليك لحظياً وانت بتكتب، وجهازك يقدر يعمل ملايين البصمات في الثانية. المعلومة دي هتلزمك، لأن سؤال "أمال فين المجهود؟" جاي في القسم الخامس وإجابته مفاجئة.
بيتكوين بيتكوين (تاني) SHA-256 أي طول يبقى 256 بت b1a9…c4e7 كلام أصلي SHA-256 بصمة 64 خانة مفيش رجوع بيتكوين بيتكوين. b1a9…c4e7 7f02…9d11
شكل ٢التلات خصائص اللي بيتكوين مبني عليها: ثابتة، باتجاه واحد، وفوضوية.

03 المعاملات والكارت الصغير جوّه البلوك

البلوك هو "صفحة" الدفتر. شنطة فيها آلاف الحوالات اللي كانت مستنية في طابور اسمه الـ mempool. الماينر بيلمّها، وبيضيف في أولها معاملة خاصة اسمها coinbase بيدفع فيها لنفسه المكافأة. وهنا أول سؤال سألته، هو مش ممكن يكتب لنفسه أي مبلغ؟

لأ. كتاب قواعد البروتوكول، اللي كل جهاز في الشبكة شغال بنسخة منه، بيحدد سقف الـ coinbase عند الدعم الحالي (3.125 بيتكوين، وبينصّف كل أربع سنين) زائد رسوم المعاملات اللي ضمّنها في البلوك. ساتوشي واحد فوق السقف والبلوك كله باطل. الشبكة مش بتزعل من حد. كل جهاز هيرمي البلوك أوتوماتيكياً، زي ما هنشوف في القسم الثامن.

المفاجأة اللي صححتهالك في الكلام إن الشنطة نفسها مش هي اللي بتدخل آلة البصمة. اللي بيتطحن تريليونات المرات هو كارت تلخيص صغير اسمه الـ block header، حجمه 80 بايت بالظبط، أصغر من رسالة SMS. مكتوب عليه ست حاجات.

الحقلالحجميعني إيه
version4 بايتنسخة القواعد اللي البلوك ماشي عليها
prev block hash32 بايتبصمة كارت البلوك اللي فات، ودي اللي بتعمل "السلسلة"
merkle root32 بايتبصمة واحدة بتلخص كل المعاملات (القسم الجاي)
timestamp4 بايتختم زمني: عدد الثواني من أول يناير 1970 (القسم السابع)
bits4 بايتالصعوبة المطلوبة: البصمة لازم تنزل تحت الرقم ده
nonce4 بايتالعداد اللي بيتغير كل محاولة (القسم السادس)

ومش هسيبك من غير الدليل. اللي تحت ده هو الـ 80 بايت الحقيقيين بالحرف بتوع أول بلوك في التاريخ، اللي ساتوشي عدّنه يوم 3 يناير 2009. دوس الزرار. متصفحك هيعمل عليهم SHA-256 مرتين (زي بيتكوين بالظبط) ويطلّعلك البصمة المسجلة في السلسلة من 17 سنة.

LAB 02بلوك الميلاد، Genesis BlockHASH
versionprev hash (كله أصفار، مفيش بلوك قبله)merkle roottimestampbitsnonce
البصمة هتظهر هنا
لو ظهرتلك بصمة بتبدأ بعشر أصفار، فمتصفحك لسه متحقق بنفسه من أول بلوك في بيتكوين، من غير ما يسأل حد. دي بالظبط الحركة اللي كل جهاز في الشبكة بيعملها مع كل بلوك جديد.
block header: 80 بايت بس - ودي بايتات بلوك الميلاد الحقيقية 01000000 00000000000000000000000000000000 3ba3edfd…4b1e5e4a 29ab5f49 ffff001d 1dac2b7c version 4B prev hash 32B merkle root 32B time 4B bits 4B nonce 4B المعاملات نفسها مش بتحسب هنا - ملخصها بس (الجذر)
شكل ٣الكارت اللي بيتطحن تريليونات المرات: 80 بايت أصغر من رسالة SMS، وبالقيم الحقيقية بتاعة بلوك الميلاد.

04 بصمة البصمات وشجرة الـ Merkle

طيب إزاي 32 بايت واحدة في الكارت بتمثل آلاف المعاملات؟ ببصمة البصمات. بتاخد بصمة كل معاملة لوحدها، بعدين تمسك كل بصمتين جنب بعض وتعملهم بصمة واحدة، وتكرر طبقة ورا طبقة لحد ما تفضل بصمة واحدة في القمة، ودي الـ Merkle root.

الآلة هنا بتطحن 80 بايت بس في كل محاولة، مش ميجابايت معاملات. والقفل جاي من تحت. أي تعديل في أي معاملة تحت بيتسلق الشجرة، بصمة المعاملة تتغير، فبصمة الزوج تتغير، فالجذر يتغير، فالكارت بقى كارت مختلف، فأي هاش كان الماينر لقاه على الكارت القديم بقى ملوش لازمة.

LAB 03شجرة البصماتHASH
لسه مقفلتش. اقفل، وبعدين عدّل أي معاملة وشوف.
التجربة بتطبق قاعدة double SHA-256 بتاعة بيتكوين على أربع معاملات نصية للتوضيح. الـ node الحقيقية تبدأ من bytes المعاملات المتسلسلة، وبتتعامل مع ترتيب bytes في عرض txid.
TX-1 coinbase e3b0…44fc TX-2 aa11…7c02 TX-3 7f9c…d1aa TX-4 c20d…9b3e H(TX-1+TX-2) 9c1f…83aa H(TX-3+TX-4) d0a7…41c9 merkle root a1b2…c3d4
شكل ٤شجرة Merkle: آلاف الحوالات بتتلخص في 32 بايت، وأي تعديل تحت بيتسلق لحد الجذر.

05 فين المجهود في لعبة التعدين؟

السؤال الأذكى في الحوار لسه واقف. ما دام عمل البصمة ببلاش، والمحتوى معروف، إيه المجهود في كل ده؟

المجهود مش في حساب البصمة. المطلوب معكوس. هاتلي نسخة من الكارت بصمتها تبدأ بعدد معين من الأصفار (تقنياً أقل من رقم اسمه الـ target، والأصفار في الأول هي شكل ده). صفات الآلة من القسم التاني زي ما هي، باتجاه واحد وفوضوية. مفيش معادلة تقولك "عشان تجيب أصفار حط كذا". الآلة مبتاخدش طلبات. بصمة فيها 4 أصفار مبتعلمكش أي حاجة عن إزاي تجيب 5. كل محاولة قرعة جديدة من الصفر.

الاستراتيجية الوحيدة الموجودة في الكون هي إنك تغيّر العداد وتجرّب، وتغيّر وتجرّب تاني. المحاولة الواحدة ببلاش، لكن المحاولة الكسبانة نادرة بشكل فلكي. المجهود هو عدد المحاولات. الواحدة فيهم رخيصة.

LAB 04منجم الجيبMINE
0محاولة
0محاولة/ثانية
0.0sالوقت
-آخر nonce

على نفس عدد الأصفار في التجربة، عدد المحاولات بيتغير كل مرة. ساعات ضربة حظ بدري، وساعات انتظار طويل. كل صفر hex إضافي يضاعف الشغل المتوقع 16 مرة. بيتكوين الحقيقية مش بتطلب عدد أصفار ثابت. بتقارن رقم الهاش بهدف رقمي بيتعاير كل 2016 بلوك عشان المتوسط يفضل قريب من 10 دقايق. وفيه مدرسة تانية بتحل اختيار المقترح بالحصة بدل إثبات العمل، ليها مقال لوحدها إثبات الحصة (EN).

اللغز معمول من غير اختصار معروف. الماينر يجرّب headers كتير، وأي node تتأكد من إثبات العمل بعملية double SHA-256 واحدة، وبعدها تفحص المعاملات وباقي قواعد الإجماع.
target: 000… nonce = 1 f3a9c27d8b12e4f5 فوق الهدف nonce = 2047 91bd04ea77c2f8d1 فوق الهدف nonce = 4096 000e4a71c2… تحت الهدف - فوز
شكل ٥التعدين يانصيب: المحاولة الواحدة ببلاش والفايزة نادرة: المجهود هو عدد المحاولات.

06 الـ nonce وخانة العبث الحر

خلفيتك الأمنية كانت معطلاك هنا. الاسم جاي من عالمك، والوظيفة مختلفة. في البروتوكولات اللي انت متعود عليها، الـ nonce شغلته منع إعادة الاستخدام، تمنع الـ replay. في بيتكوين الحكاية أنزل بكتير. خانة فاضية ملهاش أي معنى. أربع بايت في آخر الكارت. الرقم المكتوب فيهم مش بيمثل حاجة خالص.

الموجودة ليه؟ الماينر محتاج يغيّر محتوى الكارت بين كل محاولة والتانية، وإلا هتطلعله نفس البصمة. الـ nonce أسرع حقل يتغيّر، لكنه مش الوحيد. الماينر يقدر يغيّر الوقت، version bits، المعاملات، أو extraNonce جوه coinbase فيتغيّر Merkle root. تجربة nonce = 500 مرتين على نفس الـ header تضييع شغل، لأن النتيجة هتتكرر.

تفصيلة هتعجبك. 4 بايت يعني 4,294,967,296 قيمة بس. جهاز تعدين حديث بيعمل مئات التريليونات من المحاولات في الثانية، بيحرق مساحة الـ nonce كلها في جزء من الثانية غالباً من غير فايز. يعمل إيه؟ يغيّر حاجة تانية عشان يولّد كارت جديد بمساحة nonce نضيفة. يا إما يزوّد الختم الزمني ثانية، يا إما (وهي الحركة الأساسية) يلعب في رقم جوه خانة حرة في معاملة الـ coinbase نفسها اسمه extraNonce. وافتكر شجرة القسم الرابع. أي تغيير في الـ coinbase بيتسلق ويغيّر الجذر، فالكارت بقى كارت جديد، ومعاه 4.3 مليار تذكرة تانيين.

الخانة الحرة دي في الـ coinbase بتاعة بلوك الميلاد ساتوشي كتب فيها عنوان جورنال التايمز بتاع اليوم ده: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"، إثبات إن البلوك متعدنش قبل التاريخ ده، ورسالة عن سبب المشروع كله. رقم اليانصيب اللي كسب بيه البلوك ده: nonce = 2,083,236,893.
prev hash … merkle root … nonce: 0-1-2-… بيتقلب كل محاولة مساحة الـ nonce كلها خلصت - نفس البصمة هتتكرر 4,294,967,296 values coinbase extraNonce+1 merkle root جذر جديد كارت جديد nonce = 0 تاني
شكل ٦لما مساحة الـ nonce تخلص: extraNonce بيغيّر الـ coinbase، فيتغير الجذر، فيتجدد الكارت كله.

07 ساعة الشبكة

الختم الزمني رقم بيقول "الكارت ده اتبنى إمتى". متخزن كعدد ثواني من أول يناير 1970. في تجربة بلوك الميلاد فوق، الحقل الأصفر ده بيفك لتاريخ 3 يناير 2009 الساعة 18:15.

وسبب وجوده عملي. الشبكة محتاجة ساعة تتعاير عليها الصعوبة. البروتوكول عايز البلوك ياخد 10 دقايق في المتوسط، بس الأجهزة بتتطور والماينرز بيزيدوا. هيعرف منين إن البلوكات بقت بتيجي أسرع؟ من الأختام. كل 2016 بلوك (أسبوعين تقريباً) بيتحسب الوقت الفعلي من الفرق بين الأختام. طلع أقل من أسبوعين؟ الصعوبة تزيد. أكتر؟ تقل. من غير ختم جوه كل بلوك، مفيش مرجع زمني متفق عليه أصلاً.

سؤالك الأمني الطبيعي معروف. الختم ده الماينر بيكتبه بنفسه، أثق فيه ليه؟ متثقش. القواعد محاصراه من الناحيتين. لازم يكون أكبر من الوسيط (median) بتاع آخر 11 بلوك، وأقل من ساعة الجهاز المتحقق زائد ساعتين. الساعة تقريبية. ممكن تلاقي بلوك ختمه أقدم من اللي قبله بدقيقة وده مقبول. التلاعب الكبير، اللي يأثر على حسبة الصعوبة، مقفول.

1231006505 +598s +604s +591s +612s +600s وسيط آخر 11 بلوك بلوك جديد أكبر من الوسيط وأقل من ساعتين كل 2016 بلوك جت أسرع من أسبوعين: صعوبة أعلى أبطأ: صعوبة أقل من غير أختام، مفيش مرجع زمني متفق عليه أصلاً
شكل ٧ساعة الشبكة: ختم محصور بوسيط آخر 11 بلوك، وكل أسبوعين الصعوبة بتتعاير من فرق الأختام.

08 مين بيصدق مين؟

ورجعنا لأول سؤال سألته من الأساس: طب ما الفايز ممكن يحط اللي هو عايزه، والناس هتصدقه ليه؟ مش هيصدقوه. محدش بيصدق حد، ولا محتاج. لما الماينر يعلن بلوكه، كل جهاز (node) في الشبكة بياخد نسخة وبيعيد الفحص بنفسه، عنده محلياً، من غير ما يسأل حد:

ناتج double SHA-256 للكارت فعلاً تحت الـ target؟ كل معاملة عليها توقيع رقمي سليم؟ مفيش فلوس اتصرفت مرتين؟ الـ coinbase جوه السقف (3.125 + الرسوم)؟ الختم الزمني جوه الحدود؟ الحجم والصيغة مظبوطين؟ فحص إثبات العمل سريع، لكن قبول البلوك محتاج كل الفحوص دي.

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

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

بالمصطلحات بتاعتك: الـ proof of work مش authorization على المحتوى. هو rate limiting مكلف بيحل الـ Sybil ويختار مين "دوره" يقترح البلوك. الصلاحية نفسها (validity) بتتفرض بالـ validation المستقل عند كل node. الكاتب بتطلّعه القرعة، والكتابة بتحكم عليها القواعد.
بلوك جديد hash 000abc… أي جهاز node بصمة تحت الـ target تواقيع كل المعاملات سليمة coinbase جوه السقف بلوك مقبول بيتبني عليه بلوك جديد coinbase = 100 أي جهاز node بصمة تحت الـ target تواقيع كل المعاملات سليمة coinbase فوق السقف مرفوض والماينر خسر القرعة
شكل ٨محدش بيصدق حد: كل جهاز بيعيد الفحص بنفسه، وأي قاعدة تتكسر البلوك بيترمي في أقل من ثانية.

09 ليه التاريخ بيتقفل؟

افتكر إن أول حقل مهم في الكارت هو بصمة كارت البلوك اللي فات. كل بلوك ماسك في اللي قبله بالبصمة. غيّر حوالة في بلوك قديم، Merkle root يتغيّر، فبصمة الـ header تتغيّر وحقل prev في البلوك اللي بعده يبقى غلط. إعادة كتابة التاريخ تحتاج إعادة إثبات العمل من نقطة التعديل، وفي نفس الوقت السلسلة السليمة بتكمل نمو.

السلسلة اللي تحت دي مصغّرة (الصعوبة 3 أصفار بس عشان جهازك يعدّنها في ثواني). كل بلوك أخضر يعني: بصمته بأصفار، وحقل الـ prev بتاعه مطابق. دلوقتي روح للبلوك الأول وعدّل أي حرف في حوالاته، واتفرج على الكسر وهو بينتشر لقدام. لو حاولت "تصلّح" بإنك تعيد تعدين البلوكات بالترتيب، هتلاحظ إنك اضطريت تعيد شغل كل حاجة بعد التعديل:

LAB 05سلسلة تلات بلوكات، جرّب تزوّرFORK
في الشبكة الحقيقية، وانت بتعيد التعدين ده، باقي العالم كان ضاف بلوكات جديدة فوق النسخة السليمة، فانت بتجري ورا قطر مش هتلحقه غير لو معاك أكتر من نص كهربا الكوكب المخصصة للتعدين.
بلوك 1 hash 000a91… prev 000…0 tx: لعمر 5 prev بلوك 2 hash 000c3f… prev 000a91… tx: لعلي 2 بلوك 3 hash 000e77… prev 000c3f… tx: لمنى 1.5 كل بلوك ماسك في اللي قبله - السلسلة مقفولة بلوك 1 (اتعدل) hash f7e29b… prev 000…0 tx: لعمر 500 ! prev غلط بلوك 2 hash 000c3f… prev 000a91… مش موجود بلوك 3 hash 000e77… prev 000c3f… الكسر بينتشر لقدام: لازم تعيد تعدين كل حاجة بعد التعديل
شكل ٩ليه التاريخ بيتقفل: تعديل بلوك قديم بيكسر كل اللي بعده، وإعادة البناء أغلى من أي مكسب.

10 أسئلة بتسألهالك

"ممكن ميحطش أي حوالة والناس هتصدقه عادي؟"

البلوك الفاضي (coinbase بس) صحيح قانوناً والشبكة بتقبله. صاحبه خسر رسوم المعاملات، فهو بيضر نفسه بس. الناس هتصدقه؟ الحكاية دي مش موجودة. كل جهاز بيعيد فحص كل قاعدة بنفسه (القسم ٨).

"ليه ميكتبش لنفسه الكمية اللي هو عايزها؟"

يكتب براحته. كل جهاز في الشبكة هيرمي البلوك في أقل من ثانية لأن الـ coinbase عدّت السقف (3.125 + الرسوم). كهربا القرعة كلها راحت هدر (القسمين ٣ و٨).

"المايننج بيفيد في إيه أصلاً؟"

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

"ما دام الحاجة معروفة، إيه المجهود في الهاش؟"

البصمة الواحدة فعلاً ببلاش. الغالي هو العكس. تلاقي نسخة من الكارت بصمتها بأصفار. والآلة فوضوية باتجاه واحد فمفيش أي طريق غير التجربة. الفوز نادر فلكياً. المجهود = عدد المحاولات، مش صعوبة الواحدة (القسم ٥، وجرّبها في المنجم).

"هو إيه اللي بيتعمله هاش بالظبط؟"

كارت الـ block header، 80 بايت. فيهم بصمة البلوك اللي فات، وبصمة ملخصة لكل المعاملات (Merkle root)، والوقت، والصعوبة، والـ nonce. المعاملات نفسها بتتلخص مرة واحدة في الجذر، والكارت الصغير هو اللي بيتطحن (القسمين ٣ و٤، وشغّلت الـ 80 بايت بتوع ساتوشي بنفسك).

"الوقت بيبقى إيه؟"

ختم زمني. بيخلّي عند الشبكة ساعة مشتركة تتعاير عليها الصعوبة كل 2016 بلوك عشان البلوك يفضل ياخد 10 دقايق. ومش موثوق فيه على الفاضي. محصور بين وسيط آخر 11 بلوك وساعة المتحقق + ساعتين (القسم ٧).

"مش الـ nonce معناها number used once؟"

الاسم مستلف بس الوظيفة مختلفة عن أداة منع replay زي البروتوكولات الأمنية. مجرد خانة عبث حر 4 بايت بيقلّب فيها الماينر عشان يغيّر الكارت بين المحاولات. الـ "مرة واحدة" هنا معناها إن تكرار نفس القيمة على نفس الكارت تضييع كهربا لأن الآلة ثابتة. العداد خلّص. extraNonce جوه الـ coinbase يجدد المساحة عن طريق تغيير الجذر (القسم ٦).

أي كلام بصمة 64 كارت 80 بايت قرعة الأصفار سلسلة مقفولة ١. الهاش ٢. الكارت ٣. القرعة ٤. القفل كل سؤال في القسم ده بيرجع لواحدة من الحاجات الأربعة دي
شكل ١٠الصفحة كلها في أربع حركات: هاش، كارت، قرعة، قفل.

كل الأرقام والتجارب في الصفحة دي حقيقية: SHA-256 بتاع متصفحك هو نفسه بتاع بيتكوين، وبايتات بلوك الميلاد هي المسجلة في السلسلة من يناير 2009. المكافأة الحالية 3.125 بيتكوين وبتتنصّف كل حوالي أربع سنين.