طريقة التعدين في شبكة بلوكتشين البيتكوين بالتحديد

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

حسنا سنحاول تبسيط الموضوع نوعا ما ،بداية يعتبر بلوكتشين البيتكوين أكثر من مجرد سلسلة متصلة من الكتل ، لذلك دعني أحاول مساعدتك في فهم كيفية تصميم شبكة بلوكتشين البيتكوين ، و كيف تعمل ، و هذا الشرح سوف يساعدك على تعويض المعلومات الناقصة لديك و ملأ الفجوات الموجودة في طريقة فهمك للأمر ، و ذلك كي أضعك على طريق تبدأ منه في إكتساب المزيد من المعرفة في هذا المجال .
و أنا أتحدث هنا بالخصوص عن تصميم شبكة البلوكتشين ، و ذلك لأن البيتكوين لديه أيضا قنوات شبكة مدفوعات تعرف بإسم (lightning) ، و هي عبارة عن طبقة برمجية فوق طبقة شبكة البلوكتشين الرئيسية ، و هذا النظام لا يؤثر في البناء الهيكلي الأساسي لشبكة بلوكتشين البيتكوين ، و في هذا الموضوع لن أقوم بشرح شبكة مدفوعات البيتكوين Bitcoin’s lightning network ، و ذلك لأن هذا النظام لا يعد جزءا متعلق بالنقطة التي أريد التحدث عنها اليوم .

طريقة عمل الـ Nodes في شبكة البلوكتشين و ترابطها ببعضها البعض

في ما يلي مثال تقريبي لطريقة عمل شبكة بلوكتشين البيتكوين ، و لكن في هذا المثال نقلص حجم الشبكة إلى عدد 1000 Node برمجية تعمل على تأكيد المعاملات ( للمعلومة يوجد 115000 Node برمجية في شبكة بلوكتشين البيتكوين في الوقت الحالي ) ، و تحتوي كل Node هنا على 8 روابط تربطها بينها و بين Nodes أخرى على الشبكة ، لأن هذا هو مقدار الروابط الإفتراضية التي يقوم بها النظام دون إجراء أية تغييرات عليه .
نستعرض معكم شكل توضيحي للشبكة في الصورة التالية بالأسفل .
توجد الـ Node الخاصة بي هنا في مكان ما ، و إذا كنت تقوم بتشغيل Node على الشبكة ، سوف تكون الـ Node الخاصة بك هناك أيضًا ، هناك في شبكة البلوكتشين توجد Nodes برمجية خاصة بمنصة Coinbase ، و توجد أيضا Nodes خاصة بشركة تصنيع معدات تعدين البيتكوين العملاقة Bitmain هناك ، و إذا كان ساتوشي ناكاموتو لا يزال موجودًا ، فإن الـ Node الخاصة بساتوشي ناكاموتو سوف تكون موجودة أيضًا في مكان ما على الشبكة .

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

أنظر الشكل التالي : صورة توضيحية لطريقة عمل الـ Nodes على شبكة البلوكتشين و طريقة الربط بين كل Nodes و الـ Nodes الأخرى .

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

بالنسبة إلى الـ Nodes على الشبكة ، فلا يوجد فرق حيث أن الـ Nodes الموجودين في الداخل لا يختلفون عن الآخرين الموجودين في الخارج ، فهم جميعهم لديهم نفس القدر من الإتصالات ، و عند بدء تشغيل Node جديدة تمامًا على شبكة البلوكتشين ، فإنها تجد الأقران ، و تصبح واحدة من الخلية .
فيما تعتبر أطول مسافة في هذا الرسم البياني بين أي Nodes من هذه إلى Node أخرى هي 6 ، و في هيكل عمل شبكة البلوكتشين الحقيقية ، هناك بعض الإنحرافات عن هذه المسافة لأن العثور على روابط Nodes جديدة على الشبكة ليست عملية أوتوماتيكية تمامًا بشكل يضمن توزيع جميع روابط الـ Nodes بالتساوي ، و لكن و بشكل عام ، فإن إضافة المزيد من الـ Nodes إلى شبكة البلوكتشين لا يغير هذا الأمر ، و هناك 6 درجات من Kevin Bacon ، و في 6 قفزات بين الـ Nodes المترابطة على الشبكة ، تكون معاملاتي قد تمت بين أيدي كل عقدة Node على الشبكة ( تقريبًا ) في حال إذا كانت صالحة .

طريقة تحقق الـ Nodes من صحة الكتل و المعاملات التي تحتويها للموافقة عليها أو رفض دخولها إلى الشبكة

