كيف يعمل البيتكوين؟

· 10 min read

البيتكوين هو مفهوم عملة رقمية طرحه ساتوشي ناكاموتو الأسطوري والغامض عام 2009، ويعتمد على تقنية البلوك تشين كبنية تحتية ويعمل بشكل لامركزي من شخص إلى شخص. والورقة البيضاء التي كتبها ناكاموتو لشرح هذا المفهوم قراءة لا غنى عنها لكل من يريد فهم البيتكوين والعملات الرقمية عمومًا. فهي لا تشرح البيتكوين كفكرة فحسب، بل تشرح أيضًا كيف يمكن لنظام تحمّل الأخطاء البيزنطية أن يعمل في بيئة لامركزية.

قبل أي شيء آخر، على من يهتم بالبيتكوين أن يعرف أن العامل الأكبر الذي يقف خلف وجود البيتكوين على أرض الواقع هو تقنية البلوك تشين، وأن يفهم كيف تعمل هذه التقنية.

ما هو البلوك تشين؟

البلوك تشين سلسلة من الكتل، تحتوي كل كتلة منها على بيانات، ولا تشرف عليها أو تديرها أي سلطة مركزية. سلاسل المعلومات هذه مؤمَّنة تشفيريًا، ولا يمكن إسكاتها بفضل بنيتها اللامركزية. ويستخدم البلوك تشين في جوهره هيكلَي بيانات اثنين: المؤشرات والقوائم المرتبطة.

المؤشرات

المؤشرات متغيرات تدل على موقع متغير آخر. في الأحوال العادية، تحمل المتغيرات في البرمجة بيانات. (في مثال ‎int a = 10‎، المتغير الصحيح a قيمته 10.) أما المؤشرات فلا تخزّن قيمة كبيانات، بل تشير إلى موقع المتغير الذي يحمل تلك البيانات.

القوائم المرتبطة

القوائم المرتبطة من أهم الوحدات في هياكل البيانات، وشكلها تقريبًا كالتالي.

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

النقطة المهمة هنا أن كل مؤشر يحمل عنوان الكتلة التالية. إذن أين مؤشر الكتلة الأولى؟ الكتلة الأولى تُسمّى كتلة التكوين (genesis block)، ومؤشرها موجود داخل النظام نفسه.

ومؤشر الهاش هو مؤشر يحتوي على هاش الكتلة السابقة.

الهاش عملية تأخذ بيانات بأي طول وتنتج نتيجة بالطول نفسه دائمًا، أيًا كان محتوى البيانات، عبر دالة محددة. وفي حالة البيتكوين، تُؤخذ عملية التحويل كبيانات وتُمرَّر عبر خوارزمية SHA-256 لإنتاج نتيجة ثابتة الطول. ومهما كان طول البيانات المُدخلة، تنتج خوارزمية SHA-256 دائمًا نتيجة بطول 256 بت.

البلوك تشين في أبسط صوره قائمة مرتبطة كما هو موضح أدناه.

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

لنفترض للحظة أن مهاجمًا يريد مهاجمة الكتلة 3 وتغيير البيانات فيها. بسبب دالة الهاش، سينعكس أصغر تغيير في البيانات على النتيجة بفارق هائل. أصغر تعديل على بيانات الكتلة 3 سيغيّر نتيجة الهاش المخزّنة في الكتلة 2، والتغيير في الكتلة 2 سيؤثر على نتيجة الهاش في الكتلة 1، وبالتالي سيتعين تغيير السلسلة كاملة، وهذا مستحيل عمليًا. هذه هي الطريقة التي تجعل سلاسل الكتل غير قابلة للإسكات.

ما هو التعدين؟

التعدين هو العملية اللازمة لإنشاء بيتكوين جديدة. ويعمل تعدين البيتكوين على مبدأ إثبات العمل (Proof of Work - POW). وببساطة: يجب أن يكون حل المسألة صعبًا جدًا، لكن بمجرد حلّها يجب أن يكون إثبات صحة الحل سهلًا للغاية.

قبل أن نصل إلى استخدام البيتكوين لإثبات العمل كمفهوم، لنحاول أن نفهم لماذا تحتاج العملات الرقمية إلى نظام كهذا.

