تنگل (Tangle) چیست؟ مکانیزم پردازش تراکنشهای آیوتا!
تنگل (Tangle) نام نوعی مکانیزم ذخیره سازی و پردازش تراکنش مخصوص شبکه رمزنگاری شده آیوتا (IOTA) است. این شبکه به منظور ایجاد تراکنشهای بسیار کوچک و بدون کارمزد برای گسترش دادن اکوسیستم اینترنت اشیا (IOT) توسعه داده شده است. تنگل اساسا رشتهای از تراکنشها است که به یکدیگر متصلاند و از طریق شبکه غیرمتمرکزی از نودها ذخیره شدهاند.
نکته مهم این است که تنگل دارای ماینر نیست؛ زیرا کاربران شبکه با اجرای گواههای اثبات کار محاسباتی کوچک توسط بررسی تراکنشهای ثبت شده در شبکه، عملکردی همانند ماینرهای بلاک چین دارند. تنگل با تمرکز بر امکانپذیر ساختن مقیاس پذیری شبکه برای ایجاد شبکهای جهانی از دستگاههای IOT متصل به یکدیگر، طوری توسعه یافته است که راهکاری برای ماهیت ناهمگون سیستمهای فعلی بلاک چین باشد. در وایت پیپر تنگل عنوان شده است که:
دو نوع متفاوت از شرکت کنندگان در سیستم وجود دارد. کسانی که تراکنش ها را ایجاد میکنند و کسانی که تراکنش ها را تایید میکنند. طراحی این سیستم، تمایز اجتناب ناپذیری بین شرکت کنندگان ایجاد میکند که درمقابل تعارضاتی ایجاد میشود که باعث میشود تمام عوامل، منابع موجود را در خصوص این تعارضات استفاده کنند. مشکلات مورد نظر، جستجو برای یافتن راهکاری متمایز از فناوری بلاک چین که اساس ایجاد بیت کوین و سایر ارزهای دیجیتال است را توجیه میکند.
تنگل ، شبکه آیوتا و DAG
در حال حاضر شبکه آیوتا توسط بنیاد آیوتا اداره میشود و یکی از ارزهای دیجیتال شناخته شده محسوب میشود. تفاوت کلیدی و مهم که آیوتا را از سایر شبکههای بلاک چین متمایز میکند این است که تنگل، ساختار اطلاعاتی است که آیوتا بر بستر آن ایجاد شده است و در واقع یک بلاک چین بدون بلاک است. تراکنشهای ایجاد شده به جای آنکه توسط ماینرها وارد بلاک شوند، توسط کاربران صورت میگیرد و کاربران به عنوان ماینر و ایجاد کننده تراکنش عمل میکنند.
این امر، حاصل این موضوع است که تنگل به جای آنکه بلاک چینی برای ذخیره دفترکل باشد، حاوی DAG است. تمرکز اصلی کاربرد تنگل، ایجاد چارچوب مقیاس پذیر برای تراکنشها به ویژه ریزپرداخت ها بین دستگاه های IoT است؛ در نتیجه شبکه از نظر تئوری به نسبت مقدار تراکنشهای ثبت شده در شبکه مقیاس پذیر میشود. از آنجایی که مقیاس پذیری یک مشکل بنیادین در پلتفرم های مهم ارزهای دیجیتال است، تنگل برای تسهیل رشد شبکه دستگاه های به هم پیوسته طراحی و ایجاد شده است.
ایجاد کنندگان تراکنش که نقش ماینرها در تنگل را به عهده دارند، باید دو تراکنش قبلی در شبکه را بررسی کنند و هر تراکنش به محاسبات گواه اثبات کار از جانب کاربر نیاز دارد. نکته قابل ذکر این است که هنگام استفاده از تنگل هیچ کارمزدی وجود ندارد زیرا شبکه ناهمگون نیست. در شبکه های ناهمگون، باید مشوق هایی به کار گرفته شود تا شرکت کنندگان اکوسیستم تفکیک شوند.
نکته مهم در تنگل، استفاده آن از گراف های جهت دار غیرمدور (DAG ها) به جای بلاک چین است. این DAG ها به عنوان گراف های جهت دار متناهی عمل میکنند که در آن، مجموعهای از راس گرافها توسط خطوط جهت داری به یکدیگر متصل شدهاند. تصویر زیر مثالی از گراف را نشان میدهد.
هر تراکنش توسط راسهای گراف مشخص میشود و خطوط جهت دار نیز بیانگر تاییدهای بین هر تراکنش هستند. هر تراکنش ورودی برای تایید شدن باید دو تراکنش قبلی را تایید کند. در نتیجه، خطوط جهت دار بیانگر ارتباط هر تراکنش به تراکنش قبلی است. برای مثال، تراکنش ۵، تراکنشهای ۲ و ۳ را به طور مستقیم و تراکنش ۱ را به طور غیرمستقیم تایید میکند.
این نکته نیز قابل ذکر است که تراکنش صفر، تراکنش جنسیس (تراکنش اولیه) در آیوتا است و حاوی تمام کوین های میوتا (MIOTA یا همان کوین IOTA) است که تولید خواهد شد. تراکنش ۶ نیز به عنوان تراکنش راس شناخته میشود زیرا تراکنش تایید نشدهای است که برای این ساختار مهم است.
ساختار تراکنشها
در تنگل، هر تراکنش ورودی باید ۲ تراکنش راس را تایید کند. استراتژی به کار گرفته شده در خصوص اینکه کدام تراکنش راس توسط کدام تراکنش ورودی تایید شود، یکی از مهمترین ویژگیهای تنگل است. این استراتژی به اسم الگوریتم انتخاب راس شناخته میشود و در تنگل، با استفاده از شکل بهینه سازی شده گامهای تصادفی یا همان گام تصادفی وزندار صورت میپذیرد.
نکته مهم این است که تراکنش ها در DAG با گذشت زمان به طور یکسان منتشر نمیشوند؛ بلکه تاخیر عمدی وجود دارد که تراکنشهای ورودی را برای مدت کوتاهی پنهان میکند تا تاخیر واقعی موجود را شبیه سازی کند. در ننیجه، تراکنشهای تنگل بسیار متفاوت هستند و تنها یک زنجیره از تراکنشها نیستند.
تصادفی بودن انتشار تراکنشها از طریق فرایند نقطه پواسون (Poisson Point Process) امکان پذیر میشود که این فرایند، یک روش احتمالی برای ردیابی نقاط تصادفی در فضای ریاضیاتی و در این مورد، DAG است. در تنگل علیرغم تاخیر عمدی تراکنشهای ورودی، میانگین کلی نرخ تراکنش های ورودی ثابت میماند. علامت لاندا (Lambda) بیانگر نرخ میانگین تراکنش های ورودی متعادل سازی لاندا مربوط به شبکه متنوعی از تراکنشها است. اگر لاندا برابر با صفر باشد، شبکه تراکنشهای تنگل فقط شامل زنجیره خطی تراکنشهای متصل به یک تراکنش تاییدکننده میشود. مشخصا این شرایط برای شبکه مقیاس پذیری از هزاران دستگاه متصل به یکدیگر نیست.
تراکنشهای راس و گام تصادفی
الگوریتم انتخاب راس تنگل بر اساس مفهوم گام تصادفی پیش بینی میشود. اساسا انتخاب کننده راس (تراکنشهای تایید نشده) در تراکنش جنسیس شروع میشود و در سراسر DAG به صورت خطی به سمت جدیدترین راس و از چپ به راست گام برمیدارد. دو نوع گام تصادفی وجود دارد.
- گام تصادفی بی وزن
- گام تصادفی وزن دار
گام تصادفی بی وزن، تراکنش راس بعدی را طوری انتخاب میکند تا انتقال به راس های مختلف از احتمال یکسانی برخوردار باشند. گام تصادفی وزن دار پیچیدهتر است و وزن مجموع را بر روی انتقال به راس قرار میدهد و تنگل نیز از همین ویژگی استفاده میکند. تصویر زیر که از بلاک رسمی آیوتا است، مفهوم گام تصادفی وزن دار را نشان میدهد که در آن، مجموع بار تراکنشی همراه با افزایش احتمال انتقال انتخاب کننده به راس مشخص را به صورت درصدی نشان داده شده است.
این نکته قابل ذکر است که فرآیند گام تصادفی وزن دار فقط دوبار برای هر تراکنش رخ میدهد. در تنگل، تراکنشها بر اساس تعداد تراکنشهایی که به صورت مستقیم یا غیرمستقیم تایید کردهاند دارای وزن میشوند. دلیل این امر کاهش “راس های تنبل” یا همان تراکنشهایی است که فقط تراکنشهای قدیمی را تایید میکنند و در نتیجه با وضعیت فعلی تنگل پیش نمیروند. این موضوع یک مانع برای شبکه است؛ زیرا این تراکنشها، تراکنشهای قدیمی را تایید نمیکنند.
روش ایجاد قانون مجزا برای انتخاب تصادفی هر راس به عنوان قدم های خطی گام تصادفی در سراسر DAG به اسم تکنیک زنجیره مارکوف مونته کارلو (MCMC) شناخته میشود که اساس الگوریتم انتخاب راس در تنگل است. MCMC در مدل تراکنشی تنگل نقش حیاتی ایفا میکند و با پارامترهای خاصی بهینه میشود که برای اطمینان از اعتبار و پایداری بلندمدت تنگل ضروری است.
بنابراین، مفهوم استفاده از گام تصادفی وزن دار (MCMC) به جای گام تصادفی بدون وزن به تنگل امکان میدهد تا از طریق مکانیزم بازدارنده از راسهای تنبل اجتناب شود. در این مکانیزم، راسهای تنبل توسط تراکنشهای ورودی تایید نخواهند شد. انتخاب کننده در مدل وزن دار بیشتر تمایل دارد که به راس های سنگین تر انتقال یابد. اولویت به راسهای سنگینتر و در نتیجه تنگل سنگینتری از تراکنشها برای اجماع نهایی شبکه تنگل بسیار مهم است و این امر، حاصل طراحی غیرهمزمان آن است.
اعتبار تراکنش و اجماع نهایی
همانند این موضوع که بزرگترین بلاک چین در بیت کوین بیانگر رایجترین گواه اثبات کار و در نتیجه قابل اعتمادترین زنجیره معتبر است، در تنگل نیز سنگینترین زنجیره تراکنشها، تنگل معتبر است. قبل از آنکه به نحوه دستیابی به اجماع نهایی و تایید تراکنشها در تنگل بپردازیم، این نکته بسیار مهم است که بدانیم تنگل چرا و چگونه به صورت غیرهمزمان در نظر گرفته میشود.
به طور کل، از آنجایی که MCMC به عنوان الگوریتم انتخاب راس به کار گرفته میشود، تمام کاربران (یا همان نودها) مجموعه تراکنشها را در تنگل مشاهده نخواهند کرد و حتی ممکن است تراکنشهای متضادی نشان داده شود. هرچند، تعیین کننده به دلیل مدل “وزن مجموع” به هر تراکنش اضافه میشود، در آخر زنجیره سنگینتری از تراکنشها به وجود خواهد آمد و زنجیره سبکتر کنار گذاشته خواهد شد. به علاوه، تراکنشهایی که قدیمی هستند در تنگل سنگینتر ادغام خواهند شد و به اجماع نهایی میرسد.
با وجود ویژگی وزن مجموع تنگل، مشکل دوبار خرج کردن به میزان قابل توجهی کاهش مییابد. تراکنشهای نامعتبر تایید نخواهند شد و در نتیجه، تمام تراکنشهایی که تراکنشهای نامعتبر را تایید کنند، خودشان نامعتبر میشوند. از آنجایی که این تراکنشهای نامعتبر، اتصالهای تایید مستقیم یا غیرمستقیمی به عنوان اتصال معتبر ندارند، بخشی از زنجیره سبکتر تنگل میشوند و سرانجام کنار گذاشته خواهند شد.
یکی از مشکلات واضح از دید کاربران این است که هیچ روشی برای دانستن این موضوع وجود ندارد که تراکنشهای آنها تایید شده است و به اجماع در خصوص وضعیت تنگل به عنوان بخشی از زنجیره سنگینتر دست یافته است یا خیر. راهکار این مشکل در اعتماد تایید نهفته است. با استفاده از فرمول اختصاصی که احتمال سطح پذیرش تراکنش در تنگل را محاسبه میکند، به هر تراکنش یک امتیاز اعتماد تایید تعلق میگیرد که درصد احتمال شامل شدن آن تراکنش است.
به راسهای بسیار سنگینتر توجه بیشتری میشود تا اطمینان حاصل شود که زنجیره سنگینتر دارای تراکنشهای معتبر است. در آخر، این موضوع منجر به اجماع تراکنشهای معتبر میشود؛ هرچند برای کاربران مخرب دارای توان محاسباتی چشمگیر، فرصتهای جدید حمله ایجاد میکند. تا زمانی که کاربری بتواند به اندازه کل شبکه یا بیشتر از آن تراکنش ارسال کند، خواهد توانست که تراکنشهای نامعتبر ایجاد کند و تنگل را طوری فریب دهد که این تراکنشهای نامعتبر بخشی از زنجیره معتبر هستند.
هماهنگ کننده و مقیاس پذیری
بنیاد آیوتا به منظور کاهش مشکل حملات کاربر مخرب به شبکه در مثال فوق، در حال حاضر از مفهومی به اسم هماهنگ کننده (Coordinator) بهره میبرد. هماهنگ کننده به عنوان مکانیزم اجماع جایگزین متمرکز، داوطلبانه و موقت برای تنگل عمل میکند.
هماهنگ کننده هر ۲ دقیقه برای صدور تراکنش نقطه عطف در تنگل استفاده میشود؛ به صورتی که تمام تراکنشهای تایید شده توسط هماهنگ کننده اینطور در نظر گرفته میشوند که دارای اعتماد تایید ۱۰۰ درصدی هستند. پیاده سازی هماهنگ کننده بحث برانگیز است، اما از نظر منطقی قابل فهم است زیرا شبکه آیوتا در حال حاضر شامل تراکنشهای ورودی کافی برای کاهش حملات بیان شده نیست. با ادامه مقیاس پذیرتر شدن شبکه، نقش هماهنگ کننده کمتر و سرانجام حذف خواهد شد و تنگل به عنوان شبکه کاملا غیرمتمرکزی عمل خواهد کرد که از طریق مکانیزم اجماع توزیع شده که در سراسر DAG ها از MCMC استفاده میکند، ایمن خواهد شد.
نتیجه گیری
تنگل از زمان پیدایش خود در اکتبر ۲۰۱۷ به عنوان بلاک چین نسل بعدی در نظر گرفته شده است. تنگل علیرغم بحث های موجود پیرامون پیاده سازی و پایداری بلندمدت و پتانسیل آن، یکی از مفاهیم جذاب در حوزه ارزهای دیجیتال باقی مانده است.
با وجود راهکارهای مقیاس پذیری آینده، مشاهده این موضوع که آیا تنگل بدون بلاک میتواند در سطحی مقیاس پذیر شود که به عنوان چارچوب توزیع شده برای ظهور اینترنت اشیا عمل کند، بسیار جذاب خواهد بود.
آخرین به روز رسانی: ۱۳۹۹/۴/۱۷