طريقة عمل الـ"بيتكوين" لغير المختصين
لكي نفهم طريقة عمل العملات الافتراضية المشفرة، نأخذ "بيتكوين" كمثال، ونحاول معرفة كيفية عملها من الداخل، دون استخدام مصطلحات فنية ورياضية وخوارزمية معقدة، هذا هو الهدف من تقرير هذا الأسبوع.
هنا لا نتحدث عن كيف يستثمر الشخص في العملات المشفرة ولا كيف يفتح محفظة ولا أين يقوم بتداولها، وغير ذلك من الأسئلة، التي قد نعود إليها لاحقا، ولكنها ليست موضوعنا هذا الأسبوع. وبكل الأحوال يوجد كم هائل من الأجوبة على مثل هذه الأسئلة من عدة مصادر.
موضوع العملات المشفرة يهمني شخصيا لسببين رئيسين: الأول بحكم اهتمامي بالاقتصاد وأسواق المال، والثاني بحكم عملي السابق كرئيس للمركز الوطني للتصديق الرقمي، منذ إنشائه في 2002، وهو المركز الذي انطلق من مدينة الملك عبدالعزيز للعلوم والتقنية ومن ثم إلى وزارة الاتصالات وتقنية المعلومات.
ما علاقة المركز الوطني للتصديق الرقمي بعملة بيتكوين؟
العلاقة تأتي بسبب أن العملات المشفرة تعتمد بشكل رئيس وجوهري على تقنية المفاتيح العامة، وهي التي يقوم عليها عمل المركز الوطني للتصديق الرقمي، وبشكل خاص عملية التوقيع الرقمي، التي بدونها لا يمكن للعملات الرقمية المشفرة أن تعمل إطلاقا. للمعلومية، دور مركز التصديق الرقمي يتمثل في تطبيق مفهوم التشفير في سبيل إصدار وإدارة الهويات الرقمية والقيام بتشفير البيانات وإجراء التوقيع الرقمي على الوثائق والمراسلات.
أين يستخدم التوقيع الرقمي في عملة بيتكوين؟
عندما يقوم شخص بدفع مبلغ من "بيتكوين" لشخص آخر، فلا بد من وجود آلية تضمن أولا بأن الشخص هذا بالفعل قد قام بإجراء العملية، وثانيا أن الشخص بالفعل لديه المبلغ الذي سيدفعه للشخص الآخر. المشكلة التي سنأتي لتوضيحها أدناه هي تدور حول طبيعة هذا الشخص وهويته: بمعنى إننا نعلم أن من قام بالعملية شخص ما، وبحكم أن الهوية الطبيعية في العملات المشفرة غير مهمة، لماذا إذن نسأل عن صحة العملية وضمان كونها صدرت من الشخص المذكور؟
عندما تنشأ أي عملية بيع أو شراء لعملة بيتكوين، فإن برمجيات "بيتكوين" تقوم بإدراج العملية من ضمن كتلة من العمليات تمهيدا لانضمامها لسلسلة الكتل الرسمية للعملة، التي تسمى بلوك تشين Blockchain. لذا لا يمكن إدراج عملية بيع أو شراء إلا بعد التحقق من صحة بياناتها، أي أن الطرف المرسل بالفعل هو من قام بإنشاء العملية، وأن لديه المال بالفعل. لاحظ أن المطلوب هو فقط إثبات أن الشخص المذكور رقمه في العملية هو بالفعل من قام بإجراء العملية، ولكن بما أن رقم الشخص الظاهر في العملية هو رقم معلن ومكشوف، ما الذي يمنع طرفا آخر من وضع رقم هذا الشخص في عملية مزيفة؟
هل يمكن لطرف آخر تغيير محتوى العملية؟
إذا كان هناك عملية مالية قام بها الطرف الأول لتحويل مبلغ خمس عملات بيتكوين للطرف الثاني، وهذه العملية على وشك الانضمام لسلسلة كتلة "بيتكوين" العالمية، هل يستطيع شخص آخر تغيير العملية بشكل ما بحيث يكون التحويل إلى الطرف الثالث، بدلا من الطرف الثاني؟
لاحظ أولا أن العمليات المالية ليست مشفرة، بل يمكن لأي شخص الاطلاع عليها بسهولة، ويمكنه نسخها وتعديلها ومحاولة إدراجها في نظام "بيتكوين" بسهولة تامة. أي أن نص العملية المكتوب، مثلا "من الطرف الأول إلى الطرف الثاني مبلغ خمس عملات" هو نص غير مشفر ويمكن لأي شخص الاطلاع عليه ومحاولة التلاعب به، لذا فالجميع يرون بيانات أطراف العملية والمبلغ بشكل واضح.
طبعا لا يمكن معرفة الهوية الطبيعية للطرفين الأول و الثاني، ولا أسمائهم ولا مكان إقامتهم ولا غير ذلك من البيانات الخاصة، فقط يمكننا معرفة الرقم المستخدم في العملية، الذي يمكننا اعتباره رقم محفظة الشخص. فعندما نقول الطرف الأول نقصد محفظة رقم 1، وهذا الرقم ليس برقم عادي، بل هو مفتاح تشفير له خصائص رياضية معينة، نسميه المفتاح العام.
الحصول على الرقم المستخدم من قبل طرفي العملية، المفتاح العام أو رقم المحفظة، يتم بمنتهى السهولة، ومجانا ويتم إنشاؤه خلال أقل من ثانية واحدة من خلال برمجيات مجانية، ويمكن للشخص إنشاء أي عدد من الأرقام كما يشاء، ومع كل مفتاح عام يتم إنشاؤه هناك مفتاح خاص ملحق به ومتصل به، لا يعلم عنه أحد غير الشخص، الذي أنشأ المفتاح العام، ويحفظ دائما في ملف خاص في مكان آمن، غالبا داخل قطعة إلكترونية تحفظ مع الشخص، خصوصا أولئك الذين يمارسون أقصى درجات الحماية وأمن المعلومات.
لغز العملات المشفرة هو في فكرة المختصر الحسابي Hash
إن فهم طريقة عمل المختصر الحسابي يجعل من السهل معرفة كيفية عمل العملات المشفرة، وذلك لسببين:
(1) يستخدم المختصر الحسابي في عمليات التوقيع الرقمي، التي تتم في كل عملية مالية.
(2) يستخدم المختصر الحسابي في عملية التعدين، التي يقوم بها مئات الآلاف من الأشخاص يوميا حول العالم.
فما المقصود بالمختصر الحسابي أو الـ hash؟
المختصر الحسابي هو عملية رياضية باتجاه واحد، فمثلا نحن نعرف أن 2 ضرب 3 تساوي 6، ولو سألتك عن نتيجة 2 ضرب 3، فالجواب قطعي ونهائي وهو العدد 6. ولكن ماذا لو أطلعتك على العدد 6، ومن ثم سألتك عن العملية، التي استخدمتها أنا للحصول على العدد 6؟ هنا لن تستطيع الجزم بأني استخدمت 2 ضرب 3، لأنني ربما استخدمت 7 ناقص 1، أو 12 تقسيم 2، أو أي واحد من خيارات أخرى ليس لها نهاية.
إذن هذا مثال على عملية رياضية باتجاه واحد، وهو ما تقوم به عمليات التعدين بشكل مستمر طوال الوقت، حيث يطلب منها البحث عن مختصر حسابي له خصائص معينة، مثلا مختصر حسابي لمجموعة من نصوص العمليات المالية بشرط أن يبدأ المختصر بـ 19 صفرا. لعمل ذلك تقوم برمجيات التعدين بتجربة مئات الآلاف من المحاولات على نصوص العمليات المالية باستخدام أرقام عشوائية تضاف في كل مرة إلى أن يتم التوصل إلى مختصر حسابي يبدأ بـ 19 صفرا.
عادة يتم التوصل إلى المختصر الحسابي لعملة بيتكوين مرة واحدة كل عشر دقائق في العالم كله، أي أنه تتم إضافة نحو 144 كتلة إلى سلسلة بيتكوين يوميا، وكل كتلة تحتوي على نحو 1600 عملية مالية.
كيف يتم التوقيع الرقمي؟
كيف يستخدم المختصر الحسابي في عملية التوقيع الرقمي، بحيث يتم إثبات أن الطرف الأول بالفعل هو من أجرى هذه العملية المالية، وأن تفاصيل العملية هي كما حررها الشخص ولم يطرأ أي تغيير فيها؟
لإثبات أن الطرف الأول هو من قام بإجراء العملية، يقوم الطرف الأول بتشفير المختصر الحسابي بواسطة مفتاحه الخاص، وليس مفتاحه العام، فينتج عن ذلك مختصر حسابي مشفر لا يمكن نزع التشفير عنه إلا بواسطة المفتاح العام للشخص نفسه. هذا يعني أن استخدام المفتاح الخاص، أو السري، يعد بمنزلة إثبات أن الشخص المالك لهذا المفتاح الخاص هو من قام بالعملية المالية، وليس أي شخص آخر.
وبما أن المفتاح العام متاح وموجود من ضمن العملية المالية، فيمكن بكل سهولة فك التشفير عن المختصر الحسابي بواسطة هذا المفتاح العام، وهذا هو الإجراء الذي يتم عند التحقق من صحة التوقيع.
لذا عندما تقوم برمجيات بيتكوين المنتشرة حول العالم بالتحقق من صحة العملية المالية، فهي في الواقع تقوم بالتحقق مما إذا كان مالك المفتاح الخاص، وهو المفتاح السري المرتبط بالمفتاح العام، هو من أجرى العملية أم لا، ويتم ذلك من خلال عمليتين:
(1) تقوم برمجيات بيتكوين أولا بفك التشفير عن المختصر الحسابي، والذي بهذه الحالة يسمى توقيع إلكتروني.
(2) تقوم هي بدورها بإجراء مختصر حسابي لنص العملية المالية. فإذا كان صاحب المفتاح العام هو من قام بتحرير العملية فسيكون النص الناتج من عملية (1) مطابقا للنص الناتج عن عملية (2). ولو كان هناك أي تعديل في النص المكتوب للعملية، مثلا تغيير المبلغ أو تغيير الطرف المرسل أو المرسل إليه، فستكتشف البرمجيات هذا الخلل بسهولة وبسرعة.
تساؤلات أخرى كثيرة
في هذا التقرير تم التركيز على جزئية واحدة فقط في طريقة عمل العملات المشفرة، وهي الآلية الفنية، التي تضمن أن من يقوم بعمل إجراء مالي للعملة المشفرة هو بالفعل الشخص المعني، الذي قام بالفعل بإدخال العملية في نظام "بيتكوين"، وإنه لا يمكن إجراء أي تغيير بالعملية بعد التوقيع الرقمي عليها من قبل الشخص. وتحدثنا عن فكرة "الهاش" أو المختصر الحسابي، التي تستخدم في عمليات التعدين على مدى 24 ساعة حول العالم، وتستخدم في عمليات التوقيع الرقمي.
الأسئلة الأخرى، التي قد نحتاج إلى طرحها والإجابة عنها لاحقا، هي هل العملات المشفرة حقيقة أم خيال؟ وكيف يكون لها قيمة وهي ليست بشيء ملموس؟ ومن أين تأتي "بيتكوين"؟ من يصدرها؟ ومن يملكها؟ وكيف يتم ضمان عدم حدوث تكرار للعملية المالية بمجرد نسخها؟ وغيرها من أسئلة مهمة.