قبل البيتكوين، أُنشئت عملات رقمية مختلفة، لكن عند بناء شبكة لامركزية تعمل من شخص إلى شخص في البيئة الرقمية تظهر أكبر عقبة: مشكلة منطقية تُعرف باسم مشكلة الجنرالات البيزنطيين. وبما أن ناكاموتو نجح في تجاوز هذه المشكلة في البيتكوين عبر إثبات العمل، تمكّن البيتكوين من بدء حياته والاستمرار بقوة.

مشكلة الجنرالات البيزنطيين

لنكمل بشرح مشكلة الجنرالات البيزنطيين التي تتكرر كثيرًا في الدراسات الأكاديمية. الجنرالات البيزنطيون الذين يخططون لمهاجمة مدينة العدو يواجهون مشكلتين:

الجنرالات متباعدون جدًا عن بعضهم، لذا يستحيل أن تدير سلطة مركزية واحدة الحصار.

العدو أيضًا يملك جيشًا قويًا، لذا يجب أن ينفّذ الجنرالات الهجوم في اللحظة نفسها حتى يتحقق النجاح.

وبينما تحاصر الجيوش المدينة، ينقل كل جيش رسالة الأمر من الجيش الذي على يمينه إلى الجيش الذي على يساره، وهكذا يستمر التواصل. لكن المشكلة هنا أنه حين يصل أمر بالهجوم يوم الأربعاء، قد لا يكون أحد الجيوش جاهزًا فيرسل رسالة معاكسة تقول: لا، الهجوم يوم الجمعة. أو قد يقع الجندي حامل الرسالة في أسر العدو، أو يُغيَّر محتوى الرسالة التي يحملها. في بيئة غير آمنة كهذه، أي هجوم سيفشل ما لم يتحقق تنسيق كامل.

المشكلة المنطقية نفسها تنطبق على شبكات البلوك تشين التي تشكّل البنية التحتية لعملات رقمية مثل البيتكوين. فهذه شبكات ضخمة إلى حد لا يُصدَّق، فكيف نثق بكل شخص فيها؟ قد نريد إرسال 4 إيثر لشخص ما، لكن كيف نضمن ألا يحوّلها شخص خبيث إلى 40 إيثر؟

نجح ساتوشي ناكاموتو في تجاوز هذه المشكلة المنطقية بطرح بروتوكول إثبات العمل. لنرَ كيف يعمل:

عندما يريد الجيش المحاصِر أن ينقل رسالة "سنهاجم يوم الاثنين" إلى الجيش الذي على يساره، عليه اتباع هذه الخطوات؛

أولًا، تُسنَد إلى الرسالة الأصلية قيمة عشوائية تُستخدم مرة واحدة تُسمّى "nonce". ويمكن أن تكون قيمة nonce أي قيمة في النظام الست عشري.

بعد ذلك تُمرَّر الرسالة مع قيمة nonce عبر دالة الهاش للحصول على نتيجة. وفي الهجوم الذي نتخيله، لنفترض أن القادة اتفقوا على أن يتبادلوا فقط نتائج دالة الهاش التي تبدأ خانتها الخمس الأولى بأصفار.

إذا جاءت نتيجة دالة الهاش مطابقة للمطلوب، يمرّرون الرسالة إلى الجنرال التالي. وإذا لم تطابق النتائج المطلوب، فلا بد من تغيير قيمة nonce عشوائيًا وتكرار العملية حتى الحصول على نتيجة تبدأ بخمسة أصفار. هذا النظام يتطلب قدرة حوسبية ووقتًا طويلَين للغاية.

وإذا أُسِر الجندي حامل الرسالة أو تغيّر محتوى الرسالة، فستتغير نتيجة الهاش تغيّرًا هائلًا بحكم خصائص دالة الهاش. وعند مراجعة الرسالة سيلاحظ الجنرالات أن الخانات الخمس الأولى من نتيجة الهاش ليست أصفارًا، فيسحبون الهجوم.

لكن، رغم ضآلة الاحتمال، قد تُنتج أي دالة هاش نتائج متصادمة. نظريًا، إذا كان A وB مدخلين منفصلين فلا ينبغي أن يكون هناك أي احتمال بأن ‎H(A) = H(B)‎، لكن في التطبيق العملي لا توجد دالة هاش محصّنة تمامًا ضد التصادم.

