السلام عليكم ورحمة الله وبركاتة
مرحبا اعضاء الفوركس العرب الخاص لدى انستافوركس مرحبا بكم وبعد
منذ ما يزيد عن العام والكل يتحدث عن عُملة Bitcoin،
ويزداد الحديث عنها مع كل تجاوز لقيمة 20000 دولار (صعودا أو نزولا) لهذه العُملة، أو مع كل تراجع مُخيف لقيمتها. إن كنت تبحث عن مقالات مُفصلة لتفهم ما يجعل من هذه العُملة مُهمة فإنك إما ستجد مقالات الصحافة المُوجهة للعوام والتي عادة ما تُهمل الكثير من التفاصيل المُهمة، أو أنك ستجد مقالات لبعض مهووسي التقنية التي تُركز بشكل أساسي على جانب التشفير الخاص بالعُملة. هذا المقال عبارة عن مُحاولة للإتيان بشيء ما بين هذين البينين ولمُحاولة تسليط المزيد من الضوء على آلية عملة هذه العُملة والنتائج التي تترتب على ذلك. إذا لم تكن لديك
أية فكرة حول هذه العُملة
يتكوين عبارة عن عُملة تشفيرية cryptocurrncy. هدف العُملات التشفيرية هي السماح للمُستخدمين بإرسال مبالغ مالية لبعضهم البعض على الإنترنت عبر شبكة الند للند دون الحاجة إلى سلطة مركزية لمُراقبة عمليات الدفع والتحويل وهذا مع المحافظة على مجهوليته anonymity. لا تشترط العُملات التشفيرية فتح أي نوع من الحسابات، فكل ما تحتاجه هو تنصيب تطبيق خاص بالعُملة التي ترغب في استخدامها يتولى مهمة توليد “عُنوان” يتم استخدامه لإرسال واستقبال التحويلات. بطبيعة الحال لن تظهر لديك أية عملات تشفيرية بمُجرد أن تقوم بتنصيب هذا التطبيق، وعليه فإنك ستحتاج إلى أن تُقنع من يملكها بأن يُعطيك أو يبيعك بعضا من العُملات التي بحوزته، قبل أن يُصبح بمقدورك القيام بعمليات دفع عبر هذه العُملات. يُمكنك أيضا أن تحصل على العُملات التشفيرية عبر عملية التنقيب mining، لكنها طريق شاقة وطويلة ومن شأنها أن لا تُعطيك النتائج التي تصبو إليها من دون أن تستثمر في مُعدات تنقيب خاصة بذلك.
ربما قد تعتقد بأن بيتكوين هي العُملة التشفيرية الوحيدة الموجودة على شبكة الإنترنت حاليا، لكن الأمر ليس كذلك إطلاقا. قد تكون بيتكوين العُملة الأولى من نوعها والأكثر شهرة وانتشارا، لكن لدى كتابة هذه السطور كان عدد هذه العُملات لا يقل عن 60 عُملة مُختلفة منها ما لا يقل عن 8 عُملات توصف بالرئيسية حسب ويكيبيديا. لم تتم الإشارة في مقال ويكيبيديا إلى الأسباب التي تجعل من هذه العُملات رئيسية لكن يبدو بأنه تم الاعتماد بشكل أساسي على عدد المُستخدمين وبنية كل شبكة، إضافة إلى الأماكن التي يُمكن استبدال وشراء هذه العُملات التشفيرية مُقابل عُملات أخرى.
باستثناء عُملة Ripple فإن جميع العُملات التشفيرية الحالية مبنية على مبدأ عمل عُملة بيتكوين نفسها، فبحكم أن عُملة بيتكوين مفتوحة المصدر فإنه بإمكان من أراد ذلك استنساخ العُملة وإدخال بعض التعديلات عليها ومن ثم إطلاق عُملة جديدة. آلية الاستنساخ هذه وتوفير تطبيق لُعملة جديدة هي الأسهل في عملية إطلاق عُملة تشفيرية جديدة، حيث أن إقناع المُستخدمين باعتماد هذه العُملة واستخدامها أصعب بكثير، حيث يحتاج أصحاب هذه العُملات الجديدة إلى إضافة مزايا لا تتوفر في بيتكوين نفسها أو باقي العُملات التشفيرية، مما يعني بأنك ستحتاج إلى إدخال تعديلات عميقة على عُملة بيتكوين. تقوم كل من العُملات التشفيرية الحالية باقتراح ما تراه الخاصية (أو الخواص) التي تجعلها أفضل من بيتكوين.
بالرغم من هذا المقال مُخصص لبيتكوين وآلية عمله فإنه -وبحكم أن باقي العُملات مبنية عليه- يكفي أن تفهم مبدأ عملها لتفهم مبادئ عمل باقي العُملات
التنقيب: اسم خاطئ أم مُبالغة مقصودة؟
ساهم الجيل الأول من مُستخدمي بيتكوين في نشر فكرة خاطئة حول هذه العُملة والتي تنص على أنه يتم استخراج هذه العُملات من مناجم (أي يتم التنقيب عنها). قد نفهم السبب الكامن وراء اختيار هذا المُصطلح لربط هذه العُملة بالمعادن الثمينة كالذهب والفضة، لكن يبدو بأن اختيار هذا المُصطلح أضاف الكثير من الغموض ولم يُسهل فهم آلية عمل هذه العُملة. لكي تتضح الصورة بشكل أفضل فيجب أن نعلم بأن مُبدعي عُملة بيتكوين لم يخترعوا أية آليات جديدة في عالم التشفير وإنما اعتمدوا على ما هو مُتعارف عليه في مجال التشفير ليضمنوا أن عمليات الدفع التي تتم عبر هذه العُملة آمنة عبر شبكات الند للند وهو أمر في يُعتبر في حد ذاته إنجازا عظيما.
مبدئيا يُمكن اعتبار بيتكوين كسجل حسابات ضخم يحتفظ بأي “عنوان” يملك أي بيتكوين. تقون كل نسخة من تطبيق بيتكوين بتحميل نسخة كاملة من هذا الدفتر وهو ما يُمكن الجميع من التوافق والتفاهم على أي عُنوان يُملك أي بيتكوين. تقوم شبكة بيتكوين بحماية هذا السجل من أي عمليات تغيير مُحتملة عبر جُملة من عمليات التشفير التي تنتج عنها هاشات Hash وعمليات إثبات العمل proof of work. لا تعرف ما المقصود بهذه المُصطلحات؟ إليك شرحا لها:
يتم استخدام تقنيات Hashing في عدة مجالات برمجية. الفكرة التي تقوم عليها هذه العمليات هو أخذ بيانات ذات طول مُعين وتوليد “توقيع” خاص بها ذي طول مُحدد يكون عادة أقصر بكثير من طول البيانات الأصلية لكنه يقوم بتمثيلها والنيابة عنها.
لنأخذ المثال التالي: لنفرض بأنني أرسلت إليك ملفا كبير الحجم ترغب في تحميله، ولنفرض بأن هناك احتمال أن يُصاب هذا الملف بعطب خلال عملية التحميل. لنتحقق من أن الملف الذي أنهيت تحميله هو نفس الملف الذي قمت بإرساله لك من دون أية أعطاب أو تغييرات فإنه يكفي أن نقارن ناتج عملية تدقيق المجموع checksum (أحد أبسط الأمثلة عن استخدام تقنيات Hashing) للملف المُرسل والملف الذي تم تحميله. كل ما تحتاجه للقيام بعملية checksum هو جمع جميع البايتات (Bytes) في الملف وكلما تجاوز المجموع قيمة مُعينة تقوم أنت بتحديدها (ولنفرض أننا نود الحصول على نتيجة من رقمين فقط) فإننا نتخلص من الفائض ونواصل عملية الجمع. بمعنى أنه لو كانت نتيجة الجمع الحالية تُساوي 89 وكانت القيمة التالية التي ستقوم بإضافتها هي 22 فإن المجموع الذي كان يُفترض به أن يكون 111 سيتحول إلى 11 فقط (بعد التخلص من الفائض المُتمثل في المئة) ونواصل عملية الجمع. بعد إنهاء عملية الجمع هذه سينتج لديك عدد مُكون من رقمين فقط يقوم بتمثيل الملف، حيث أن أي تغيير أو عطب يُصيب الملف لدى التحميل سينتج عنه تغير في قيمة عملية checksum الملف المُحمّل مُقارنة بناتج نفس العملية على الملف الأصلي. بعبارة أخرى إن كانت نتيجة عملية checksum على الملفين مُتطابقة فإن احتمال تعرض الملف لعطب أو تغيير مُنخفض جدا. يتم استخدام الهاشات أيضا للتحقق من سلامة البيانات وعدم تعرضها للتغيير، فلو كنت أملك قيمة الهاش لمعلومة مُعينة فإنه يُمكنني معرفة ما إذا تم إحداث تغيير عليها بمُجرد التحقق من قيمة الهاش ومُقارنتها بالقيمة الأولى، وهذا بالتحديد ما يقوم به بيتكوين للحفاظ على سلامة بيانات سجله الضخم، إلا أن العملية التي يستخدمها بيتكوين ليست عملية checksum التي لا تملك أي بُعد تشفيري، وإنما يستخدم الهاشات التي تنتج عن خوارزمية التشفير SHA256 رغم أن مبدأ عمل الخوارزمية هو نفسه.
يقوم بيتكوين بحفظ كل معلومة/مُدخلة في سجله مرفقة بهاش خاص بها وبالتالي فإنه يُمكن للجميع التحقق من صحة البيانات وعدم تغييرها. لكن ألا يكفي إن أردت تغيير البيانات في حد ذاتها أن أقوم بإعادة احتساب الهاش من جديد؟ نعم هذا صحيح، ولهذا يستخدم بيتكوين مبدأ إثبات العمل Proof of work لتجنب ذلك.
تم استخدام مبدأ “إثبات العمل” لأول مرة لإيقاف عمليات السخام وهجمات الحرمان من الخدمات على الخواديم DoS. مبدأ “إثبات العمل” بسيط بدوره. لنأخذ المثال التالي: لنفرض بأنني أقدم خدمة على الإنترنت ترغب في استخدامها، سيسرني أن أسمح لك باستخدامها لكنني لا أرغب في أن تقوم باستغلالها استغلالا بشعا. للحد من ذلك سأقوم في كل مرة ترغب في استخدام هذه الخدمة بإرسال “أحجية” لك تقوم بحلها أولا قبل أن تتمكن من استخدام الخدمة. يُفترض بهذه الأحجية أن تكون صعبة للحل لكن يجب أن تكون آلية التحقق من الإجابة سهلة، وبالتالي ينشأ لدينا نظام يتم الحد فيه من عدد المرات التي يُمكنك استخدام الخدمة فيه لأنك ستحتاج في كل مرة إلى وقت مُعتبر لحل الأحجية قبل استخدام الخدمة. الإشكال مع مبدأ “إثبات العمل” هو إيجاد أحجيات تحتاج إلى عمل “شاق” وطويل لحلها لكن يسهل علي التحقق من النتيجة. من بين الطرق الأكثر شيوعا لعمل هذه الأحاجي هي استخدام عمليات hashing (التي سبق وأن شرحناها فيما سبق). على سبيل المثال، ينتج عن خوارزمية SHA-256 هاشات بطول 256 بت (والتي يُمكن تمثيلها باستخدام أعداد ذات 77 رقم). أغلب ما ينتج خوارزمية SHA-256 هي أعداد مُكونة من 77 رقما، إلا أن هناك مجموعة من النتائج تكون أقصر طولا من ذلك ولا تستخدم الأرقام الـ 77 كاملة، ولهذا نقوم بملء الخانات المُتبقية بأصفار (الخانات على يسار الهاش طبعا) لتكون جميع الهاشات بنفس الطول المُحدد لها (أي 77 خانة). تُعتبر هذه الهاشات التي تكون خاناتها الأولى (من اليسار) أصفارا نادرة لكنها مُوزعة بشكل متوافق . المقصود بذلك هو أنه يُمكنني أن أرسل لك أحجية أعطيك فيها بيانات مُعينة وأطلب منك أن تُنتج لي اعتمادا عليها إحدى هذه الهاشات النادرة مع السماح لك بتغيير بعض البايتات (يحتوي كل بايت byte على 8 بت bit) المُعينة ضمن هذه البيانات. صعوبة الأحجية تكمن في عدم قدرتك على معرفة أي البايتات بالتحديد يجب عليك أن تقوم بالتغيير وأي قيمة يجب عليك إعطاؤها لتحصل على النتيجة المطلوبة وبالتالي فإن الحل الوحيد الذي يبقى أمامك هو استخدام تقنية Brute force (أي تجربة جميع الاحتمالات المُمكنة الواحدة تلو الأخرى) حتى تصل إلى النتيجة المرغوب فيها. هذه العملية تحتاج إلى الكثير من الوقت والجهد، حيث أنه لو كان عدد البايتات التي ستقوم بتعديلها هو 4 فقط فهذا سيضعك أمام أكثر من 100 مليون عملية للتحقق منها (4,294,967,295 على وجه التحديد). لكن سيبقى بإمكاني التحقق من النتيجة التي توصلت إليها بكل سهولة لأن سيكفي أن أقوم بعملية هاش واحدة للتحقق من النتيجة. بحكم أن الهاشات الأصغر طولا هي الأكثر ندرة فإنه يُمكن التحكم في مقدار العمل الذي يجب عليك القيام به عبر التحكم طول الهاشات التي أطلبها. إن كان الحصول على هاشات بطول 70 رقما سهل نسبيا فإن الحصول على هاشات بطول 60 رقما أصعب بكثير من ذلك، وكلما قصر طول الهاش كلما ازدادت درجة التعقيد. يشترط بيتكوين في هاشات SHA-256 التي يستخدمها للحفاظ على سلامة بيانات سجله أن تكون قصيرة ونادرة. بعبارة أخرى يتوجب على كل من يريد أن يقوم بتغيير بيانات هذا السجل أن يقوم بإعادة حساب هاش المُدخلة التي يود تغييرها. ليس هذا فحسب، فبحكم أن كل مُدخلة مُرتبطة ببعضها البعض حيث أنه يتم إرفاق هاش المُدخلة السابقة في كل مُدخلة جديدة فإن يجب على من يريد إدخال تغيير على مُدخلة مُعينة أن يعيد حساب هاشات كل المُدخلات التي تليها. بعبارة أخرى مقدار القوة الحاسوبية التي تحتاجها لتغيير مُدخلة مُعينة يُصبح كبيرا جدا، حيث أن كُلفة القيام بذلك تكون أكبر بكثير من القيمة التي يُمكن لك أن تجنيها لو تمكنت فعلا من إحداث ذلك التغيير.
الآن وبعد أن فهمنا مبدأ عمل سجل بيتكوين الضخم، فلنلق نظرة على ما يقوم به المنقبون وكيف يتم إنتاج بيتكوينات جديدة، بالرغم من أن عملية “الإنتاج” هذه هي أحد المفاهيم الخاطئة أيضا. يقوم مالكو بيتكوين الذين يرغبون في القيام بعمليات التحويل من حساب بيتكوين إلى آخر بنشر هذه الطلبات عبر شبكة الند للند الخاص ببيتكوين وتكمن مهمة المُنقّبين في جمع هذه العمليات والتحقق منها. بعد القيام بعملية التحقق يحتاج المنقّبون إلى إضافتها إلى سجل بيتكوين وللقيام بذلك يحتاجون إلى حساب هاش خاص بذلك، وبحكم أن بيتكوين عبارة عن نظام يعتمد على مبدأ “إثبات العمل” فإن عملية حساب هذا الهاش صعبة. يتنافس المنقّبون فيما بينهم حيث يسعى كل واحد للقيام بهذه العمليات قبل غيره حيث يُسمح لأول منقب ينهي العمية أن يُضيف عملية تحويل إضافية إلى السجل بقيمة 50 بيتكوين يقوم بإرسالها إلى أي عنوان يرغب فيه، وعادة ما يكون هذا العنوان هو عنوان المُنقّب الخاص به، وتُعتبر عملية التحويل هذه كمكافئة نظير القيام بالعمل اللازم لتحديث السجل. وبُمجرد أن يجد أحد المُنقّبين الهاش الذي يبحث عنه يقوم بنشر هذه المعلومة في شبكة الند للند الخاص بالعُملة ليقوم باقي المنقّبون بالتحقق من أن العملية قد تمت بشكل سليم. مُكافئة 50 بيتكوين التي تُدفع مُقابل التحقق من كل كتلة تحويلات block of transactions هو سعر توافقي فقط والسبب الوحيد الذي يقف وراء عدم تمكن المُنقّبين من مُكافئة أنفسهم بأكثر من 50 بيتكوين مُقابل هذه العمليات هو أن خشيتهم من أن يرفض باقي المُنقّبين تلك العملية وبالتالي يُصبح عناء المُنقّب هباء منثورا.
حسب هذه الآلية فإن ما يقوم به المنقّبون ليس تنقيبا ولا إنتاجا، فكل بيتكوين ما هو سوى قيمة مُرتبطة بعنوان تتحكم فيها، وبالتالي فإن المُنقّبين أقرب ما يكونون من مُحافظي الحسابات الذين يتم الدفع لهم حسب عدد العمليات التي قاموا بالتحقق منها، كما أنه يجب عليهم مُنافسة بعضهم البعض حيث أنه لن يتم الدفع سوى لأسرعهم.
هناك نُقطة في غاية الأهمية يجب أخذها بالحسبان وهو أن مهمة المُنقّبين لا تقتصر على إيجاد بيتكوينات جديدة، بل تُعتبر المهمة التي يقومون بها في غاية الأهمية لضمان استمرار بقاء بيتكوين وما يتم دفعه لهم هو نظير هذا العمل الحيوي للعملة.
تم بناء بيتكوين لضمان نوع مُعين من التوازن داخل النظام، حيث تم تصميمها بشكل يضمن حدا مُعينا من مُعالجة عمليات التحويل، حيث تتم إضافة “كتلة” جديدة للسجل كل 10 دقائق تقريبا. يُطلق على القيمة التي تضمن هذا التوازن اسم ” الصعوبة” Hardness والتي يتم تحديدها نسبة إلى طول هاش SHA-256 الذي يشترط النظام إيجاده. تتم الموافقة على قيمة Hardness جديدة كل أسبوعين تقريبا، وبحكم أن الاهتمام بعُملة بيتكوين في تزايد مُستمر فإن هذه الصعوبة في تزايد مُستمر في ظل تزايد عدد المُنقّبين داخل النظام.
هذا الأمر يدفعنا إلى التساؤل عن سر استعارة مُصطلحات التنقيب عن المعادن الثمينة للحديث عن عملة بيتكوين فكما هو واضح مما سبق ذكره فإن ما يقوم به مُنقّبو بيتكوين بعيد كل البعد عن ما يقوم به المنقّبون الذين ينقبون عن المعادن الثمينة. الظاهر أن استخدام مثل هذه الاستعارات لا يهدف سوى لإشباع غرور المُنقبين ولإعطائهم قيمة ربما لن يحصلوا عليها لو أطلقوا على أنفسهم اسم “محافظي حسابات”، حيث أن التنقيب عادة ما يُربط بالذهب وهو أمر قد يروق للتقنين وصف أنفسهم به. وربما قد يكون سر ذلك راجع إلى الرغبة في الربط ما بين قيمة بيتكوين الافتراضية وما يُقابلها من قيمة حسية على أرض الواقع، حيث أن القيام بالعمليات الحسابية التي يتطلبها بيتكوين تحتاج إلى استهلاك كميات كبيرة من الطاقة الكهربائية، بل وأصبح الأمر يتطلب الاستثمار في عتاد خاص (ASIC). وربما تهدف هذه التسمية إلى فصل الارتباط الذهني الموجود ما بين إنتاج البيتكوينات وعمليات التحويل ومُعالجتها.
لكن ما الحاجة إلى القيام بذلك؟ بحكم أن عدد البيتكوينات التي يمكن إنتاجها محدود ومعروف (21 مليون بيتكوين)، وإن فهمت بأنه لا يتم فعلا إنتاج بيتكوينات جديدة وإنما تُعتبر مكافئة تُدفع مقابل مُعالجة عمليات التحويل التي تمت، فإنك قد تشرع في التساؤل حول السبب الذي يجعل عدد البيتكوينات محدودا؟ أليس كذلك؟ (يعني ما هو السبب وراء تحديد عدد البيتكوينات الإجمالي إن كانت طريقة إنتاجها هي مُجرد تحقق من عمليات سابقة؟). العدد الإجمالي للبيتكوينات محدود لأنه يتم تخفيض المُكافئة التي تُدفع للمُنقبين مُقابل ما يقومون به إلى النصف كل 4 سنوات، حيث كان هذا الثمن 50 بيتكوينا في البداية ونزل مؤخرا إلى 25 بيتكوين فقط. أضف إلى ذلك بأنه سيتم التوقف عن الدفع بمجرد إنتاج الكمية القصوى المُمكنة للبيتكوينات المُقدرة بـ 21 مليون بيتكوين، وهو ما يدفع إلى التساؤل عن الأشخاص الذين سيواصلون القيام بالتحقق من عمليات التحويل إن لم يتم الدفع مقابل ذلك. يبدو بأنه لا توجد إجابة واضحة ومُقعنة لهذا التساؤل بعد، رغم أنه من المُمكن لمُستخدمي بيتكوين أن يدفعوا تكاليف التحقق من العمليات للمُنقبين، ويبدو بأنه لا يتم القيام بذلك حاليا.
من المتوقع جدا أن يلجأ المنقبون إلى المُطالبة برسوم حول عمليات التحويل التي يقومون بتأكيدها، لكن سيحتاج الأمر إلى إجماع المنقبين على هذا الأمر. لفهم الإشكال الذي قد يطرحه الوضح الجديد، تخيلوا الأمر التالي: سيقوم بعض المنقبين بفرض رسوم مُعينة في حين سيواصل البعض في القيام بعمليات التحقق من دون أية رسوم إضافية. لما أقوم بعملية تحويل دون أن أدفع رسوما مقابل تأكيد العملية، فإن المُنقب الذي يفرض تلك الرسوم لن يقوم بتأكيد العملية وهو ما سيؤخر إتمام عملية التحويل إلى غاية قدوم المُنقب الذي لا يفرض أية رسوم، وهو ما قد يُعقد الوضع أكثر.
يسكتمل علشان عدد حروف الموضوع قليلة جدا لمقالة الخاصة
tohamy4 ==== عمار العمرانى