و الآن سوف أختار العقدة Node الخاصة بي من هذه المجموعة ، و سأقوم بسحبها للخارج ، حتى أتمكن من توضيح ما يحدث عندما أقوم بإنشاء معاملة ، و أعلنها إلى شبكة البلوكتشين ، سوف تشاهد في ما يلي في الشكل التخطيطي بالأسفل العقد Nodes الخاصة بي على طول الطريق إلى ناحية اليمين ، ثم سترى العقد Nodes الثمانية الأخرى ( نظرائها ) و التي ترتبط بها العقدة Node الخاصة بي .

رسم تخطيطي لطريقة عمل العقد Node في شبكة البلوكتشين و طريقة الترابط بين الـ Node و الأخرى .

لاحظ معي أنني عندما أقوم بإنشاء معاملة ، و أرسلها إلى عالم شبكة البلوكتشين ، فإنه في الواقع سيذهب فقط إلى هؤلاء الأقران الثمانية التي ترتبط بهم العقدة Node ، و ذلك نظرًا لتصميم شبكة بلوكتشين البيتكوين من الألف إلى الياء بهدف جعل كل عقدة Node عبارة عن عقدة Node تحقق تمامًا ما يعرف بـ fully validating node ، و عندما تتلقى هذه العقدات الثمانية المعاملات الخاصة بي ، فإنها تقوم بالتتحقق من أن هذه المعاملات صالحة قبل إرسالها إلى أقرانها الثمانية .
و في حال إذا كانت المعاملة الخاصة بي غير صالحة ، فلن يؤدي ذلك إلى كسر “سطح” الشبكة ، و لن ترسل العقد الثمانية المرتبطة بها تلك المعاملات السيئة أبداً إلى نظرائهم ، و هم في الواقع لن يعرفوا حتى أنني قد أنشأت تلك المعاملة على الشبكة ، و ليس هناك طريقة لنخبرهم بها ، كما أن هذه العقد Nodes تعامل جميع البيانات على قدم المساواة ، و لكن في حال إذا استمريت أنا في إرسال معاملة غير صالحة من العقدة Node الخاصة بي إلى أي من زملائي العقد الثمانية المرتبط بهم ، فسوف يؤدي ذلك إلى حظري في النهاية .
و سوف يتم ذلك من خلالهم تلقائيًا من أجل منعي من عمل هجوم spamming للروابط الخاصة بهم ، و بغض النظر عن هويتك ، و مهما كان حجم شركتك ، لن يتم تمرير معاملتك في حال إذا كانت غير صالحة .

ما هي برمجيات الـ Light-client ، و كيف تعمل كـ Node على شبكة البلوكتشين ؟

حسنا صديقي لنفترض الآن أنك لا تشغل عقدة كاملة full-node ، و لكنك تستخدم برامج نظام Light-client في البداية ، حيث يوجد العديد من البرامج الصغيرة light-client المخصصة لأجهزة الكمبيوتر desktop ، و لهاتفك المحمول ، بعض من هذه البرامج مثل المحافظ الرقمية Electrum ، و Armory ، و Bread ، و محفظة Samourai Wallet .

و ترتبط برمجيات Light-clients بتشغيل عقدة Node معينة ، و يمكن إعداد البعض منها لتغيير العقد Nodes التي تتصل بك مع مرور الوقت ، و لكن لا تزال مرتبطة بعقد Nodes غيرها في الشبكة في النهاية ، و دعونا نلقي نظرة لهذا الشكل الذي يصف لنا ما هو الربط .

شكل تخطيطي يوضح ترابط العقد Nodes التي تتحقق من المعاملات على شبكة البلوكتشين ببعضها البعض

حسنا ، أريد منكم ملاحظة أن هذا مجرد رسم تخطيطي ، و أنه من السهل إظهار ذلك الترابط بإستخدام العقدة Node التي تصادف وجودها على الحافة ، و لكن لا توجد حافة حقيقية ، حيث يعتبر الربط هو الربط أينما تكون هذه العقدة Node و أيا كان موقعها ضمن هذا المخطط .
لقد قمت بتحديد هذا الأمر باللون الأصفر في الشكل السابق ، و العقد Nodes المربوطة باللون الأخضر ، و النقاط الزرقاء عبارة عن برامج light-clients ، و كل المعلومات التي تذهب إلى أو تأتي من برامج light-client تمر عبر العقدة البرمجية Node التي ترتبط بها ، حيث يعتمدون على تلك العقدة Node ، إنهم ليسوا جزءا من شبكة البلوكتشين ، إنها ليست عُقد Nodes إذن ، و هنا الشيء الأكثر إثارة للضحك ، حيث يحاول أشخاص آخرون تقديم فكرة خاطئة عن كيفية عمل شبكة البلوكتشين بالفعل .