حسنًا، ضمن هذا الاحتمال الضئيل، ماذا يحدث لو أُسِر الجندي حامل الرسالة وغُيّرت الرسالة وخرجت نتيجة الهاش كما يريدها الجنرالات تمامًا؟ ستكون عملية مستهلكة للوقت بالطبع، لكنها ليست مستحيلة. وفي المقابل، يستخدم الجنرالات تفوقهم العددي.

يمكن تجاوز هذه المشكلة بأن يرسل ثلاثة جنرالات رسائلهم إلى اليسار في الوقت نفسه، بدلًا من أن ينقل جنرال واحد الرسالة من اليمين إلى اليسار بالتناوب. فإذا جمع الجنرالات رسائلهم في رسالة تراكمية واحدة، ومرّروها عبر دالة الهاش، ثم أسندوا إلى النتيجة قيمة nonce وأعادوا إدخالها في دالة الهاش، فيجب هذه المرة أن تكون الخانات الست الأولى من النتيجة أصفارًا.

في هذه المرحلة، سيكون إيجاد قيمة nonce لهذه الرسالة وتغيير محتواها إهدارًا جسيمًا للوقت.

أما مهمة الجنرالات الذين يستقبلون الرسالة فسهلة؛ يكفي أن يضيفوا قيمة nonce المعطاة لهم إلى نتيجة الهاش ويقارنوا النتائج. هذه الخطوة عملية سريعة وبسيطة جدًا. وهذه الفكرة هي آلية عمل مبدأ إثبات العمل.

إيجاد قيمة nonce التي تعطي الهاش المطلوب يستلزم قدرة حوسبية ووقتًا هائلَين

لكن فحص النتائج وتحديد ما إذا كانت هناك نية خبيثة لا يستغرق سوى وقت ضئيل جدًا.

هكذا يطبّق المعدّنون بروتوكول إثبات العمل في تعدين البيتكوين. فهم يستخدمون قدرتهم الحوسبية لحل المسألة التشفيرية أمامهم وإنشاء الكتلة التالية. وفي بلوك تشين البيتكوين تُنشأ كتلة كل 10 دقائق.

كيف تتم التحويلات على شبكة البيتكوين؟

لنفترض أن جون يريد إرسال بعض البيتكوين إلى ديف. كيف يتم هذا التحويل؟ تحويلات البيتكوين تعمل بطريقة مختلفة تمامًا عن تحويلات النقود التقليدية. فلو أراد جون أن يعطي ديف 10 دولارات، لأخرج ورقة العشرة دولارات فعليًا من محفظته وسلّمها لديف وانتهى التحويل. لكن الأمر مختلف مع البيتكوين، فهو ليس شيئًا نملكه ماديًا. ما نملكه هو إثبات أننا نملك بيتكوين.

هناك أمران ينبغي أن نعرفهما وننتبه لهما؛

المعدّنون يؤكّدون عمليات التحويل ويؤمّنونها بالبيانات التي يضعونها في الكتلة التي ينشئونها. وهم يتقاضون رسومًا مقابل هذه الخدمة.

عندما ننظر إلى العملات التقليدية، لا نعرف ولا نتتبّع تاريخ أي ورقة نقدية بين أيدينا. لا توجد طريقة عملية لفعل ذلك. أما في البيتكوين فكل عملية تحويل مسجّلة على الشبكة.

وعلى ضوء هذه المعلومات، لنلقِ نظرة على تحويل البيتكوين بين جون وديف. لهذا التحويل جزآن؛ المدخلات والمخرجات (input-output).

لكي ينفّذ جون هذا التحويل، يجب أن يملك بيتكوين من تحويلات سابقة. وكما ذكرنا، كل التحويلات مسجّلة على شبكة البيتكوين.

على جون أن يجمع البيتكوين التي تلقّاها في التحويلات المسمّاة TR(0) وTR(1) وTR(2) مسبقًا، وأن ينشئ تحويلًا جديدًا باسم TR(INPUT) ويرسله إلى ديف. وهنا يصبح TR(INPUT) هو بيانات المدخلات للتحويل الجديد.

