اصلاح داده ها در بلاکچین
چرا اصلاح داده ها در بلاکچین دشوار است؟
برای درک بهتر مفهوم و شکل اصلاح داده ها در بلاکچین بهتر است، آشنایی اولیه با چند مفهوم پایه ای داشته باشید. تعدادی از این مفاهیم را در زیر آورده ام.
دشواری یا difficulty
نانس یا nonce
هش یا hash
اثبات کار
بلاکچین در یک شبکه همتا به همتا کار می کند و هر تراکنش جدید برای همه گره ها پخش می شود تا هر یک از گره ها بتوانند آن را استخراج کنند. فرآیند استخراج یک بلاک شامل پیشبینی یک مقدار nonce است که میتواند سطح دشواری را برآورده کند.
«دشواری» در بلاکچین به چه معناست؟
دشواری در بلاکچین معیاری نسبی است که نشان می دهد یافتن یک بلاک جدید چقدر دشوار است. دشواری به صورت دوره ای، به عنوان تابعی از میزان قدرت هش استفاده شده توسط شبکه استخراج کننده ها، تنظیم می شود.
چگونه یک بلاکچین اعتبار سنجی می شود؟
هر بلاک باید معیارهای دشواری (اثبات کار) را برآورده کند.
هر بلاک باید حاوی مقدار هش بلاک قبلی باشد و باید با هش بلاک قبلی مطابقت داشته باشد.
یک مثال می تواند بهتر به ما در درک این موضوع کمک کند.
فرض کنید بلاکچینی به طول ۶ داریم، که در آن الگوریتم هش مورد استفاده، SHA-256 و دشواری ۵ است (هش که با ۵ صفر شروع می شود به عنوان اثبات کار)
بیایید سعی کنیم داده های تراکنش بلاک سوم را از بلاک ۳ به بلاک ۳۳ تغییر دهیم. اکنون که اصلاح داده های بلاک انجام شده است، زنجیره نامعتبر می شود زیرا زمانی که بررسی اعتبارسنجی انجام می شود، هش ایجاد شده توسط این بلاک دشواری را برآورده نمی کند و با مقدار هش قبلی بلاک بعدی مطابقت نخواهد داشت.
روش زیر برای محاسبه هش استفاده می شود :
هش با اضافه کردن TransactionData، timestamp، previousBlockHash، nonce و اعمال SHA-256 در رشته حاصل محاسبه می شود.
اگر داده ها را برای بلاک ۳ اضافه کنیم، این رشته حاصل است :
و هش SHA-256 برای رشته فوق می باشد.
بدیهی است که معیارهای دشواری را برآورده نمی کند زیرا با ۵ صفر شروع نمی شود، بنابراین مقدار nonce باید دوباره محاسبه شود. این برنامه با کنسول جاوا را نوشته شده که تیم خط دید برای شما آنرا از منابع زبان اصلی تهیه کردند و به ما کمک می کند تا nonce را با bruteforce محاسبه کنیم.
توجه داشته باشید که پیام نباید حاوی مقدار nonce باشد، زیرا این همان چیزی است که ما سعی داریم محاسبه کنیم. ما دریافتیم که مقدار nonce 125107 معیارهای دشواری را برآورده می کند، عالی است بیایید ببینیم زنجیره داده های اصلاح شده ما چگونه به نظر می رسد.
از آنجا که بلاک ۳ اصلاح داده شده است، مقدار هش قبلی موجود در بلاک ۴
با هش بلاک سوم مطابقت ندارد.
برای اصلاح داده های زنجیره، مقدار هش قبلی در بلاک ۴ باید روی هش فعلی بلاک ۳ تنظیم شود، بنابراین تبدیل می شود
و هش فعلی برای بلاک ۴ تبدیل می شود
که معیارهای دشواری را برآورده نمی کند و مقدار nonce باید دوباره محاسبه شود.
با nonce جدید، بلاک ۴ تبدیل می شود
همین امر در مورد بلاکهای باقیمانده نیز اتفاق میافتد و غیره آنها نیز باید دوباره محاسبه شوند. همانطور که مشاهده کردیم بلاکچین از نظر قیاس شبیه به دومینو است که هر بلاک را می توان به عنوان یک دومینو در نظر گرفت.
📌 مقاله مرتبط:
برای آشنایی بیشتر با موضوع، پیشنهاد می شود این مقاله را نیز مطالعه بفرمایید: کلید خصوصی در بلاکچین
مشکل بزرگ چیست؟
شاید تعجب کنید که مشکل بزرگ محاسبه مجدد هش در بلاکچین چیست. پس از همه، با برخی از محاسبات مجدد و زمان می توانید زنجیره را تغییر دهید درست است؟
چند نکته وجود دارد که باید در نظر گرفت :
طولانی ترین اثبات زنجیره کار به عنوان زنجیره صحیح توسط شبکه P2P پذیرفته می شود.
برای سادگی، از مقادیر دشواری کوچک و الگوریتم نسبتاً پیچیدهتر استفاده کردهایم، اما در پیادهسازیهای واقعی، مقدار دشواری بسیار زیاد است و همچنین الگوریتمهای هش بلاکچین بسیار پیچیدهتر هستند که محاسبه مجدد آن را بسیار سختتر و زمانبرتر میکند.
در هر ثانیه، بسیاری از تراکنشها در سراسر شبکه بلاکچین پخش میشوند و گرهی که مقدار nonce را برای یک تراکنش محاسبه میکند، ابتدا به گرهای تبدیل میشود که طولانیترین اثبات زنجیره کار را دارد. در چنین محیط رقابتی، دستکاری در زنجیره از نظر محاسباتی خسته کننده است.
دشواری در بلاکچین معیاری نسبی است که نشان می دهد یافتن یک بلاک جدید چقدر دشوار است.
در هر ثانیه، بسیاری از تراکنشها در سراسر شبکه بلاکچین پخش میشوند و گرهی که مقدار nonce را برای یک تراکنش محاسبه میکند، ابتدا به گرهای تبدیل میشود که طولانیترین اثبات زنجیره کار را دارد. در چنین محیط رقابتی، دستکاری در زنجیره از نظر محاسباتی خسته کننده است.