التعدين عن طريق Node خاصة أو تجمعات تعدين Mining Pools

و الآن صديقي : ماذا لو كنت أريد البدء في تعدين عملات رقمية بالفعل ؟

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

شكل تخطيطي يرمز إلى كيفية ربط العقد Node على شبكة البلوكتشين بمعدات تعدين العملات الرقمية ( Mining Hardware )

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

يرجى مشاهدة كل شيء في الفيديو إذا كان لديك الوقت ، إنه شخصياً الفيديو المفضل لدي في مهمة شرح كيفية عمل تعدين العملات الرقمية على شبكة البلوكتشين ، و .عندما تصل إلى الجزء التالي في الفيديو حيث يتم تطبيق التسميات “Prev hash” ، هذه هي رؤوس الكتل في السلسلة.
شاهد الشكل التخطيطي التالي :

و ما لم يرد ذكره في هذا الفيديو هو أنه يمكنك إنشاء رؤوس كتل صالحة valid blocks headers حتى إذا كانت جميع المعاملات داخل الكتلة غير صالحة ، و لا يزال يتطلب نفس القدر من الوقت من أجل تعدين كتلة جديدة مع المعاملات غير صالحة كما تفعل بالظبط في تعدين كتلة تحتوي على معاملات صحيحة .
و هنا يجب أن تفهم إن الحافز على إنفاق كل هذا الوقت ، و الطاقة التي تخلق مثل هذه الكتل على الشبكة سيكون هو الدفع من خلال المعاملة التي تكافئك بجائزة من البيتكوين التي لم تكن بحوزتك ، و هذا هو السبب في أنه من المهم ألا تتحقق جميع العقد البرمجية Nodes فقط من رؤوس الكتل block headers ، و لكن تتحقق أيضًا من المعاملات التي تحتوي عليها ، و هذا هو ما يمنع المعدنين من قضاء هذا الوقت ، نظرًا لأن جميع العقدات Nodes تتحقق من الكتل و المعاملات ، لذلك لا يمكن لأي معدن على شبكة البلوكتشين خداع النظام .
إذا لم تتحقق جميع العقد Nodes من الكتلة و المعاملات ، فسيتعين عليك الإعتماد على العقد التي قامت بالتحقق منها ، و هذا من شأنه أن يفصل العقد Nodes إلى “أنواع” ، و النوع الوحيد الذي سيكون مهمًا هو النوع الذي يقوم بالتحقق .

حسنا ماذا لو انضممت إلى تجمع تعدين عملات رقمية أو ما يعرف بإسم Mining pool ؟

ربما قد تفعل ذلك ، بسبب أنه يصعب عليك القيام بتعدين العملات الرقمية بمفردك ، أو إذا كنت تمثل كيانًا أكبر قليلاً ، فربما تفضل دخلاً ثابتًا أفضل من دخل متقطع أليس كذلك ؟ .
يقوم العديد من المعدنين على شبكة البلوكتشين بذلك ، و يقوم هؤلاء بتوصيل الأجهزة الخاصة بهم مباشرة إلى تجمع التعدين Mining pool ، و ذلك بإستخدام بروتوكول مختلف تمامًا يسمى Stratum mining protocol ، تمامًا مثل إنشاء معاملة بإستخدام هاتفك المحمول الذي لا يعتبر عقدة على الشبكة non-node cellphone ، فلن تحتاج في هذه الحالة إلى تشغيل عقدة Node لتوصيل جهازك بتجمع تعدين Mining pool ، و يمكنك هناك التعدين دون تشغيل عقدة Node ، و يقوم العديد من المعدنين على الشبكة بذلك بالضبط.
أنظر الشكل التالي بالأسفل ، إليك ما يبدو باللون الأزرق هو الـ Mining Pool ( تجمع التعدين ) ، لقد استخدمت Slush Pool لتوضيح هذا المثال :

” شكل تخطيطي يوضح كيفية التعدين عن طريق تجمعات التعدين Mining Pool “

تذكر ، أنا قمت بسحب هذه العقد Node التي يديرها تجمع التعدين Mining Pool ، من الرسم البياني لأغراض العرض التوضيحي ، تمامًا مثل أي عقدة Node أخرى ، تحتاج هذه العقد Node التي يتم تشغيلها إلى مجموعة من الأقران ، فهم يحتاجون إلى Nodes نظراء من أجل تلقي المعاملات و الكتل Blocks ، و هم بحاجة إلى أقرانهم للإعلان عن تلك الكتل التي يقومون بإنشائها .

