المقال الأصلي : https://medium.com/@ConsenSys/blockchain-underpinnings-hashing-7f4746cbd66b
المصابيح والبتات والبايتات
ربما تكون قد سمعت أن جميع البيانات الموجودة في أجهزة الكمبيوتر ، إما 0 أو 1. أصغر جزء من البيانات هو البت (bit)، ويكون إما 0 أو 1. تخيل أن الكمبيوتر يحتوي على العديد من المصابيح الكهربائية ، والمصابيح إما قيد التشغيل (1 ) أو إيقاف تشغيله (0). يتم تمثيل أجزاء مختلفة من البيانات من خلال النمط الذي تعرضه المصابيح. تستخدم البيانات الكبيرة ، مثل مقاطع الفيديو ، العديد من مصابيح الإضاءة. بريد إلكتروني قصير ، سيستخدم عددًا أقل من مصابيح الإضاءة. مصباح واحد يساوي بت واحد. مصطلح آخر ربما سمعت عنه هو البايت ، وهو عبارة عن مجموعة من 8 مصابيح إضاءه. تبلغ قيمة ميغا بايت من البيانات مليون بايت ، أي ما يعادل 8 ملايين مصباح.
تحتوي أجهزة الكمبيوتر المنزلية اليوم على مليارات بل تريليونات من المصابيح الكهربائية. ولكن مع قوة المضاعفة ، لاحظ أنه حتى مجرد مجموعة من 256 مصباحًا تكفي تقريبًا لتمثيل أي من الجسيمات التي يمكن ملاحظتها في الكون. تخيل كل الأنماط التي يمكن أن تنتجها مجموعة مؤلفة من 256 مصباحًا ، وهو رقم فلكي: رياضيًا هو 2 أس 256.
وظائف تجزئة التشفير
دالة تجزئة تأخذ أي مدخلات وتنتج مخرجات بحجم معين. تسمى عملية تطبيق دالة التجزئة على بعض البيانات التجزئة. ناتج دالة التجزئة يسمى التجزئة (Hash) . الميزة الأساسية لوظيفة تجزئة معينة هي حجم الناتج الذي تنتجه. بالنسبة للأمثلة الواردة في هذه المقالة ، سنستخدم دالة تجزئة تنتج مخرجات تبلغ 256 بت (32 بايت). هناك وظائف هاش لإنتاج مخرجات أصغر ، وأخرى تنتج مخرجات أكبر. هناك أيضًا العديد من دوال التجزئة التي تنتج 256 بتًا ، لكن الأمثلة لا تهتم بأي منها محدد يتم استخدامه.
باستخدام دالة التجزئة كمثال ، عند تجزئة مقطع فيديو يضم العديد من الميغابايتات ، سيكون الناتج 256 مصباحًا مع إضاءة بعض المصابيح. عند تجزئة رسالة بريد إلكتروني قصيرة ، سيكون الناتج 256 مصباحًا بنمط مختلف. في بعض النواحي ، تبدو التجزئة مثل الضغط. لشرح الاختلاف بين الاثنين بإيجاز ، ينتج عن التجزئة دائمًا نفس العدد من المصابيح الكهربائية ، في حين أن ضغط مقطع فيديو من عدة ميغا بايت سيظل ينتج ملايين المصابيح الكهربائية. فيديو مضغوط ، يمكن فك ضغطه للحصول على الفيديو الأصلي. عندما يتم تجزئة مقطع فيديو إلى 256 مصباحًا كهربائيًا فقط ، فمن غير المرجح إعادة إنشاء عدد ميغا بايت من الفيديو الأصلي من التجزئة. قد لا يبدو هذا مرغوبًا ، لكن هذا السلوك هو في الواقع ميزة قوية لوظائف التجزئة.
إحدى الخصائص الهامة لوظيفة تجزئة التشفير الآمنة هي أنها أحادية الاتجاه. هذا يعني أنه من المستحيل عمليًا ، أو غير محتمل من الناحية الرياضيه والحسابية ، من الناتج ، تحديد ماهية المدخلات. وهذا يعني أنه بالنظر إلى التجزئة ، يجب أن يكون من غير المجدي معرفة أو العثور على بيانات الإدخال التي تم توفيرها لوظيفة التجزئة. المصطلح الفني لهذا هو مقاومة ما قبل الصورة (pre-image resistance).
والنتيجة هي أن دالة التجزئة يجب أن تستهلك نفس مقدار الوقت تقريبًا ، سواء كانت تجزئة إدخالًا كبيرًا أو صغيرًا. النتيجة المرغوبة الأخرى هي أن التجزئات وأنماط المصابيح التي تنتجها وظائف التجزئة يجب أن تبدو عشوائية. يجب أن ينتج عن تجزئة البيانات “password1” نمطًا مختلفًا تمامًا من مصابيح الإضاءة ، عن تجزئة البيانات “password2”. خلاف ذلك ، إذا كانت الأنماط متشابهة ، يمكن للخصم أن يستنتج أن المدخلات متشابهة ، وإذا تم اكتشاف أي من الكلمات أو الكلمات ذات الصلة (مثل “pass”, “word”) ، فيمكن العثور على كلمات المرور بسهولة. تنتج وظائف التجزئة الآمنة مخرجات مختلفة بشكل كبير ، حتى لو كانت المدخلات تختلف بمقدار بت واحد فقط.
السلوك المثالي للأمان هو أنه بالنظر إلى التجزئة ، فإن الطريقة الوحيدة للعثور على بيانات الإدخال هي تجزئة جميع مجموعات المدخلات ، حتى يتم تجزئة الإدخال الصحيح. إذا كان الإدخال عشوائيًا ، فسيستغرق العثور عليه مقدارًا غير محدد من الوقت ، وبالتالي يكون مستحيلًا فعليًا.
بينما يجب أن يكون العثور على مدخلات التجزئة صعبًا جدًا ويستغرق وقتًا طويلاً جدًا ، يجب أن يكون حساب التجزئة سريعًا للحساب. يمكن للمرء أن يوفر وظيفة تجزئة ، مع إدخال كبير جدًا ، ولا يزال يتلقى الإخراج في أقل من ثانية. بالنظر إلى أن الهواتف الذكية اليوم تؤدي مليارات العمليات الحسابية في الثانية ، فإن 1 ثانية تعتبر وقتًا طويلاً من ناحية الحوسبة.
يجب أيضًا أن تكون وظائف تجزئة التشفير مقاومة للتصادم. يحدث التصادم عندما تنتج دالة التجزئة نفس الإخراج ، لأكثر من إدخال واحد. إذا كان تجزئة البيانات 1 ، والتي ربما تكون جدول بيانات ، وتجزئة البيانات 2 ، والتي ربما تكون صورة ، تنتج نفس المخرجات ، فقد حدث تصادم.
ستكون أهمية خصائص وظائف تجزئة التشفير الآمنة أكثر وضوحًا عندما نصف البلوكشين والتجزئة.
البلوكشين والتجزئة
تُستخدم التجزئة على نطاق واسع مع البلوكشين وإليك بعض الأمثلة.
يتم اشتقاق العناوين الموجودة على blockchain من خلال عملية تجزئة للمفاتيح العامة. يتم حساب حساب Ethereum عن طريق تجزئة مفتاح عام باستخدام Keccak-256 (يجب على المطورين قراءة التمييز الجوهري مع SHA3-256). يتم حساب عنوان Bitcoin عن طريق تجزئة مفتاح عام باستخدام SHA2–256 و RIPEMD160.
مقاومة الاصطدام لوظائف التجزئة مهمة لأنه إذا قام شخصان بإنشاء نفس العنوان (تصادم) ، فيمكن لأي منهما إنفاق الأموال المرسلة إلى هذا العنوان.
التوقيعات هي جزء أساسي من البلوكشين . على غرار توقيع الشيك ، تحدد التوقيعات المشفرة المعاملات الصالحة. يتم إنشاء التواقيع من تجزئة البيانات المراد توقيعها ومفتاح خاص.
تجزئات المعاملات مرئية للغاية في blockchain. بدلاً من وصف المعاملة بأنها “المعاملة حيث أرسلت Alice وحدات Bob X من العملة في التاريخ D والوقت T” ، تتم الإشارة إلى المعاملات بواسطة التجزئة الخاصة بهم. على سبيل المثال ، 5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 هي معاملة في Ethereum blockchain. تجزئات المعاملات هي أيضًا أكثر مباشرة في الاستخدام ، مقارنةً بوصف مثل “المعاملة 1024 في الكتلة 1337”. ما عليك سوى نسخ التجزئة ولصقها في مستكشف blockchain للاطلاع على تفاصيل المعاملة.
يتم تحديد الكتل في blockchain من خلال التجزئة الخاصة بها ، والتي تخدم الغرض المزدوج المتمثل في تحديد الهوية وكذلك التحقق من النزاهة. سلسلة التعريف التي توفر أيضًا تكاملها تسمى معرف المصادقة الذاتية.
بالنسبة إلى البلوكشين التي تستخدم التعدين ، فإن إثبات العمل هو رقم يسمى nonce ، ينتج عنه عند دمجه مع بيانات أخرى ومجزأة قيمة أصغر من الهدف المحدد. يستفيد التعدين بالكامل من الخصائص التي تكون التجزئة سريعة في اتجاه واحد ، ولا يمكن عكسها. يستغرق العثور على رمز nonce صالح بعض الوقت لأنه لا توجد أدلة متاحة تؤدي إلى تجزئة صغيرة بما فيه الكفاية ، والطريقة الوحيدة للعثور على واحد أصغر من الهدف ، هو حساب العديد من التجزئة: في Bitcoin ، يوجد حاليًا أكثر من 10 septillion تجزئة . عندما يتم العثور على nonce صالح ، يتم التحقق من ذلك في غضون ثانية ، ثم تنتشر الكتلة الجديدة عبر الشبكة ، وتشكل أحدث إجماع و blockchain.
نظرًا لأن التخزين في blockchain دائم ، وتخزين كميات كبيرة من البيانات على blockchain ليس اقتصاديًا ، فإن الطريقة العملية لتخزين البيانات على blockchain هي تخزين تمثيل ثابت (وأصغر عادة) للبيانات يسمى “تجزئة البيانات.” استخدام واحد لـ blockchain هو كخدمة ختم الوقت. افترض أن هناك صورة أردت إثبات وجودها حاليًا وليست ملفقة في المستقبل. يمكنك تخزين الصورة في blockchain الآن ، وبعد عام ، إذا سأل القاضي عما إذا كانت الصورة قد التقطت بالفعل منذ عام ، فيمكنك عرضها على blockchain. ولكن ، نظرًا لأنك تعرف شيئًا عن التجزئة ، فإنك تقوم بتجزئة الصورة وتخزين التجزئة على blockchain بدلاً من ذلك. عندما يطلب القاضي إثباتًا ، تقوم بتقديم الصورة ، ثم يمكن للقاضي تجزئة الصورة ومقارنتها مع التجزئة التي قمت بتخزينها على blockchain.
هناك أيضًا أمثلة أكثر تقدمًا حيث يتم تضمين التجزئة ، على سبيل المثال في أشجار Merkle التي هي أصل ابتكار blockchain وقابلية التوسع والمحافظ المحمولة والخفيفة.
تجزئة لتحديد أي شيء بشكل آمن
وظائف تجزئة التشفير الآمنة أحادية الاتجاه وسريعة الحساب ومقاومة للتصادم. بالاقتران مع الخاصية التي يعالجون بها أي نوع من المدخلات لإنتاج مخرجات ذات حجم ثابت ، تسمى التجزئة ، تكون التجزئة مفيدة جدًا كمعرف لأي بيانات. تمثل التجزئة ذات الطول 256 بت عددًا فلكيًا من التركيبات ، وهي أكثر من كافية لتكون معرّفًا فريدًا عالميًا لإنترنت الأشياء ، حتى على نطاق تقنية النانو وما بعدها. ويمكن كتابة هذه التجزئة في صورة 64 حرفًا (سداسي عشري) ، مما يجعلها عملية بما يكفي لاستخدامها كمعرفات. في البلوكشين ، تُستخدم التجزئة كمعرفات للكتل والمعاملات والعناوين.
تجزئة تتمتع بمزايا الأمان والخصوصية. إذا تم تسجيل أغنية بتنسيق رقمي ، وتم تخزين تجزئة الأغنية على blockchain ، فلا توجد طريقة لشخص آخر يدعي أنه كان أول من أنشأ الأغنية التي أنتجت التجزئة ، دون معرفة الأغنية نفسها: لا يستطيع أحد كتابة أغنية والعبث بتجزئةها. وبالمثل ، ما لم يتم الكشف عن الأغنية أو الممتلكات أو البيانات الرقمية الأخرى ، فإنها تظل خاصة مع عرض التجزئة فقط على blockchain. يمكن تخزين سجلات الملكية على blockchain ، مع بقاء تفاصيل ما تملكه خاصة بين الأطراف المعنية. كمثال بسيط ، يمكن لسجل السيارة تخزين تجزئة بيانات السيارة (الصور ، VIN ، لوحة الترخيص) ولن يعرف سوى المالكين ، وشركة التأمين ، والحكومة التفاصيل الفعلية للسيارة.
ختاما
يتطلب تصميم وظائف تجزئة التشفير مزيجًا من الفن والعلوم. لإثبات أمنهم يتطلب رياضيات وعلوم كمبيوتر متقدمة. Blockchains هي واجهات المستخدم الأولى المليئة بالتجزئة ، وهي متاحة لمجموعة سكانية واسعة. ستخفي تجربة المستخدم الجيدة العديد من علامات التجزئة خلف الكواليس ، ولكن تمامًا كما نرى اليوم أرقامًا متسلسلة ومعرفًا مختلفًا ، أحيانًا يكون التجزئة هو أفضل معرف لشيء ما بدلاً من وصف طويل. مثل التكنولوجيا مثل البكاء أصبح التصوير الفوتوغرافي وإنترنت الأشياء منتشرًا على نطاق واسع ، ونتوقع رؤية 64 حرفًا تجزئة أكثر في المستقبل!
إضافة تعليق