کاردانو (cardano) و امنیت فوق العاده در برابر حملات سهم جعلی!

کاردانو (cardano) و امنیت فوق العاده در برابر حملات سهم جعلی!
خلاصه اخبار

کاردانو (ADA) در میان 26 ارز دیجیتالی، که هفته گذشته توسط محققان ایالات متحده به عنوان ارزهای دیجیتال آسیب پذیر در برابر حملات سهام جعلی معرفی شده بودند، قرار نداشت. بلاک چین کاردانو که زیر بنای ADA است بر اساس گواه اثبات سهام است اما پروتکل Ouroboros آن از هیچ کد بیت کوینی استفاده نمی کند و دچار مشکل (PoSV3 (proof of stake version 3 نمی شود. این تنها یک خوش شانسی نیست بلکه نتیجه یک رویکرد دقیق و تایید شده رسمی است که در خلال توسعه کاردانو اتخاذ شده است.

آسیب پذیری

به منظور درک اینکه چرا کاردانو تحت تاثیر آسیب پذیری ذکر شده در ابتدای مقاله، قرار نمی گیرد، در اینجا خلاصه ای از ماهیت این آسیب پذیری مورد بحث قرار می گیرد.
همه سیستم های آسیب پذیر از PoSv3 استفاده می کنند که اصلاحی از کد بیت کوین است و هدف آن جایگزین کردن میزان هش (hash rate) با سهام است تا تعیین شود که چه کسی برای ایجاد بلاک واجد شرایط است. در کد بیت کوین اولیه، تصمیم اینکه چه کسی باید بلاک بعدی را ایجاد کند صرفا بر اساس قدرت هش است و هر کسی که یک عدد تصادفی مناسب پیدا کند و اولین نفر باشد که به یک هش صحیح دست یافته است، برنده می شود. اما PoSv3 یک متغیر اضافی را به چنین سیستم هایی اضافه می کند تا مفهوم سهم را شبیه سازی کند.

در یک سیستم گواه اثبات سهم، احتمال دسترسی به ایجاد یک بلاک، متناسب با مقدار سهمی است که یک کاربر در سیستم دارد. هر چه کاربر سهم بیشتری داشته باشد احتمال اینکه بلاک بعدی را ایجاد کند بیشتر می باشد. برای تقلید این عملکرد، PoSv3 به کاربران اجازه می دهد که اطلاعات اضافی را به بلاک کاندیدشان اضافه کنند، این اطلاعات به شیوه یک تراکنش سهمی ایجاد می شوند. هر چه توکن های بیشتری برای استفاده در تراکنش سهمی در دسترس باشد، دستیابی به هش صحیح آسان تر خواهد شد و بنابراین حق ایجاد بلاک بعدی بدست می آید.
در حالی که PoSv3 به طور موفقیت آمیزی حق ایجاد بلاک را در این شیوه به سهام، مقید می کند، این مکانیسم همچنین اعتباربخشی بلاک را نیز مشکل تر می کند. نه تنها هش خود بلاک نیاز به تایید دارد (مانند بیت کوین) بلکه تراکنش سهمی کاربر نیز چنین نیازی دارد و در این حالت آیا کاربر در واقع مالک توکن هایی که در تراکنش سهمی خود به کار برده است، خواهد شد؟ برای تایید این اطلاعات، یک نود بلاک چینی باید قادر باشد که به دفتر کل ارجاع داده شود (اگر بلاکی در واقع زنجیره حال حاضر را توسعه ندهد، یک انشعاب را معرفی خواهد کرد) و همچنین این نود باید به تاریخچه دفتر کل هم ارجاع داده شود. از آنجا که این سوابق ذخیره نشده اند و محاسبه آنها نیز ارزان و آسان نیست، بلاک ها در سیستم PoSv3 فورا اعتبار بخشی نمی شوند بلکه آنها نسبتا و به طور ناقص در حافظه یا بر روی دیسک ذخیره می شوند که این حالت بعد از گذراندن اکتشافاتی توسط بلاک ها صورت می گیرد.

از این آسیب پذیری ها می توان به شیوه های متفاوت بهره برداری کرد و در نهایت منجر به فریب اکتشافات و ارائه تعداد زیادی بلاک نامعتبر برای یک نود خواهد شد، به صورتی که حافظه نود تمام خواهد شد و قبل از آنکه بتواند به طور صحیح عدم اعتبار بلاک ها را شناسایی کند، متلاشی می شود و از بین می رود.
در واقع می توان گفت که این حملات در ارزهای دیجیتال آسیب پذیر به این دلیل صورت می گیرد که پیاده سازی های PoSv3 به طور کافی داده های شبکه را معتبر نمی کنند. در نتیجه یک حمله کننده که سهم زیادی ندارد یا حتی در بعضی موارد هیچ سهمی ندارد، می تواند فضای دیسک یا رم (RAM) نود قربانی را با اطلاعات جعلی پر کند و باعث فروپاشی نود قربانی شود. می توان گفت که تمامی ارزهای دیجیتالی که بر اساس کد هسته بیت کوین و مدل گواه اثبات سهم طولانی ترین زنجیره ایجاد شده اند، با چنین تهدیدی مواجه هستند.

چرا کاردانو متفاوت است؟

در رابطه با کاردانو، تیم آن در IOHK رویکرد متفاوتی اتخاذ کرده است. به جای یک تغییر حداقلی از بیت کوین که کاری ساده و بی دردسر است، آنها متکی بر آکادمی ها و محققان پیشگام جهان بودند تا پروتکل و codebase جدید ایجاد کنند اما با این ضرورت که این پروتکل و کد باید امنیتی برابر یا بهتر از بیت کوین را فراهم آورند و تماما نیز بر سهم متکی باشند. نتیجه پروتکل Ouroboros، یک پروتکل گواه اثبات سهم ایمن است که این امنیت قابل اثبات است و کاردانو بر اساس آن ساخته شده است.
طراحی اساسی Ouroboros بسیار ساده می باشد و در این طراحی زمان به تعداد هایی مجزا تقسیم می شود که slot نامیده می شوند و این slot ها در کنار هم قرار گرفته و به صورت دوره های طولانی تری در می آیند که epoch نامیده می شوند. در شروع هر epoch، از طریق قرعه کشی تعیین می شود که چه کسی بلاک بعدی را برای هر slot ایجاد کند. در این حالت بر خلاف مورد های آسیب پذیر این قرعه کشی صریح می باشد و یک عدد تصادفی تولید شده یک slot رهبر را برای هر یک از slot ها تعیین می کند. در این حالت، فرصت برنده شدن برای هر یک از slot ها در تناسب با سهامی است که آن slot کنترل می کند.

در این پروتکل، تایید این که یک بلاک توسط سهام دار درست، امضا و تایید شده نیز ساده است و تنها نیازمند برنامه رهبر برای epoch حال حاضر (که در مورد یک فورک موقت تغییر نخواهد کرد) و بررسی آن امضا است. این کار تنها یک بار توسط هر نود قابل انجام است و آن زمانی است که هر نود به هدر بلاک می رسد و این بر عکس سیستم های PoSv3 است که در برابر حملات سهام جعلی آسیب پذیر هستند.
به طور خلاصه، کاردانو در برابر حملات سهام جعلی ایمن است زیرا از پایه بر اساس سیستم متفاوتی است. ارز های دیجیتال PoSv3 بر روی سیستم های گواه اثبات کار (proof of work) مدیریت می شوند و طوری تغییر یافته اند که بتوانند سهام را به شیوه انتخاب رهبری غیر صریح حساب کنند که آسیب پذیری مورد بحث، نتیجه این تغییر و پیچیدگی های اضافی همراه آن می باشد.
نه تنها کاردانو از اساس بنیاد متفاوتی دارد بلکه این بنیاد نتیجه مقالات آکادمیک متعددی است که توسط داورهای مختلف بازبینی شده است و در این زمینه شاهد یک همکاری بی سابقه بین محققین و توسعه دهندگان می باشیم. روش های رسمی و شبه رسمی موجود در ایجاد Shelly که در آینده ای نزدیک توسط کاردانو بیرون داده می شود، تضمین کننده این هستند که چنین ساختاری در سطح کد در انطباق روشن با رساله های تحقیقی مذکور می باشد که از اساس بر مبنای اعتبار و امنیت ساخته شده است. در این حالت از آسیب پذیری مذکور ممانعت می شود که این آسیب پذیری در واقع نتیجه تغییر یک پروتکل موجود بود که به جای این کار باید یک پروتکل جدید و سفارشی اختراع شود.