توسعه دهنده نرم افزار | علاقه مند به بلاکچین و سیستم های توزیع شده و رمزنگاری | دانشجوی پزشکی
چرا به بلاکچین به عنوان یک تکنولوژی اطمینان داریم؟
این مقاله اولین بار در انجمن قراردادهای هوشمند منتشر شده است.
بلاکچین تکنولوژی ایست نوپا که در ابتدا توسط “ساتوشی ناکاموتو” یا همان خالق بیتکوین بهعنوان یک دفتر کل غیرمتمرکز، توزیع شده و رمزنگاری شده و غیر قابل دستکاری ابداع شد (Decentralized, distributed, cryptographically hashed and tamper-proof ledger) و سپس ارز دیجیتال بیتکوین بر پایه آن راه اندازی شد تا ما تنها شاهد یکی از چندها کاربرد این تکنولوژی خارق العاده باشیم. در این مطلب کوتاه، با تکیه بر عملکرد بلاکچین بیتکوین توضیح خواهم داد که چرا به عملکرد یک سیستم بلاکچینی برای انجام تراکنش های مالی اعتماد داریم.
به زبان سادهتر، میتوان بلاکچین را نوعی معماری پایگاهداده دانست که در آن، دادهها در بین اعضای شبکه به صورت امضا شده پخش شده و هر عضو از شبکه یک کپی کامل از اطلاعات شبکه را نگهداری میکند. هر دسته از دادهها که در یک زمان با هم وارد شبکه شدهاند (در اینجا منظور بلاک است) توسط یکی از اعضای شبکه امضا یا اصطلاحاً هش (hash) میگردد. پس از آن، بلوک و امضای آن به کل شبکه مخابره شده و دیگر اعضا نیز بلوک و امضای آن را به کپیای که از قبل داشتند اضافه میکنند و بدین ترتیب زنجیرهای از بلوکها یا blockchain شکل میگیرد.
در بلاکچینی مانند بلاکچین بیتکوین که مبتنی بر الگوریتم اثبات کار (PoW: Proof of work) است، دادههای ما در واقع تراکنشهایی است که کاربران شبکه ارسال میکنند. در اینجا ماینرهای شبکه بیتکوین، تراکنشها را در کنار امضای بلوک قبلی گذاشته و یک امضای جدید تولید میکنند. این امضا که در شبکه بیتکوین یک عدد 64 رقمی در مبنای 16 است باید مطابق با شرطی باشد که شبکه برای ماینرها وضع میکند. بلاکچین بیتکوین پس از هر 2016 بلاکی که ماین میشود، بسته به قدرت تولید هش ماینرهای شبکه شرط جدیدی برای مقدار هش 2016 بلاک بعدی تعیین میکند.
هش تولید شده، حاصل از کنار هم گذاشتن تراکنشها، هش بلاک قبلی و تعدادی پارامتر دیگرست که خارج از بحث ماست. این هش بسیار تصادفی و غیر قابل حدس است و نیز امکان وارون کردن هش برای دستیابی به دادهها وجود ندارد. خاصیت تصادفی بودن هش در الگوریتم مورداستفاده بیتکوین (SHA256) چنان بالاست که اگر از حدود 2000 تراکنش فرضی که در یک بلاک ثبت شدهاند، مقدار یک تراکنش را معادل 1 سنت آمریکا تغییر دهیم، هش تولید شده بهکلی تغییر میابد. این رخداد، اثر بهمن یا Avalanche effect نام دارد (با شلیک یک گلوله در یک کوه پوشیده از برف شما یک بهمن ویرانگر راه میاندازید!).
فرض کنید یکی از ماینرهای شبکه قصد دستکاری در تراکنشهایی را دارد که دو سال پیش انجام شدهاند؛ او باید در یک بلاک قدیمی تراکنشی را بگنجاند، با این کار هش قبلی تولید شده برای آن بلاک نامعتبر خواهد شد و باید از نو برای آن بلاک هش تولید کند. با تولید هش جدید، هش بلاک بعدی که وابسته به هش بلاک قبلی بود نیز نامعتبر خواهد شد و این رخداد به صورت زنجیرهای در تمامی بلاکهای بعدی رخ میدهد. فرض کنیم که ماینر برای تمام این بلاکها هش جدید تولید کرده است، اکنون باید این هش ها را به شبکه و دیگر ماینرها مخابره کند. دیگر ماینرها که کپی سالمی از شبکه دارند با مقایسه هش ها متوجه تغییر بلاکها میشوند و با پروتکلی که در اینجا آن را پروتکل اجماع (Consensus protocol) مینامیم، باتوجهبه اینکه ماینرهای دیگر که کپی سالمی از شبکه دارند در اکثریت هستند، زنجیرهای را که ماینر خرابکار به شبکه مخابره کرده رد میکنند.
در یک سیستم بلاکچین هیچ تصمیم گیرنده مرکزی وجود ندارد و تصمیم گیری ها از طریق پروتکل اجماع صورت میگیرد. تا زمانی که یک ماینر یا یک دسته ماینر به بیش از 50 درصد قدرت تولید هش در شبکه دست نیابند، قادر به جعل و دستکاری در زنجیره نیستند زیرا بقیه اعضای شبکه بلاک هایی را که ممکن است توسط این ماینرهای مخرب دستکاری شده باشند رد میکنند. در صورتی که قدرت تولید هش در دست عده ای از ماینر ها تجمع یابد و بر دیگر ماینرها غلبه کند، میتوانند در بلاک های قبلی دستکاری اعمال کرده و آنها را به شبکه مخابره کنند و با توجه در اکثریت بودن ماینرهای مخرب، بلاک های تولید شده توسط آنها پذیرفته خواهد شد. این دستکاری در یک سیستم بلاکچینی، حمله 51 درصدی نام دارد که در بلاکچین های مبتنی بر الگوریتم اثبات کار که وابسته به تولید هش توسط ماینرها هستند میتواند رخ دهد.
توزیع شدگی بلاکچین به صورت ذاتی این قدرت را به شبکه میبخشد تا مورد اینگونه حملات قرار نگیرد. به عنوان مثال در شبکه بیتکوین با توجه به گستردگی و توزیع شدگی ماینرها، تا کنون چنین حمله ای رخ نداده است.
کد منبع (source code) بلاکچینهای عمومی چون بیتکوین و اتریوم منبع باز (open source) است و هر فرد آشنا با برنامهنویسی میتواند با بررسی کدهای این سیستمها بهخوبی متوجه عملکرد بلاکچینها و عدم وجود یک تصمیمگیرنده مرکزی در آن شوند. هر نود و ماینر با اجرای کد بلاکچین یک کپی از تمامی بلاکها برای خود ذخیره میکند، ضمن اینکه ماینرها بلاکهای جدید را نیز استخراج کرده و به شبکه اضافه میکنند. هر میزان که تعداد ماینرها و قدرت تولید هش توسط آن ها بالاتر رود و این قدرت در بین ماینرهای مختلف توزیع شده باشد، بلاکچین امنتری را خواهیم داشت، زیرا پروتکل اجماع برحسب آرای اکثریت شبکه عمل میکند و توزیعشدگی ماینرها و قدرت تولید هش، از تجمیع قدرت تصمیمگیری در دست یک ماینر یا یک گروه ماینر جلوگیری میکند.
این موضوع آنقدر قابلاعتماد است که امروزه 2 بلاکچین ارز دیجیتال پیشرو، یعنی بیتکوین و اتریوم ارزشی حدود بیش از 1500000000000 را در خود ضبط کردهاند (هنگام نگارش این متن) و حتی بلاکچین اتریوم با توجه با قابلیتهایی که دارد اجازه ساخت و توسعه سیستمهای مالی غیرمتمرکز یا DeFi را در اختیار ما قرار میدهد. امروزه حوزه دیفای رقیب جدی سیستم بانکداری دولتی بهحساب میرود؛ به طوری که خیل عظیمی از پلتفرمهای وامدهی، کشت سود و… بر بستر بلاکچین اتریوم راهاندازی شده و توجه بسیاری را به خود جلب کرده است. بستر خلاقانه بلاکچین اتریوم این اجازه را به برنامهنویسان میدهد تا برنامههایی با قابلیت اجرا روی این بلاکچین را توسعه دهند؛ برنامههایی که تمام سوابق استفاده خود را در بلاکهای این بلاکچین ذخیره میکنند. این برنامهها، قراردادهای هوشمند نام دارند.
غیر قابل دستکاری بودن بلاکچین (tamper-proof) یک دیتابیس قابلاطمینان از سوابق و عملکردهای این قراردادها در اختیار ما قرار میدهد. کاربرد بلاکچین و اعتمادی که برای ما به ارمغان میاورد، محدود به دنیای ارزهای دیجیتال نیست؛ میتوان یک سیستم هویت دیجیتال بر بستر بلاکچین راهاندازی کرد و سوابق تحصیلی دانشآموزان یک کشور را در چنین سیستمی به ثبت رساند. این نوآوری از جعل مدارک تحصیلی جلوگیری میکند و تنها مدارکی قابلقبول خواهند بود که از سوی ارگانهای آموزشی معتبر و با دیتای معتبر در این بلاکچین ثبت شده باشند. روند بررسی اصالت مدارک بسیار کوتاه شده و نیازی به فرایندهای کپی برابر اصل کردن مدارک نیست؛ بهراحتی و با اعتمادی که نسبت به مقاومت یک بلاکچین به دستکاری و جعل داریم میتوان بهراحتی اصالت مدرک یک دانشآموز را از بلاکچین بررسی کرد.
در یک نوآوری دیگر، میتوان از بلاکچین برای بررسی اصالت، سلامت و معتبر بودن کالا استفاده کرد. برای مثال در فرانسه با پیادهسازی یک سیستم بلاکچینی به خریداران مرغ این قابلیت داده شده تا بتوانند با بررسی QRCode روی بسته مرغ، از وضعیت پرورش و دانهای که مرغ با آن تغذیه شده مطلع شوند.
میتوان از بلاکچین در توسعه سیستمهای ذخیره فایل توزیع شده استفاده کرد. در چنین سیستمهایی از قبیل Filecoin دیتای کاربر این شبکه به صورت قطعات رمزگذاری شده در بین نودهای این شبکه توزیع میشود به صورتی که یک نود فایل را به صورت کامل در دست ندارد و آن قطعاتی از فایل نیز که بر روی سیستم او ذخیره میگردد رمزگذاری شده و غیر قابل خواندناند.
در نهایت باید گفت اعتمادی که ما به بلاکچین داریم، حاصل اعتماد و استفاده هرچه بیشتر کاربران از این سیستمهاست؛ بلاکچین روشی است تا بتوانیم به شیوهای بدون نیاز به اعتماد و شناخت یکدیگر و یا اعتماد به یک شخص یا ارگان ثالث برای میانجیگری، فضایی مورد اعتماد به وجود بیاوریم.
توضیح بیشتر درباره مکانیسم تولید هش در بلاک های بیتکوین
الگوریتمی که در تولید هش برای بلاک های بیتکوین به کار میرود، درخت مرکل نام دارد.
درخت مرکل دارای یک هش ریشه است که همان هش نهایی بلاک هست. برای تولید این درخت ۲ تراکنش با هم انتخاب شده و هش میشوند. این روند ادامه میابد تا دسته ای از هش های جفت تراکنشی داشته باشیم، سپس ۲ جفت تراکنش با هم وارد تابع هش میشوند تا این بار یک هش برای ۲ جفت تراکنش تولید شود.
این روند زنجیرهای تا جایی ادامه میابد که آخرین ۲ هش حاصل از شاخههای قبلی یک هش نهایی به وجود بیاورند و تنها یک هش داشته باشیم. این هش همان ریشه درخت مرکل و امضای بلاک ما خواهد بود.
مطلبی دیگر از این انتشارات
اسکاراموچی: در سقوط بازار توانستیم بیتکوین و اتریوم بیشتری ذخیره کنیم!
مطلبی دیگر از این انتشارات
آموزش اضافه کردن Avalanche به کیف پول MetaMask
مطلبی دیگر از این انتشارات
بررسی گوشیهای موبایل ارزدیجیتال HTC، Solana و Polygon