ملف العدد
البتكوين: نظام نقدي إلكتروني (نِدّ لنِدّ) لامركزي
العدد 147 | حزيران (يونيو)-2019

بقلم أميمة الدكاك
مدير بحوث في المعهد العالي للعلوم التطبيقية والتكنولوجيا

الملخص

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

  1. المقدمة

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

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

  1. المداولات

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

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

إننا بحاجة إلى طريقة يستطيع بها المدفوع له معرفة أن المالك السابق لم يوقِّع أي مداولة سابقة. وفيما يخصنا، أقدم مداولة للنقدة هي التي تُحتسب، ولذا لا نكترث للمحاولات اللاحقة للدفع أكثر من مرة واحدة. والطريقة الوحيدة لتأكيد غياب مداولة ما؛ هي أن تكون لدينا دراية بكل المداولات. في النموذج القائم على السكَّاك، كان السكَّاك على دراية بكل المداولات ويستطيع تحديد المداولة التي وصلت أولًا. ولتحقيق ذلك من دون طرف موثوق، يجب إعلان المداولات على الملأ [1]، ولذا نحن بحاجة إلى طريقة يستطيع بواسطتها المشاركون الموافقة على تاريخ وحيد للترتيب الذي وصلت المداولات به. يحتاج المدفوع له إلى إثبات أن معظم العقد في الشبكة - في لحظة استقباله لأي مداولة - متفقة على أنها أول مداولة جرى استقبالها.

  1. مخدِّم الختم الزمني

يبدأ الحل الذي نقترحه بمخدِّم ختم زمني. يعمل هذا المخدم بأخذ بصمة hash كتلة من العناصر Block of items التي يجب ختمها زمنيًّا، ثم نشر البصمة على الملأ، في صحيفة أو موقع وب على سبيل المثال [2-5]. يُثبِت الختم الزمني أن تلك البيانات وُجدت في ذلك الوقت، وضوحًا، حينما دخلت البصمة. وكل ختم زمني يتضمن الختم الزمني السابق ضمن بصمته، وبذلك تتكون سلسلة يعزِّز فيها كل ختم زمني جديد الأختام التي سبقته.

  1. إثبات العمل Proof-of-Work (PoW)

من أجل إنشاء مخدم ختم زمني موزَّع على أساس لامركزي (ند لند)، نحتاج إلى استعمال منظومة إثبات عمل مشابه لمنظومة النقد البصميّ (هاشكاش Hashcash) الذي طوره آدم باك [6]، بدلًا من الصحيفة أو مواقع الوب. يتضمن إثبات العمل البحث عن قيمة تعطي بصمة تبدأ بعدد من البتات الصفرية حين استعمال تابع البصمة SHA-256. ومقدار العمل الوسطي اللازم لذلك هو تابع أسي لعدد البتات الصفرية المطلوبة، ويمكن التحقق منه بتنفيذ عملية بصمة واحدة.

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

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

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

  1. الشبكة

خطوات تشغيل الشبكة السابقة هي التالية:

  1. تُبَثُّ المداولات إلى جميع العقد.
  2. تجمِّع كل عقدة المداولات الجديدة كتلة.
  3. تقوم كل عقدة بالبحث عن إثبات عمل صعب لكتلتها.
  4. عندما تعثر عقدة على إثبات عمل، تبث الكتلة إلى جميع العقد.
  5. لا تقبل العقد هذه الكتلة إلا إذا كانت جميع المداولات التي فيها صحيحة ولم يجرِ إنفاقها من قبل.
  6. تعبِّر العقد عن قبولها للكتلة بالعمل على توليد الكتلة التالية في السلسلة باستعمال توقيع الكتلة المقبولة باعتباره البصمة السابقة.

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

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

  1. الحافز

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

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

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

  1. استعادة حيز التخزين على القرص

عندما تُدفن المداولة الأخيرة للنقدة تحت ما يكفي من الكتل، يمكن إهمال المداولات المنفقة قبلها، وذلك من أجل تقليص حيز القرص المستعمل. ولتحقيق ذلك من دون كسر بصمة الكتلة، تُنفَّذ عملية البصم باستعمال شجرة مركل (Merkle Tree) [7،2،5]، مع الإبقاء على الجذر ضمن بصمة الكتلة فقط. وعندئذ يمكن ضغط الكتل القديمة بقص أفرع الشجرة. أما البصمات الداخلية، فلا حاجة إلى خزنها.

يمكن أن يكون حجم ترويسة كتلة من دون مداولة 80 بايت. فإذا افترضنا أن الكتل تولَّد كل 10 دقائق، يتولَّد 4.2 ميغا بايت في السنة. وبتوفر حواسيب ذات ذاكرة رام سعتها 2 غيغا بايت (في عام 2008)، وبناء على قانون مور الذي يتنبأ بزيادة في الرام مقدارها 1.2 غيغا بايت في السنة، لن ينطوي التخزين على مشكلة حتى لو وجب إبقاء ترويسات الكتل في الذاكرة.

  1. التحقق المبسط من الدفعات

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

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

  1. تجميع وتجزئة القيمة

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

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

  1. الخصوصية

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

  1. الحسابات

ندرس سيناريو أن يحاول مهاجمٌ توليد سلسلة بديلة أسرع من السلسلة النزيهة. حتى إن حصل ذلك، لن يُترَك النظام مفتوحًا للتغيرات التحكمية arbitrary مثل إعطاء قيمة من الهواء أو أخذ نقود لم تنتمِ إلى المهاجم. لن تتقبل العقد مداولاتٍ غير صالحة للدفع، ولن تتقبل العقد النزيهة أي كتلة تتضمن هذه المداولات. سيحاول المهاجم فقط أن يغير إحدى مداولاته لاسترجاع نقود أنفقها مؤخرًا.

يمكن وصف السباق بين السلسلة النزيهة وسلسلة المهاجم بالمشي العشوائي الثنائي Binomial Random Walk. إن نجاح السلسلة النزيهة بإضافة كتلة يزيد القيمة بـ 1، على حين أن الفشل هو بزيادة كتلة إلى سلسلة المهاجم وتقليص المسافة بـ 1.

إن احتمال الإمساك بمهاجم بسبب حالة عجز مشابه لمسألة تدمير غامبلر Gambler’s Ruin. لنفترض أن لدى غامبلر موارد غير محدودة وأنه بدأ بحالة عجز وأنه يجرب عددًا غير منته من الحالات للوصول إلى التعادل. يمكننا حساب احتمال وصوله إلى التعادل، أو احتمال التقاطه من السلسلة النزيهة كما يلي [8]:

p احتمال أن تجد عقدة نزيهة الكتلة اللاحقة.

q احتمال أن يجد المهاجم الكتلة اللاحقة.

qz احتمال التقاط المهاجم من z كتلة لاحقة

وبما أننا نفترض أن p>q، فإن الاحتمال يتناقص أسيًّا مع تزايد عدد الكتل التي على المهاجم التعامل معها. ومع تزايد الفرص ضده، إذا لم ينجح باكرًا ستصبح فرصه في النجاح أقل بكثير.

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

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

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

وبإعادة ترتيب العلاقة لتجنب الجمع إلى ما لانهاية تصبح:

12 النتيجة

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

 

References

[1] W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998.

[2] H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.

[3] S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991.

[4] D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping," In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.

[5] S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997.

[6] A. Back, "Hashcash - a denial of service counter-measure," http://www.hashcash.org/papers/hashcash.pdf, 2002.

[7] R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980.

[8] W. Feller, "An introduction to probability theory and its applications," 1957.

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