التجزئة

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

  • التفرد يمكننا التأكد من أننا إذا وضعنا “dark wallet puzzle” في وظيفة تشفير ، فسوف ينتج عنه دائمًا نفس نتيجة التجزئة. يؤدي هذا إلى تجنب مشكلة “تصادم التجزئة” ، حيث لا داعي للقلق بشأن حصول سلسلتين على نفس التجزئة.
  • تأثير الانهيار الجليدي تؤدي التغييرات الصغيرة في السلسلة المستهدفة لوظيفة التجزئة إلى تأثيرات كبيرة الحجم. قم بتغيير حرف واحد في السلسلة التي قمت بتجزئتها في المثال أعلاه ، ربما باستخدام حرف “d” في “Dark wallet puzzle”. سترى أنه لم يتغير قليلاً ولكن كثيرًا. يوضح هذا السمة الثانية لوظيفة التجزئة الجيدة – “تأثير الانهيار الجليدي (The Avalanche Effect)”. يشير هذا إلى أن تغييرًا واحدًا في السلسلة سيؤدي إلى سلسلة متتالية من التغييرات التي تُركب بعضها البعض.
  • السرعة يمكن أيضًا تشغيل وظائف تجزئة التشفير بسرعة مذهلة مع القليل من النفقات العامة مع الحفاظ على أمانها. هذا هو أكثر من مصدر قلق لوجستي. لا يمكن أن تكون وظيفة التجزئة بطيئة جدًا ، وإلا فإنها تتسبب في حدوث تأخيرات. لكنها أيضًا لا يمكن أن تكون سريعة جدًا أو سيكون من الأسهل العثور على الاصطدامات. يجب أن تكون سريعه للمعالجة ولكن بطيئًا في القرصنة. إن سرعة وظائف تجزئة التشفير مصحوبة بصعوبة استخلاص المدخلات المستهدفة تجعلها ذات اتجاه واحد أو وظيفة “باب سحري” – من السهل السير في اتجاه واحد ، شبه مستحيل الذهاب إلى الآخر.

تتحد هذه الخصائص الثلاث لمساعدة البلوكشين على توفير تكامل لامركزي للملفات. دعونا نشرح كيف.

تجزئة في Blockchains

في ورقة عمل البيتكوين البيضاء ، أوضح ساتوشي ناكاموتو مشكلة “الإنفاق المزدوج” التي تواجه العملات الرقمية:

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

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

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

يقترح ناكاموتو استخدام التجزئة لإنشاء ما يسمونه “خادم الطابع الزمني”:

    يبدأ الحل الذي نقترحه بخادم طابع زمني. يعمل خادم الطابع الزمني عن طريق أخذ تجزئة لكتلة من العناصر ليتم ختمها بالطابع الزمني ونشر التجزئة على نطاق واسع ، كما هو الحال في صحيفة أو منشور يوزنت [2-5]. يثبت الطابع الزمني أن البيانات يجب أن تكون موجودة في ذلك الوقت ، من الواضح ، من أجل الوصول إلى التجزئة. يشتمل كل طابع زمني على الطابع الزمني السابق في تجزئته ، ويشكل سلسلة ، مع كل طابع زمني إضافي يعزز ما قبله.

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

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

سلاسل التجزئة كهيكل بيانات عامة

بينما يستخدم خادم الطابع الزمني لـ Nakamoto سلاسل التجزئة ، توجد سلاسل التجزئة في العديد من أنواع تطبيقات علوم الكمبيوتر المختلفة قبل blockchain وما بعده.

يستخدم برنامج التحكم في الإصدار Git ، على سبيل المثال ، سلسلة تجزئة ، تسمى أيضًا الرسم البياني المباشر الموجه (Directed Acyclic Graph) ، لتتبع تغييرات في كثير من الأحيان بمرور الوقت.

تستخدم مخططات التحدي والاستجابة ، المستخدمة للتحقق من صحة المستخدم ، أيضًا مفهوم سلسلة التجزئة.

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

روابط إضافية للتجزئة

مصادر تجزئة عامة

مصادر تجزئة خاصة بـ Blockchain / Ethereum

مصادر التجزئة المتقدمة

برمجة:Bitcoin Whitepaper Exercises: Hashing هذا تمرين يعتمد على جافا سكريبت وينفذ خادم الطابع الزمني الموضح في ورقة عمل البيتكوين البيضاء.

إضافة تعليق