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

ما هو البيتكوين - Bitcoin؟

ما هو البيتكوين -  Bitcoin؟

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

بالمقارنة مع البدائل الاخرى للدفع , لدى عملة البتكوين عدد من المزايا الافضل .

البتكوين لا يعمل مثل معظم الاموال مثل الدولار و اليورو ..الخ , ليست مرتبطة بدولة أو حكومة لذلك ليس لديها سلطة مركزية تتحكم بإصدارها وهذا يعني انه لا يوجد أحد يتحكم بعددها او انتاجها او تتبعها  

عملة البتكوين ترسل مباشرة من شخص الى اخر عن طريق الشبكة دون المرور خلال بنك او وسيط وهذا يعني أن الرسوم أقل بكثير ويمكن استخدامها باي بلد  ومن غير الممكن ان يتجمد حسابك ولا يوجد أي شروط مسبقة او قيود

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

يوجد العديد من أماكن الصرافة حيث يمكنك بيع او شراء او تبديل عملة البتكوين   للدولار او اليورو او غيره
تحتفظ عملة البت كوين الخاصة بك بمحفظتك الرقمية على كمبيوترك او جهازك المحمول او هاتفك
ارسال عملة البتكوين أشبه بإرسال بريد الكتروني وبإمكانك شراء أي شيء باستخدامه

 

فكرة البتكوين ان العديد من الاجهزة على شبكة البيتكوين تحتفظ بنسخة من  سجلات المعاملات تسمى (Ledger)  السجل يحتوي على معلومات عن المعاملات التي حدثت في السابق بما فيها بيانات عن عناوين المحافظ التي ارسلت و استقبلت بيتكوين  وجميع الاجهزة تستطيع الوصول و قراءة هذا السجل وبالتالي يكون هناك رقابة من جميع الاجهزة على السجلات و بالتالي لا يوجد مركزية لان الامر غير مقتصر على طرف واحد


تبقى السجلات الموجودة على ملايين الاجهزة في شبكة البتكوين متزامنة أي انه بعد اتمام عملية ارسال جديدة يتم توثيقها بجميع السجلات على كافة الاجهزة و يتم ذلك من خلال مشاركة التحديثات باستخدام شبكة الند للند (
peer to peer)  بمعنى انه يتم مشاركة التحديثات بشكل مباشر بين الاجهزة لتبقى سجلاتهم محدثة

عندما تريد ارسال المال فانك تقوم بالإعلان عن ذلك لجميع الاجهزة الموجودة على شبكة البتكوين
لذلك انت بحاجة للإعلان عن رقم حسابك و رقم الحساب الذي تريد ارسال البتكوين له و عدد العملات التي تريد ارسالها
مثلا لو أراد أحمد ارسال 100$ الى خالد
ستستقبل جميع الاجهزة الموجودة على شبكة البلوكتشين الطلب للتحقق من التالي


هل أحمد يملك 5 بتكوين في حسابه ؟

كما قلنا بالأعلى السجلات تحتوي على معلومات للمعاملات التي تمت بالسابق وهذا يتيح للأجهزة من تتبع العمليات السابقة للتحقق من امتلاك المرسل للرصيد الكافي فمثلا في حالة أحمد تقوم الاجهزة بمراجعة عمليات الارسال و الاستقبال للبتكوين الخاص بأحمد فاذا وجدو أن أحمد استلم مسبقا مبلغ 5 بتكوين من عمليات استقبال سابقة و بالتالي أحمد يمتلك في حسابه رصيد كافي و يحق له ارسال 5 بتكوين الى خالد و سيتم التحديث على السجلات و اضافة المعاملة لها و بالتالي اصبح الجميع يعلم أن أحمد أرسل رصيد 5 بتكوين الى خالد


هل المرسل هو أحمد فعلا او هناك احد يحاول ان يدعي انه أحمد لسرقة رصيده ؟
في القسم التالي سوف نتكلم عن هذه النقطة بالتفصيل

هل البتكوين أمن ؟
يتم الحفاظ على عملات البتكوين امنة تماما من الاحتيال و التزوير بفضل علم التشفير و هذا السبب في تسميتها عملة مشفرة.

لكي تكون جزء من شبكة البتكوين و لكي تتمكن من ارسال و استقبال عملات بيتكوين يجب ان تقوم بإنشاء محفظة الكترونية
بمجرد انشاء محفظة الكترونية يتم توليد مفتاحين فريدين احدهما خاص و الاخر عام
يستخدم البتكوين المفتاح العام (
public key) و المفتاح الخاص (private key) لمنع التزوير و الاحتيال
المفتاح العام يمكن للجميع الوصول اليه بمعنى يتم مشاركته مع الجميع  اما  المفتاح الخاص يبقى خاص بمالكه بمعنى لا يمكن لاحد الوصول اليه سوى صاحب الحساب

