كيف يحمي التشفير بلوك تشين؟
هذا المقال مقتطف من الكتاب دليل Layman’s إلى Bitcoin بواسطة لوجان بروتشي ويتم إعادة نشرها هنا بإذن من المؤلف.
علم التشفير هو علم تطبيق الوظائف الرياضية على أجزاء من البيانات لضمان أمنها.
تشير الكثير من القصص الخيالية الشائعة إلى أنه يمكن اختراق أي نظام ، طالما أن لديك متسللًا جيدًا بدرجة كافية. “قرصنة هوليوود” هذه ليست الطريقة التي يعمل بها العالم الحقيقي – يجب على المخترق العثور على ثغرة أمنية في نظام لاستغلالها ، مثل غرفة خادم غير مؤمنة ، أو كلمة مرور سهلة التخمين ، أو منفذ شبكة غير محمي ، أو “باب خلفي” تم تثبيته كوظيفة داخلية للحصول على وصول غير مصرح به لاحقًا.
في حين أنه صحيح ، لا يمكننا أبدًا ضمان عدم وجود نقاط ضعف في نظام معين – بعد كل شيء ، يتم إنشاء الأنظمة بواسطة بشر غير كاملين – فإن الشعور بأن “أي شيء يمكن اختراقه” هو شعور خاطئ. منذ أوائل التسعينيات ، أصبح لدينا إمكانية الوصول إلى تقنيات التشفير التي هي ببساطة محصنة ضد القرصنة. إن تطبيق مثل هذه التقنيات يمكن أن يترك مجالًا للاستغلال في بعض الأحيان.
لا يمكن اختراق التشفير نفسه لإنشاء توقيع تشفير مزور (تم تعريفه قريبًا) ، تمامًا كما لا يمكن اختراق الرياضيات لجعل 2 + 2 = 5 – على الرغم من أنه يمكن استخدام كل من التشفير والرياضيات بشكل غير صحيح. إذا فشل نظام يستخدم التشفير ، فذلك لأن المصمم طبق التشفير بشكل غير صحيح. لا يرجع السبب في ذلك إلى أن التشفير لا يعمل ، أو لأن شخصًا ما “اخترق” التشفير – تمامًا كما أنه ليس خطأ الحساب إذا أساء البنك التعامل مع حسابك ، أو خطأ في البريد الإلكتروني عندما تقوم والدتك بتنزيل مرفق غير مألوف وإصابتها بفيروس الكمبيوتر . هذا تمييز مهم ، لأن Bitcoin هو تطبيق مباشر جدًا للتشفير المعمول به.
التشفير ليس تقنية جديدة غير مختبرة. تم استخدام جميع تقنيات التشفير التي تستخدمها Bitcoin منذ بداية الإنترنت ، وهي ضرورية للعديد من بروتوكولات الإنترنت الشائعة المستخدمة يوميًا. يعتبر علماء الكمبيوتر علم التشفير موثوقًا وضروريًا بنفس الطريقة التي يعتبر بها علم الصواريخ موثوقًا وضروريًا من قبل ناسا..
أزواج المفاتيح: حجر الزاوية في التشفير
أزواج المفاتيح هي حجر الزاوية في التشفير المستخدم في سلاسل الكتل. يتكون زوج المفاتيح من جزأين: مفتاح خاص ومفتاح عام. هذه المفاتيح في الحقيقة ليست أكثر من أرقام كبيرة جدًا لها علاقة رياضية محددة ، تُستخدم بدلاً من كلمات المرور وأسماء المستخدمين.
يمكنك التعامل مع مفتاح عام مثل اسمك الأول أو اسم مستخدم: في معظم الحالات تشاركه مع أي شخص يسأل ، ويمكن لمن لديه هذا المفتاح استخدامه للإشارة إليك أو الاتصال بك. إنه مرتبط بسمعتك (أو في حالة Bitcoin ، سجل معاملاتك) ، لذلك قد يكون لديك العديد من المفاتيح العامة (وبالتالي عدة أزواج مفاتيح) تستخدمها لأغراض مختلفة. يمكن استخدام المفتاح العمومي للإشارة إلى حساب أو عرضه ، ولكن لا يمكنه بمفرده تفويض أي إجراء على هذا الحساب.
يجب التعامل مع المفتاح الخاص ككلمة مرور: لا يجب مشاركته مع أي شخص ، ويتم استخدامه لمصادقة إجراءات معينة ، مثل إرسال BTC.
ولكن هناك فرق مهم بين المفتاح الخاص وكلمة المرور. لاستخدام كلمة مرور ، يجب عليك إرسالها إلى شخص أو خادم حتى يمكن التحقق منها مقابل سجلاتهم. عليك أن تثق في أنه سيتم التعامل مع كلمة المرور بمسؤولية بعد إرسالها. في المقابل ، يمكن استخدام مفتاح خاص للمصادقة على نفسك دون إرساله إلى أي مكان. المكان الوحيد الذي تم تخزينه فيه أو استخدامه مباشرة على جهازك المحلي.
هذا أمر مهم ، لأنه إذا كان بإمكانك المصادقة على نفسك دون إرسال سرك إلى أي مكان ، فيمكنك أن تظل متحكمًا بشكل كامل في أمانه – فأنت لست عرضة للثغرات الأمنية للأنظمة الأخرى. هذا جزء أساسي مما يجعل Bitcoin غير قابل للقرصنة. لا توجد كلمات مرور أو مفاتيح خاصة مخزنة على Bitcoin نفسها حتى يتمكن المهاجم من اختراقها ، ومع ذلك لا يزال بإمكان المستخدمين مصادقة المعاملات.
ولكن كيف يمكنك استخدام مفتاح خاص لمصادقة معاملة ، إذا لم ترسل المفتاح الخاص إلى أي مكان؟ تتعلق الإجابة بالعلاقة الرياضية بين المفاتيح الخاصة والعامة: التوقيعات المشفرة.
تواقيع التشفير
هناك العديد من التقنيات المختلفة لإنشاء تواقيع التشفير والتحقق من صحتها ، والنظريات الرياضية التي تسمح لها بالعمل تتجاوز نطاق هذه المقالة بكثير. بالنسبة لأولئك الذين ليسوا على دراية بالتشفير ، قد تبدو العملية الموضحة هنا مستحيلة تمامًا في البداية. أتذكر بوضوح وجود هذا الانطباع عندما بدأت بحثي عن Bitcoin قبل أربع سنوات.
في الوقت الحالي ، سألاحظ ببساطة مرة أخرى أن هذه التقنيات تُستخدم في العديد من بروتوكولات الإنترنت الشائعة ، وهي جزء ثابت من علم المعلومات.
تخيل شخصين ، أليس وبوب ، قاما بالفعل بمبادلة المفاتيح العامة شخصيًا. تريد أليس أن ترسل رسالة إلى بوب ، لكن بوب شخص مريب جدًا ، ولن يثق في أن الرسالة جاءت بالفعل من أليس ما لم يتمكن من إثباتها رياضيًا ، بما لا يدع مجالاً للشك. لتسهيل هذا الإثبات ، وافقوا على استخدام توقيع مشفر.
لإنشاء التوقيع ، تستخدم أليس خوارزمية إنشاء التوقيع بجهاز الكمبيوتر الخاص بها ، والتي تأخذ مفتاحها الخاص ورسالتها الكاملة كمدخلات ، وتقوم بإنشاء توقيع مشفر. ثم ترسل إلى بوب هذه الرسالة / مجموعة التوقيع — ولكن ، بشكل حاسم, لا ترسل مفتاحها الخاص.
عندما يتلقى بوب الرسالة والتوقيع ، يكون لديه خوارزمية تكميلية للتحقق من صحة التوقيع ليستخدمها. تأخذ هذه الخوارزمية كإدخال للرسالة والتوقيع ، وتحدد عامة مفتاح زوج المفاتيح الذي استخدمته أليس لإنشاء التوقيع. عندما يرى بوب ناتج الخوارزمية الخاص به مفتاح Alice العام ، فقد أثبت رياضيًا أن التوقيع يجب أن يكون قد تم إنشاؤه باستخدام زوج مفاتيح Alice ، على الرغم من أنه لا يعرف ولا يمكنه حساب النصف الخاص من زوج مفاتيح Alice.
ضع المزيد من الإيجاز, تسمح عملية التوقيع المشفر هذه لـ Bob بالتحقق من أن الرسالة لم يتم إنشاؤها أو تعديلها بواسطة طرف ثالث ويجب أن تكون قد تم إنشاؤها باستخدام مفتاح Alice الخاص ، دون الحاجة إلى (أو القدرة على) معرفة مفتاحها الخاص. كل ما يحتاجه هو تركيبة الرسالة / التوقيع ومفتاحها العام.
حدسيًا ، يبدو هذا مستحيلًا ، وقد تشعر كما لو كنت قد أسأت فهم شيء ما. إذا كانت مفاتيح أليس الخاصة والعامة مرتبطة ارتباطًا وثيقًا ، واستخدمت أليس مفتاحها الخاص لإنشاء التوقيع الذي يتسلمه بوب ، فكيف يمكنه اشتقاق مفتاحها العام ولكن لا يمكنه العثور على مفتاحها الخاص؟ تتطلب الإجابة على هذا فهماً أعمق للرياضيات أكثر مما لدى معظم الناس ، وهي بعيدة عن نطاق هذا الكتاب.
ومع ذلك ، يتم الاعتماد على هذه التقنية واستخدامها كل يوم ، وتعتبر صخرة صلبة داخل مجتمع التشفير. عندما تزور موقع ويب ويبدأ عنوانه بـ https ، يشير الحرف “s” إلى أن الموقع قد تحقق من صحة نفسه بتوقيع مشفر. استخدم جهاز الكمبيوتر الخاص بك خوارزمية للتحقق من صحة التوقيع ، تمامًا كما فعل بوب في المثال أعلاه ، للتحقق من أن موقع الويب قد أتى بالفعل من زوج المفاتيح الصحيح. يتم الاعتماد على توقيع التشفير هذا لضمان أن أي تفاعل إضافي بينك وبين موقع الويب مشفر وأصيل. إذا فشل هذا الاختبار ، فسوف تحذرك المتصفحات الحديثة وتضع علامة على موقع الويب على أنه خطير.
أعداد ضخمة بما فيه الكفاية
في وقت سابق ، ذكرت بإيجاز أن المفاتيح الخاصة والعامة تعمل مثل أسماء المستخدمين وكلمات المرور ، ولكنها في الواقع ليست أكثر من أرقام كبيرة للغاية لها علاقة رياضية خاصة. بالنظر إلى ذلك ، غالبًا ما أطرح الأسئلة التالية:
“ألا يمكن لشخص ما أن يمتلك جهاز كمبيوتر فقط ، أو أن يحسب مجموعة من الأرقام ويجربها كمفاتيح خاصة؟ ألن يتم تشغيلهم في النهاية عبر مفتاح خاص لبعض أزواج المفاتيح المستهدفة ، وبالتالي يمكنهم التحكم في تلك الهوية؟ ” في الواقع ، في حالة Bitcoin ، سيسمح هذا للمهاجم بسرقة الأموال التي يحتفظ بها بعض أزواج المفاتيح.
إنه سؤال جيد ، ومع ذلك لم يحدث. كما ذكرنا سابقًا ، هناك العديد من عناوين Bitcoin التي تبلغ قيمتها ملايين الدولارات من BTC والتي لم يتم نقلها منذ سنوات – على الرغم من أن كل ما هو مطلوب لسرقته هو المفتاح الخاص الصحيح – الرقم الضخم الصحيح! إذا كان بإمكانك تخمين المفتاح الخاص لتلك العناوين ، فإن الأموال ملكك لإرسالها إلى أي مكان. على عكس كلمة المرور ، يمكنك التحقق من المفاتيح الخاصة محليًا على جهازك الخاص ، ولا يوجد خادم يحدد عدد المرات أو مدى سرعة تجربتها.
فلماذا لم يسرق أحد هذه الأموال حتى الآن؟ تكمن الإجابة في الحجم السخيف تقريبًا للأرقام المستخدمة كمفاتيح خاصة. هم انهم ضخم بما فيه الكفاية.
لنبدأ بتجربة فكرية بسيطة. تخيل أن مفتاحك الخاص كان كبيرًا بما يكفي لدرجة أنه إذا عملت جميع أجهزة الكمبيوتر في العالم معًا ، فسيستغرق الأمر 24 ساعة كاملة لتخمينه بقوة. إذا أضفت رقمًا واحدًا إضافيًا إلى مفتاحك الخاص ، فسيكون هناك عشرة أضعاف التباديل لأجهزة الكمبيوتر التي ستمر بها ، لذلك سيستغرق الأمر 10 أيام بدلاً من واحد. ستة أرقام أخرى ستجعله يصل إلى 27000 سنة.
في كل حالة ، فإن إنشاء المفتاح الخاص – الذي لا يتطلب سوى القدرة على إنشاء أرقام عشوائية – يظل أمرًا بسيطًا. يظل استخدام المفتاح الخاص لإنشاء التوقيعات ، وكذلك التحقق من هذه التوقيعات مقابل المفتاح العام ، أمرًا بسيطًا من الناحية الحسابية. لكن العمل المطلوب لتخمين المفتاح الخاص ينمو بشكل كبير مع كل رقم إضافي. لجعل المفاتيح الخاصة “محصنة” من قوة التخمين ، نحتاج فقط إلى إضافة أرقام كافية – نحتاج فقط إلى جعلها ضخمة بما يكفي.
إذن ما هو الحجم الضخم بدرجة كافية? المفاتيح الخاصة المستخدمة في Bitcoin هي أعداد صحيحة 256 بت ، والتي تصل إلى ستة وسبعين رقمًا في الطول. قوة حجم هذا الرقم لا تصدق. الرسم التوضيحي التالي مشتق بشكل كبير من كتاب بروس شناير التشفير التطبيقي, وهو عرض مقنع لأعداد ضخمة بما فيه الكفاية.
أولاً ، أدرك أن إحدى النتائج المحددة للقانون الثاني للديناميكا الحرارية هي أن هناك حدًا أدنى من الطاقة المطلوبة لتغيير بت ثنائي واحد من المعلومات (تغيير 1 إلى 0 أو العكس بالعكس). هذا يعني أن أي عملية حسابية تتطلب بعض الحد الأدنى من الطاقة لأداء ، بغض النظر عن الأجهزة المستخدمة.
لنفترض الآن أنك كنت قادرًا على تسخير كامل ناتج الطاقة من الشمس فقط لتشغيل جهاز كمبيوتر مصمم خصيصًا ، وتتمثل مهمته في الاعتماد على المفاتيح الخاصة أو تخمينها ، على أمل العثور على المفتاح الخاص لزوج المفاتيح (الذي قد يتحكم في BTC).
باستخدام القليل من الرياضيات والديناميكا الحرارية ، ستجد أن جهاز كمبيوتر فعال تمامًا يمكنه الاعتماد على 2178 قيمة في ضوء إجمالي إنتاج الطاقة السنوي للشمس. إذا قسمنا هذه القيمة إلى عدد المفاتيح الخاصة المحتملة ، 2256 ، فسنجد أن هذا الكمبيوتر الافتراضي سيكون قادرًا فقط على التخمين أو العد من خلال 0.0000000000000000000003٪ من العدد الإجمالي للمفاتيح الخاصة الممكنة – مع الأخذ في الاعتبار إجمالي إنتاج الطاقة السنوي للشمس.
علاوة على ذلك ، يعد هذا مجرد عد ، ولا يتضمن المهمة الأكثر تعقيدًا للتحقق الفعلي من كل مفتاح خاص لمعرفة ما إذا كان يتوافق مع المفتاح العام الصحيح. لذا في فرصة 0.0000000000000000000003٪ هذا الكمبيوتر حدث عبر المفتاح الخاص الصحيح بحلول نهاية عام واحد ، فلن يدرك ذلك حتى.
هذه الأرقام لا علاقة لها بتكنولوجيا الأجهزة ؛ إنها الحدود القصوى الممكنة وفقًا لقوانين الديناميكا الحرارية التي تم وضعها منذ ثلاثينيات القرن الماضي. وهم يشيرون بقوة إلى أن هجمات القوة الغاشمة ضد مفاتيح 256 بت (التي تستخدمها Bitcoin) ستكون غير قابلة للتنفيذ حتى يتم إنشاء أجهزة الكمبيوتر من شيء آخر غير المادة وتحتل شيئًا آخر غير المساحة..
هذه هي قوة الأعداد الضخمة بما فيه الكفاية. لا يهم مدى جودة المخترق. ما لم يتمكن من تسخير قوة ثلاثمائة سكستيليون شمس لمدة عام واحد ، أو شمس واحدة لثلاثمائة سكستيليون سنة ، فإن جهاز الكمبيوتر الخاص به لا يمكنه حتى عدد من خلال جميع المفاتيح الخاصة – ناهيك عن اختبارها أو استخدامها بطريقة أخرى.
لإلقاء نظرة أكثر تعمقًا على Bitcoin والتشفير ، اختر كتاب Logan Brutsche, دليل Layman’s إلى Bitcoin.