پروژه آیوتا: تنگل، وایت‌‌پیپرها و اثبات‌‌ها

با شکوفایی تحقیقات، توسعه و اکوسیستمی که حول پروژه آیوتا قرار دارد و با گذشت سه سال از معرفی آن به جهان، زمان خوبی است که به بررسی چگونگی رسیدن آیوتا به این مرحله بپردازیم. این مقاله قصد دارد مقداری به تاریخچه پروژه آیوتا و دلیل انتخاب رویکرد تحقیقاتی و توسعه‌‌ آن بپردازد.

0 130

تاریخچه مختصری از تنگل (Tangle) و پروژه آیوتا

Tangle

وایت‌‌پیپر تنگل نسخه 3.0

حدود چهار سال پیش بود که ایده‌‌های معماری دفترکل توزیع شده بر اساس گراف جهت‌‌دار غیرمدور در انجمن‌‌های مختلف NXT و Bitcoiontalk برای اولین بار مورد بحث قرار گرفت. مسئله مقیاس‌‌پذیری بلاکچین که سال‌‌ها بعد سر برآورد، در آن زمان به خوبی شناخته شده بود. مشاهده اینکه زنجیره‌‌ای از بلوک‌‌های دارای اندازه محدود که تنها در فواصل زمانی مشخص ساخته می‌‌شوند، مشکلاتی به وجود می‌‌آورند و باعث افزایش کارمزد تراکنش‌‌هایی می‌‌شوند که باید به استخراج‌‌کنندگان پرداخت شود سخت نیست. اگر می‌‌خواستید کارمزدها را بردارید و به سیستم اجازه مقیاس پذیری بدهید، تنها کار ممکن این بود که استخراج‌‌کنندگان را حذف کنید.

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

Blockchain BOTTLENECK

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

می‌‌توانید با تایید تراکنش‌‌های دیگران به آنان کمک کنید؛ دیگران هم می‌‌توانند تراکنش‌‌هایتان را تایید و به شما کمک کنند. بیایید تراکنش‌‌هایی که هنوز تایید نشده‌‌اند را tip بنامیم. همه تراکنش‌‌های جدید در ابتدا tip هستند. هدف این است که شما با تایید تراکنش‌‌ها، به طور غیرمستقیم تمام تراکنش‌‌های پیشین آن را تایید کنید. پر واضح است که برای کمک به پیشرفت سیستم، تراکنش‌‌های ورودی باید tipها را تایید کنند چون این کار اطلاعات جدیدی به سیستم اضافه می‌‌کند. با این حال به دلیل تاخیرهای شبکه‌‌، نمی‌‌توان اجبار کرد که حتما باید این اتفاق رخ دهد. چطور می‌‌توانید مطمئن شوید که آن‌‌چه به نظر شما tip است، 1 ثانیه قبل توسط کس دیگری تایید نشده است؟

مسئله در عوض راهبرد تایید است؛ گاهی ما از «گزینش tip» استفاده می‌‌کنیم، اما باید اشاره کرد که شرکت‌‌کنندگان در شبکه مجبور به انتخاب tipها نیستند. ما دوست داریم همه را به انجام این کار وادار کنیم اما نمی‌‌توانیم. اگر همه با یکدیگر همکاری کنند (تنها تراکنش‌‌های خوب را تایید کنند) عالی می‌‌شویم. از سوی دیگر، برای کسانی که به خود اهمیت می‌‌دهند، یک راهبرد طبیعی انتخاب چند تراکنش قدیمی و تایید آنان، بدون نیاز به کار بیشتر برای بررسی همبستگی تراکنش‌‌های جدید و اضافه کردن اطلاعات جدید به سیستم خواهد بود. اگر همه به این شکل رفتار کنند هیچ تراکنش جدیدی تایید نخواهد شد و شبکه با توقف مواجه می‌‌شود. پس اگر می‌‌خواهیم کار کنیم باید شرکت‌‌کنندگان را به همکاری و تایید تراکنش‌‌های اخیر یکدیگر تشویق کنیم.