يستخدم المفتاح الخاص  في عمل شيء يسمى التوقيع الرقمي
كما قلنا في الاعلى عندما نريد ارسال بيتكوين لشخص اخر فإننا نحتاج الى عمل اعلان على شبكة البتكوين  و باستخدام المفتاح الخاص يقوم المرسل بعمل توقيع الكتروني للطلب حيث يمثل التوقيع الرقمي  بصفة فريدة لكل شخص على شبكة البتكوين من خلاله يتم التحقق من هويته
,حيث يتم استخدامه لاحقا من قبل الاجهزة للتحقق من هوية صاحب الطلب(الشخص الذي يريد ارسال البتكوين) لمنع عمليات انتحال شخصية المرسل من شخص اخر
مثلا : أحمد يريد ارسال 2 بتكوين الى خالد
يقوم أحمد بالإعلان عن  طلب يحتوي على رقم حسابه و رقم حساب المرسل و المبلغ
يقوم أحمد بتوقيع الطلب باستخدام مفتاحه الخاص
يتم بث الطلب على شبكة البتكوين
تقوم الاجهزة على شبكة البتكوين بالتحقق من هوية المرسل (هل هو أحمد ؟) و التحقق من امتلاكه للرصيد (تكلمنا بالسابق عن هذه الجزئية)


كيف يتم التحقق من هوية المرسل ؟

تكلمنا في الاعلى ان لكل شخص على شبكة البتكوين مفتاح خاص و مفتاح عام , و قلنا أن المفتاح العام يتم مشاركته مع الجميع اما المفتاح الخاص فهو سري و خاص بصاحب المحفظة

بعد أن يقوم المرسل بتوقيع الطلب باستخدام المفتاح الخاص  و بث الطلب على شبكة البتكوين
تقوم الاجهزة بالتأكد من صحة التوقيع من خلال استخدام المفتاح العام للمرسل , هكذا يتم الامر بكل بساطة
الان سنتكلم بشكل مفصل أكثر
التوقيع الرقمي يتم من خلال تشفير جزء من الرسالة باستخدام المفتاح الخاص بالمرسل و بالتالي ينتج نص مشفر يتم اضافته للرسالة/الطلب ويسمى توقيع
عندما يصل الطلب للأجهزة تقوم الاجهزة باستخدام المفتاح العام للمرسل لفك تشفير التوقيع و بالتالي اذا نجح المفتاح العام بفك التشفير يكون الشخص المرسل هو نفسه من يدعي و اما اذا فشل فيتم رفض عملية التحويل
اذا الرسالة/الطلب يتم توقيعه بالمفتاح الخاص  للمرسل  و يتم التحقق من التوقيع بالمفتاح العام للمرسل بمعنى أخر اذا كان المفتاح العام للمرسل يعمل اذا هذا اثبات ان الرسالة تم توقيعها باستخدام المفتاح الخاص للمرسل وبالتالي المرسل هو نفسه من يدعي انه هو

ما يميز التوقيع الرقمي انه من المستحيل تزويره الى في حالة واحدة وهي اذا حصل شخص على المفتاح الخاص بشخص اخر
فبالتالي يصبح بإمكانه استخدام المفتاح الخاص بالشخص الاخر وعمل طلب و التوقيع على الطلب باستخدام المفتاح الخاص بذلك الشخص و بالتالي انتحال شخصيته (الامر اشبه بسرقة بطاقة ائتمان لشخص اخر ).

بعد ان تنتهي الاجهزة على شبكة البتكوين من عمليات التحقق بنجاح يتم توليد بلوك جديد (
block) , حيث يقوم كل جهاز قام بعملية التحقق بتوليد بلوك يحتوي على العمليات الجديدة التي تم التحقق منها و يتم اضافته الى سلسلة البلوك او ما يسمى البلوك تشين(Blockchain) , لكن توجد مشكلة قد تحدث مع المزامنة , قلنا ان كل جهاز على الشبكة سيولد بلوك جديد يحتوي على العمليات و ومن المفترض ان البلوك الناتج عن كل جهاز يكون متشابه مع باقي الاجهزة لان جميعها قامت بعمل تحقق لنفس العمليات بنفس الوقت
لكن مع حدوث تأخير في الشبكة فذلك يعني أن الاجهزة قد لا تتلقى العمليات بنفس الترتيب و بالتالي يكون لديك الكثير من الاجهزة التي لديها بلوك/سجل مختلفة قليلا فيما بينها (اختلاف في ترتيب المعاملات )