هكذا يبدو تقريبًا تحويل البيتكوين من ناحية المدخلات.

أما بيانات المخرجات فتحتوي ببساطة على كمية البيتكوين التي يجب أن يملكها ديف بعد التحويل الجديد، بالإضافة إلى الباقي الذي يعود إلى جون ليصبح قيمة TR(INPUT) في تحويله التالي.

هذه العملية تتضمن نتيجة مخرجات واحدة إذا استثنينا جزء الباقي، لكن من الممكن أن تكون هناك تحويلات بنتائج مخرجات متعددة. هذا الشرح يبيّن ببساطة كيف يتم التحويل على شبكة البيتكوين. لكن لكي يحدث ذلك بنجاح، لا بد من استيفاء شروط معينة.

الشروط التي يجب أن تلتزم بها التحويلات:

‎TR(INPUT) > TR(OUTPUT)‎. يجب أن يكون تحويل المدخلات أكبر دائمًا من تحويل المخرجات. وفي كل تحويل، يُدفع الفرق بين المدخلات والمخرجات (المخرجات + الباقي) للمعدّنين كرسوم. أي: رسوم التعدين = ‎TR(INPUT) - (TR(OUTPUT) + الباقي)‎

وعلى جانب المدخلات يجب أن يتحقق ‎TR(0)+TR(1)+TR(2)=TR(INPUT)‎. بعبارة أخرى، يجب أن يملك جون بيتكوين كافية ليرسلها إلى ديف. وإذا لم يملك ما يكفي لتنفيذ العملية، يرفض المعدّنون التحويل.

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

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

تُجمع بيانات المدخلات (بما فيها بيانات التوقيع) مع بيانات المخرجات وتُمرَّر عبر خوارزمية الهاش SHA-256. وناتج هذه الخوارزمية هو ما يُسمّى التحويل.

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

من هنا جاء مبدأ الاستبدال بالرسوم (replace-by-fee). وهو يعمل ببساطة هكذا: حتى لو أرسل جون 5 بيتكوين إلى ديف، فقد لا تُدرَج أبدًا في كتلة وتبقى معلّقة لأن رسوم التعدين متدنية. ولا توجد طريقة للتراجع عن هذه العملية أو إلغائها، لأن البيتكوين المنفقة لا يمكن استرجاعها. لكن إذا نفّذ جون تحويلًا إلى العنوان نفسه بالمبلغ نفسه ورفع رسوم التعدين، يُعد التحويل القديم لاغيًا وينتظر التحويل الجديد دوره.

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

في الرحلة من عملات السلع إلى استخدام المعادن الثمينة كالذهب والفضة، ثم إلى النقود الورقية والعملات الاسمية، لم تكن فكرة المال في البيئة الافتراضية جديدة تمامًا، لكنها لم تصبح قابلة للتطبيق إلا في التاريخ القريب.

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

لم ينسَ ساتوشي أن يخبّئ رسالة في كتلة التكوين التي عدّنها وكتبها كشيفرة صلبة. فمع تسجيله لتاريخ 3 يناير 2009، أرفق عنوانًا من صحيفة التايمز البريطانية في ذلك اليوم عن البنوك المسؤولة عن الأزمة الاقتصادية العالمية؛ "الوزير على وشك إقرار خطة إنقاذ ثانية للبنوك". وهو على الأرجح يسخر من النظام المصرفي المركزي بهذه الكلمات. ولا يُعرف سبب إنشاء ساتوشي لهذا العنوان غير القابل للإنفاق في الكتلة الأولى. وقد أُرسلت إلى هذا العنوان 16 بيتكوين بشكل مجهول حتى الآن، ولذلك فإن العرض الكلي البالغ 21 مليون بيتكوين لن يتحقق فعليًا أبدًا.

لم يحتج البيتكوين سوى 9 سنوات ليبلغ مستويات تُخيف البنوك المركزية في العالم، وأمامه طريق طويل بعد.

بيتكوين كيف يعمل البيتكوين ساتوشي ساتوشي ناكاموتو ناكاموتو العملات الرقمية بلوك تشين ما هو البلوك تشين التعدين ما هو التعدين شبكة البيتكوين