بله، مسئله مشوق‌‌ها هستند. همه می‌‌خواهند دیگران به‌‌شان کمک کنند، اما همه به کمک به دیگران اهمیت نمی‌‌دهند. برای حل این مشکل بدون ارائه جوایز نقدی، می‌‌توانیم تنها به هدیه‌‌ی تنبیه نشدن توسط دیگران فکر کنیم. ما باید اصل اساسی‌‌مان را اندکی تغییر دهیم: «به دیگران کمک کنید، دیگران کمکتان می‌‌کنند؛ با این حال اگر تصمیم بگیرید به دیگران کمک نکنید دیگران هم کمکتان نخواهند کرد». وقتی تراکنش جدیدی به دو تراکنش پیشین خود ارجاع می‌‌دهد، اعلام می‌‌کند که «من این تراکنش‌‌‌‌هایی که پیشتر تایید نشده‌‌اند و همه تراکنش‌‌های قبل از آنان را تایید می‌‌کنم و موفقیت آنان به موفقیت من گره خورده است». متاسفانه هیچ‌‌کدام از ما به عنوان انسان نمی‌‌توانیم والدین و اجداد خودمان را انتخاب کنیم، اما در دنیای آیوتا می‌‌شود؛ پس عاقلانه انتخاب کنید. در محیط اینترنت اشیا، منطقی‌‌ست اگر تصور کنیم که بخش مناسبی از شرکت‌‌کنندگان در شبکه از راهبرد گزینش tip پیشنهادی ما پیروی می‌‌کنند. پس کار ما طراحی این راهبرد است، به طوری استفاده از آن برای همه خالی از مزیت نباشد. پس از بحث‌‌ها و تلاش‌‌های شکست‌‌خورده‌‌ی بسیار، به این نتیجه رسیدیدم که الگوریتم گزینش tip مارکوف چین مونت کارلو (MCMC) در قلب تنگل دارای این ویژگی‌‌ها باشد.

هدف یک مدل ریاضی چیست؟

Description of the model

تعریفی رسمی از مدل ریاضی تنگل

تنگل به عنوان یک مدل ریاضی هم بسیار ساده و هم به شدت پیچیده است. بسیار ساده است چون تنها یک قانون وجود دارد که اعمال می‌‌شود: یک تراکنش باید دو تراکنش پیش از خود را تایید کند. بسیار پیچیده است چون گره‌‌های شبکه آزادند که آن دو تراکنش را به هر شکلی که خواستند انتخاب کنند و این می‌‌‌‌تواند توپولوژی تنگل را بسیار پیچیده و شلوغ کند. حتی اگر فرض کنیم که همه از همان راهبرد گزینش tip پیروی می‌‌کنند، نمودار نهایی تصادفی است و ساختاری دارد که که دسترسی به آن کاملا دشوار است. همانطور که در این مقاله گفته شد، انتخاب درست راهبرد گزینش tip، گردش تصادفی‌‌ به سمت tipها دارد، پس از دید ریاضی، در محیطی تصادفی با زنجیره‌‌های مارکوف روبرو هستیم و مدل‌‌های این چنینی شدیدا دشوار هستند. باور کنید که فرایندهای مارکوف در محیط‌‌های تصادفی یکی از موضوعات اصلی پژوهش ریاضی محض من هستند، پس در این باره چیز زیادی می‌‌دانم.

اگر فکر می‌‌کنید که این دشوار نیست، سعی کنید ثبات تعداد tipهای alpha=0 را اثبات کنید. روشنتر بگویم، فرض کنید گزینش tip توسط گردش تصادفی به سمت tipها انجام شده است (پس از وزن‌‌های تجمیعی مستقل است)، ثابت کنید که تعداد مورد انتظار tipها در زمان t توسط یک ثابت محصور شده‌‌اند. این چیزی است که به نظر بدیهی می‌‌رسد و توسط شبیه‌‌سازی‌‌ها تایید شده است، اما سعی کنید آن را دقیقا اثبات کنید. این کار امکان‌‌پذیر است (دانشجوی سابق من دارسی کامارگو توانست به تازگی آن را انجام دهد). اگر مورد بالا برایتان خیلی ساده است سعی کنید تخمین 1.1 را در موازنه تنگل اثبات کنید.

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

Tangle

طرح اولیه اولین ماشین پرواز برادران رایت

مدل‌‌ها، اثبات‌‌ها و قضیه‌‌های ریاضی می‌‌توانند بسیار باارزش باشند، اما باید محدودیت‌‌های آن را هم در نظر داشت. هر وایت‌‌پیپری که ادعا کند چیزی را درباره رفتار یک سیستم که تنها یک ایده نیست و در دنیای واقعی اجرا شده است اثبات کرده است، یا نهان‌‌بین است، یا خیلی ساده‌‌لوح است. فردی می‌‌تواند تلاش کند تا ویژگی‌‌های فنی را نوشته و همه ابعاد طراحی و امنیت یک هواپیما را اثبات کند، اما وقتی که ساخته شد و دیدید که پرواز می‌‌کند، باید پیش از مطرح کردن هرگونه ادعا درباره آمادگی آن برای پرواز جانب احتیاط را رعایت کرد.