البيتكوين يقوم حل هذه المشكلة من خلال التعدين حيث لإضافة كتلة جديدة من المعاملات الى سلسلة الكتل (البلوكتشين) يجب حل نوع خاص من المشكلات الرياضية (أشبه بأحجية) تم انشائها بواسطة دالة التجزئة (
Hash)  حيث يقوم المعدنين بالتسابق للوصول للحل ومن يصل للحل اولا يتم اعتماد البلوك الجديد الخاص به و اضافته لسلسلة الكتل و يتم مشاركة التحديث مع الجميع بحيص تصبح نسخة البلوك تشين الموجودة عند الجميع محدثة

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

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

في البداية كان يتم اعطاء مكافئة 50 بيتكوين ولكن يتم خفض المكافئة للنصف كل 4 سنوات حيث انخفض الى  25  بيتكوين وفي الوقت الحالي يتم منح مكافئة 12.5 بيتكوين حيث ستستمر عملية التعدين حتى يصبح عدد البتكوين في العالم 21,000,000 بيتكوين و يتوقع استخراج اخر عملة بيتكوين في عام 2140 و الفكرة من ذلك الحفاظ على قيمة البتكوين من خلال ابقاء عدده محدود أي الامر اشبه بالذهب .

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

You can share this post!

فيروس الفدية : تعريفه و أنواعه

ما هي تقنية بلوك تشين و كيف تعمل ؟

author

admin

By Admin

مقالات ذات صلة

التعليقات

Whoops, looks like something went wrong.

(1/1) ErrorException

file_put_contents(/home/itcomuni/public_html/storage/framework/sessions/s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM): failed to open stream: Disk quota exceeded

in Filesystem.php line 122
at HandleExceptions->handleError(2, 'file_put_contents(/home/itcomuni/public_html/storage/framework/sessions/s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM): failed to open stream: Disk quota exceeded', '/home/itcomuni/public_html/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', 122, array('path' => '/home/itcomuni/public_html/storage/framework/sessions/s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM', 'contents' => 'a:3:{s:6:"_token";s:40:"PlswDmWxt5CRpq1w0BEIA6Ytl8zUdm1Xmh45QTYR";s:9:"_previous";a:1:{s:3:"url";s:116:"https://itcomunity.com/post/%D9%85%D8%A7-%D9%87%D9%88-%D8%A7%D9%84%D8%A8%D9%8A%D8%AA%D9%83%D9%88%D9%8A%D9%86-bitcoin";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}', 'lock' => true))
at file_put_contents('/home/itcomuni/public_html/storage/framework/sessions/s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM', 'a:3:{s:6:"_token";s:40:"PlswDmWxt5CRpq1w0BEIA6Ytl8zUdm1Xmh45QTYR";s:9:"_previous";a:1:{s:3:"url";s:116:"https://itcomunity.com/post/%D9%85%D8%A7-%D9%87%D9%88-%D8%A7%D9%84%D8%A8%D9%8A%D8%AA%D9%83%D9%88%D9%8A%D9%86-bitcoin";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}', 2)in Filesystem.php line 122
at Filesystem->put('/home/itcomuni/public_html/storage/framework/sessions/s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM', 'a:3:{s:6:"_token";s:40:"PlswDmWxt5CRpq1w0BEIA6Ytl8zUdm1Xmh45QTYR";s:9:"_previous";a:1:{s:3:"url";s:116:"https://itcomunity.com/post/%D9%85%D8%A7-%D9%87%D9%88-%D8%A7%D9%84%D8%A8%D9%8A%D8%AA%D9%83%D9%88%D9%8A%D9%86-bitcoin";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}', true)in FileSessionHandler.php line 83
at FileSessionHandler->write('s3ks0QeAfbiq2Oq7QwPTqm6M7nIae4wlamH9g1oM', 'a:3:{s:6:"_token";s:40:"PlswDmWxt5CRpq1w0BEIA6Ytl8zUdm1Xmh45QTYR";s:9:"_previous";a:1:{s:3:"url";s:116:"https://itcomunity.com/post/%D9%85%D8%A7-%D9%87%D9%88-%D8%A7%D9%84%D8%A8%D9%8A%D8%AA%D9%83%D9%88%D9%8A%D9%86-bitcoin";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}')in Store.php line 128
at Store->save()in StartSession.php line 88
at StartSession->terminate(object(Request), object(Response))in Kernel.php line 218
at Kernel->terminateMiddleware(object(Request), object(Response))in Kernel.php line 189
at Kernel->terminate(object(Request), object(Response))in index.php line 58