حسنا اسمح لي بتكرار الأمر مرة أخرى :تتحقق جميع العقد من جميع الـ blocks الموجودة ، و كل المعاملات التي تحتوي عليها .

و في حال أعلنت أي من مجمعات التعدين Mining Pools هذه عن وجود كتلة غير صالح invalid block ، فسوف يعرف أقرانها من العقد Nodes ، و ذلك لأنهم يتحققون منها كليا fully-validate ، و لن يرسلوا هذه الكتلة إلى عقد nodes أخرى على الشبكة ، تمامًا مثل المعاملات ، لا تدخل الكتل غير الصالحة invalid blocks إلى شبكة البلوكتشين .

حسنا صديقي إليك طريقة أخرى للنظر إلى هذا الأمر دون سحب هذه العقد Nodes من الرسم التخطيطي ، لاحظ معي الشكل في الأسفل ، هناك شخص يقوم بالتعدين بشكل خاص private miner ، و لا يريد أن يكون معروفًا ، حيث لديه 8 Nodes نظراء عشوائيين ، و لا يعلم أي من هؤلاء الـ Nodes الأقران أنه هو المعدن .
لنقولها مرة أخرى ، تم تصميم هذا الهيكل بشكل مكثف ، و بهذه الطريقة من أجل أسباب تتعلق بالخصوصية ، و لا توجد طريقة تسمح لأي عقدة Node في الشبكة بمعرفة أن الكتلة التي تلقاها تم إنشاؤها بواسطة أقرانها ، أو تم ترحيلها بواسطة نظيرها من العقد Nodes على الشبكة ، و لكن كل ما يعرفونه هو ما إذا كانت هذه الكتل أو المعاملات صحيحة أم لا ، إذا كانت صحيحية فسوف تقوم العقد Nodes بإرسالها إلى الشبكة ، و إن لم يكن كذلك ، فإن العقد لن تقوم بإرسالها إلى الشبكة مطلقا .

” رسم تخطيطي يوضح شكل العقد البرمجية في شبكة البلوكتشين و كيف أنها تقوم برفض أي كتل أو معاملات غير صالحة ، و السهم الأحمر يشير إلى عقدة Node يقوم بالتعدين عليها شخص بشكل خاص بدون الدخول في تجمعات تعدين Mining Pool “

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

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

و الآن صديقي للحصول على صورة كاملة للرسم التخطيطي النهائي للتعدين في شبكة البلوكتشين ، يمكنني محاولة شرح المنطق المستخدم عندما يقول الناس ” إن العقد التي تقوم بالتعدين mining nodes هي فقط العقد المهمة “.
يتصل بعض المعدنين مباشرة بمعدنين آخرين في الشبكة بحيث يكون بعضهم من المعدنين الموجودين خارج قائمة نظيرائهم في الشبكة ، و ليس كل المعدنين في الشبكة يقومون بذلك ، حيث أن بعض من المعدنين الذين يتصلون ببعضهم البعض مباشرة يستخدمون شبكات الترحيل الإختيارية relay networks مثل شبكة FIBRE network التي صممها أحد مطوري البيتكوين الأساسيين السيد Matt Corallo .

و لكن حتى هذه الشبكة الجانبية side-network لا تعتبر حصرية بالنسبة للمعدنين ، و يمكن لأي شخص الإنضمام لها بما في ذلك أنت ، أو أنا ، و بطريقة أخرى فهذه الطريقة تساعد في ترحيل الكتلة block relay عبر الشبكة في كلتا الحالتين .

و يحاول الناس أن يجادلوا بأن في مسألة أن هذا الترابط بين العقد Nodes التي تقوم بالتعدين في الشبكة ( سواء كان بإستخدام شيء مثل شبكة FIBER أم لا ) يعني ضمنيا أنها العقد Nodes الوحيدة التي تهم في الشبكة ، و هذا يعتبر أمر سخيف .

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

StopAndDecrypt@StopAndDecrypt

Bitcoin is an impenetrable fortress of validation.

It doesn’t matter if you created the transaction/block, or if someone else sent it to you: If it’s not valid it’s not getting in.

All nodes enforce validation in tandem.

Some people still don’t seem to understand this concept.

٣٥١ من الأشخاص يتحدثون عن ذلك

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

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

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

المصدر : hackernoon.com

Scroll to Top
Scroll to Top