علاوه بر این، حتی در زمینه مد‌‌ل‌‌های ریاضی نیز چندان معمول نیست که عبارتی درست پنداشته شود اما اثباتی برای آن وجود نداشته باشد (نمونه‌‌های زیادی از این در فیزیک و ریاضیات وجود دارد (آیا لازم به یادآوری است که همه رمزنگاری کلیدی عمومی امروز بر فرضیات اثبات‌‌نشده متکی است؟). برای پیچیده‌‌تر کردن وضعیت، به نتایج کمی نیاز داریم. تنها اثبات آن با مثلا «به احتمال 1، هر تراکنشی در نهایت تایید می‌‌شود» کافی نیست. برای اینکه نشان دهم منظورم چیست، اثبات عبارت «بیت کوین شکست خورده است» را در نظر بگیرید»: قطعا با وجود این آدرس، می‌‌تواند کلیدهای خصوصی مربوطه را حدس زد؛ از آنجایی که تعداد زیادی از آنان وجود دارد، در نهایت به احتمال 1، یکی از آنان موفق می‌‌شود.

لطفا منظورم را اشتباه نگیرید، چیزی که در بالا گفتم مجوزی برای اهمیت ندادن به اثبات‌‌ها نیست.

اما وقتی یک اثبات دقیق ریاضی از عبارت مطلوبی مانند «تنگل کاملا امن است» نداریم، این یعنی باید سخت تلاش کنیم تا اثبات‌‌های ریاضی را بیابیم، شبیه‌‌سازی‌‌های همه چیز را انجام دهیم، مدل‌‌های ریاضی دیگری که کافی‌‌تر و قابل پیگیری‌‌تر هستند را بسازیم، همه انواع حمله به سیستم را تصور کنیم و بفهمیم که چرا کار نمی‌‌کنند. همچنین باید پژوهش‌‌های جانبی روی همه این‌‌ها را تشویق کنیم.

معرفی تعدیل کنندگان

وقتی از اصلاحات مدل‌‌های ریاضی صبحت می‌‌کنیم شاید بعضی از شما به یاد مقاله « تعدیل کنندگان در تنگل» افتاده باشید که به تازگی در صفحه Research Gate سایت www.iota.org منتشر شده است. این پیش‌‌نویسی است که در بنیاد آیوتا به مدت ماه‌‌ها در گردش بوده است. نسخه‌‌ی ارسالی ما از معادلات ریاضی جدی اما ناتمام تشکیل شده است. چکیده این مقاله بدین شرح است:

امروزه سیستم‌‌های متعدد کریپتو در جهان وجود دارند. آنان یک ویژگی رایج دارند: همه شرکت‌‌کنندگان شبکه، دفترکل را به یک شکل تفسیر می‌‌کنند. ما در این مقاله مفهوم تعدیل کنندگان را مطرح می‌‌کنیم: گره‌‌های شبکه می‌‌توانند به طرق مختلفی بسته به نوع اطلاعاتی که در اختیار دارند با دفترکل تعامل داشته باشند. سپس به این استدلال می‌‌پردازیم که چنین رویکردی امکان افزایش امنیت و مقیاس‌‌پذیری تنگل را فراهم می‌‌کند.

Tangle

نمایش بصری حمله زنجیره پارازیت

آنچه در آن مقاله به دنبال انجامش هستیم مستحکم‌‌تر کردن الگوریتم گزینش tip و وارد کردن چشم‌‌انداز محلی گره‌‌ها به بازی است. به نظر می‌‌رسد که این گره در مقابل بسیاری از انواع حملات مقاومت دارد و موثر عمل می‌‌کند. لازم به تاکید است که ما به دنبال جایگزین کردن الگوریتم گزینش tip MCMC نیستیم، بلکه اصلاح آن در دنبال کردن بهبود پروتکل و امن‌‌تر کردن آن هستیم.

در حالی که هنوز جا برای پژوهش‌‌ها و تحقیقات درباره تعدیل کنندگان وجود دارد تا بتوانیم با قطعیت بگوییم که آیا بهبودهایی برای الگوریتم کنونی گزینش tip هستند و آیا در راهبرد گزینش tip آیوتا ادغام خواهند شد یا خیر، تحقیقات و توسعه‌‌ی خود را به شکل متن باز منتشر می‌‌کنیم. با این کار به اکوسیستم محققان و توسعه‌‌دهندگان فرصتی می‌‌دهیم تا به تکامل پروتکل کمک کنند. قطعا اگر به خاطر این کمک‌‌ها از جانب اکوسیستم آیوتا نبود، این پروژه را امروز در این سطح نمی‌‌دیدیم.

این تنها پایان یک شروع است

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

منبع: https://blog.iota.org/

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.