دالة الهاش SHA-256 هي دالة هاش تشفيرية، تقبل بيانات مدخلة ذات حجم عشوائي لتُنتج مخرجات ذات حجم ثابت. وسر قوة دالات الهاش أنَّها “أحادية الاتجاه”. مما يعني أنَّه باستطاعة أي شخص استخدام دالة الهاش في إنتاج مخرجات عند توافر مدخلات، ولكن من المستحيل استخدام مخرجات دالة الهاش لإعادة بناء المدخلات المُعطاة. هذه الخاصية القوية تجعل دالة الهاش SHA-256 مثالية لتطبيقات شبكة البتكوين (BTC).
تُستخدم دالة الهاش SHA-256 داخل شبكة البتكوين بطريقتين رئيسيتين:
- التعدين
- توليد عناوين البتكوين
التعدين
التعدين هو عملية إدخال عملات جديدة إلى الكمية الموجودة بالفعل والمتداولة في بروتوكول البتكوين، بالإضافة إلى أنَّه طريقة مُستخدمة لتأمين شبكة البتكوين.
لكي يصير شخص ما مؤهلاً لإضافة بلوك جديد إلى بلوكتشين البتكوين، عليه أولاً تشغيل ما يُعرف بعقدة تعدين. وبعد ضبط عقدة التعدين بنجاح، يمكن له البدء في بناء بلوكات مرشحة لتُنقل إلى شبكة البتكوين لفحصها والتأكد من صلاحيتها. وهناك ما يُعرف برأسية البلوك داخل البلوك، وهي عبارة عن ستة معايير على المُعدن إدخالها لإنشاء البلوك. وهي تتضمن:
- الإصدار– رقم إصدار برمجية البتكوين
- هاش البلوك السابق– مرجع الهاش الخاص بالبلوك السابق
- جذر ميركل– هاش تمثيلي لكافة المعاملات داخل البلوك
- ختم زمني– الوقت الذي صنع فيه البلوك
- هدف- خوارزمية إثبات العمل (PoW) للبلوك
- الرقم الخاص- المتغير المُستخدم في عملية إثبات العمل
وكما هو مبين في الصورة أعلاه، ليتمكن المُعدن من الحصول على معيار هاش البلوك السابق، عليه وضع رأسية البلوك السابق خلال خوارزمية دالة الهاش SHA-256 مرتين. وهو ما يُعرف أيضاً بدالة هاش SHA-256 المضاعفة.
هاش البلوك السابق= (رأسية البلوك)SHA-256 (SHA-256
كما تُستخدم خوارزمية دالة الهاش SHA-256 أيضاً للحصول على جذر ميركل، وهو أحد المعلمات اللازم إدخالها في رأسية البلوك. ومن الممكن العثور على تفسير شامل لهذه الجزئية من بروتوكول البتكوين هنا: شرح شجرة ميركل وجذر ميركل.
بعد بناء البلوك بنجاح، يمكن للمُعدن البدء بعملية التعدين. وحينها يظهر استخدام جديد لخوارزمية دالة الهاش SHA-256. ففي هذه الحالة، يكون الرقم الخاص، أحد معايير رأسية البلوك، متغير يتم تغييره عدة مرات، وعند تجزئة رأسية البلوك باستخدام دالة SHA-256 وكان الهاش أقل من الهدف، فهذا دليل على نجاح المُعدن.
فعلى سبيل المثال، إذا كان متغير الرقم الخاص “12345”، فسُيدخل هذا الرقم، بالإضافة إلى الخمس معايير المذكورة سابقاً، في رأسية البلوك. ثم ستجزأ رأسية البلوك، ولكن إذا كان الهاش الناتج أعلى من الهدف فعلى المُعدن المحاولة مرة أخرى. في هذه الحالة، سيختار المُعدن متغيراً آخر وليكن “90872”، مُدخلاً إياه في رأسية البلوك مع إبقاء المعايير الخمسة الأخرى ثابتة دون تغيير. وإذا كان الهاش الناتج أقل من الهدف، يُنقل بلوك المُعدن إلى الشبكة للتحقق من صلاحيته
توليد عناوين البتكوين
لتوليد عنوان بتكوين، يتم مضاعفة مفتاح خاص، وهو عبارة عن رقم عشوائي، باستخدام منحنى إهليلجي لتوليد مفتاح عام. ثم يتم إدخال المفتاح العام الناتج في كلاً من خوارزميتي دالة الهاش SHA-256 وRIPEMD160.
حيث K = المفتاح العام و A = عنوان البتكوين:
A = RIPEMD160 (SHA-256 (K))
واستخدام خوارزميتي دالة الهاش SHA-256 وRIPEMD160 لتوليد عنوان البتكوين له أفضلية مميزة:
العناوين الأقصر: يبلغ طول المفتاح العام 256 بت، بينما يبلغ طول نسخة الهاش أي عنوان البتكوين 160 بت. وهذا يجعل استخدامه أكثر مناسبة ويسراً للمستخدمين بفضل قصر طول الرمز.
الخاتمة
إنَّ خوارزمية دالة الهاش SHA-256 جزء جوهري من بروتوكول البتكوين. ولها تطبيقات في أوجه متعددة من التقنية مثل: تعدين البتكوين، وأشجار ميركل وتوليد عناوين البتكوين.
إخلاء المسؤولية: الآراء والتحليلات والأخبار الواردة لا تعكس رأي بت شين. لا ينبغي اعتبار أي من المعلومات التي تقرأها على موقع بت شين بمثابة نصيحة استثمارية، ولا تصادق بت شين على أي مشروع قد يتم ذكره أو ربطه في هذه المقالة. يجب اعتبار شراء وتداول العملات المشفرة نشاطًا عالي المخاطر. ويرجى بذل المجهود الواجب قبل اتخاذ أي إجراء يتعلق بالمحتوى المذكور ضمن هذا التقرير. لا تتحمل بت شين أي مسؤولية في حالة خسارة الأموال في تداول العملات المشفرة.