توی قسمت قبلی راجع به ممپول و روش اضافه شدن یک بلاک جدید به بلاکهای قبلی براتون نوشتم. توی این قسمت میخوام براتون بگم که چطوری هش شدن محتوای بلاکها باعث یکپارچگی بلاکچین میشه.
چطوری هش شدن محتوای بلاکها باعث یکپارچگی بلاکچین میشه؟
توی مطلب سوم از سری پستهای بلاک چین به طور خلاصه با ایده هش کردن آشنا شدیم. حالا میخوایم یک قدم جلوتر بریم و ببینیم که چرا هش کردن برای طراحی بلاک چین مهمه؟ و آیا به تنهایی برای امنیت بلاکچینمون کافیه یا نه؟
تغییر یک بلاک از بلاک چین
با هم دیدیم که توی یک بلاک چین، هر بلاک دارای یک هش منحصر به فرد و یک پیوند به هش بلاک قبلیه. حالا فکر کنین یکی از شرکتکنندهها (یا همون اعضای شبکمون) تصمیم بگیره بلاکی رو در وسط یکی ازین زنجیرهها دستکاری کنه (تقریبا چون اتفاقات همیشه به صورت پیوسته در حال انجام هستن احتمال اینکه دقیقا بلاک آخر یک بلاک چین رو بتونیم تغییر بدیم پایینه). پس هش منحصربهفرد بلاک تغییر میکنه. حالا اتفاقی که میوفته اینه که هش این بلاک تغییر کرده ولی هش بلاک بعدیش همچنان به هش بلوک دستکاری نشده اشاره میکند. پس یک عدم تطابقی بین هشها به وجود میادو پیوند بین بلاک ها از بین میره. اینجوری ما به راحتی میفهمیم که یک کپی نامعتبر از بلاک چین وجود داره. پس انگار میشه گفت که رکوردهای موجود در بلاک چین غیر قابل تغییر هستن. ولی اگر تغییرات بیشتر باشن چی؟ یعنی چی میشه اگر کسی یک بلاک رو دستکاری بکنه و همه هش ها رو برای تمام بلاکها مجدد حساب کنه چی؟ هنوزم هش تضمین می کنه که بلاک چین ما کاملاً امن و درست باشه؟
تغییر هش تمام بلاکهای متصل
خب حالا ببینیم چی میشه اگر یک مهاجم یک بلاک رو دستکاری بکنه و بعد از اون با محاسبه دوباره هش هر بلاک، این هش جدید رو توی بلاک بعدی بذاره و به نحوی مسیرهای خودشو بپوشونه زنجیره بلاک معتبر میشه! یعنی چی؟
فرض کنین ما سه تا بلاک B، A و C رو داریم با هشهای Y456، X123 و Z789 که از روی این بلاکها بدست اومده. حالا اگه مهاجم بلاک A را دستکاری بکنه، محتویات اون تغییر می کند، پس هش اون هم تغییر میکنه – فرض کنید هش از X123 به 123X تغییر میکند. پس بلاک B دیگه به بلاک A وصل نمیشه چون هش X123 که توی بلاک B هست دیگه با هش 123X که جدید تولید شده و الان توی بلاک A هست مطابقت نداره. تنها راه مهاجم برای اینکه این زنجیره رو معتبر بکنه اینه کهاین عدم تطابق رو برطرف بکنه. برای اینکه بلوک B به بلوک A وصل بشه باید، هش بلوک قبلی اون باید از X123 به 123X تغییر بکنه.
حالا چی؟ هنوزم میتونیم بفهمیم که این یک تقلب بوده؟ واقعیتش الان هم توی این مثالی که زدیم دستکاری توی داده های بلاک B اتفاق افتاده. پس هش این بلاک هم تغییر میکنه. اگر مهاجم بتونه این فرآیند رو برای تمام بلاکهای بعدی تکرار کنه موفق شده یک کپی معتبر ولی تقلبی از بلاک چین ایجاد کنه!
خب به نظرم برای امروز کافیه. توی مطلب بعدمیخوام بهتون بگم که آیا الان دیگه کار تموم شدست و دیگه بلاک چین ما مورد دستکاری قرار گرفته و تمومه دیگه یا ما هنوزم میتونیم جلوی تقلب رو بگیریم؟