از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

در این مقاله در مورد DAG (Directed Acyclic Graph) و کاربرد آن در دفتر کل توزیع شده به شما می گویم و آن را با بلاک چین مقایسه می کنیم.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

همچنین به شما نشان خواهم داد که DAG در واقع در برابر سانسور مقاوم تر است و هیچ واسطه ای برای دسترسی به دفتر کل وجود ندارد.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

ماینرها واسطه هایی هستند که بین شما و دفتر کل توزیع شده قرار دارند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

در عمل، معمولا تعداد کمی از استخرهای ماینر به طور جمعی بیش از نیمی از توان محاسباتی شبکه را کنترل می کنند. برای بیت کوین این چهار استخر، برای اتریوم - دو است. در صورت تبانی، می توانند هر تراکنشی را که بخواهند مسدود کنند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

اکنون همه بدون واسطه به رجیستری دسترسی مستقیم دارند. هنگامی که می خواهید یک تراکنش را به دفتر کل اضافه کنید، به سادگی آن را اضافه می کنید. شما چندین تراکنش والد را انتخاب می کنید، داده های خود را اضافه می کنید، تراکنش خود را امضا می کنید و به همتایان خود در شبکه می فرستید. آماده. هیچ کسی وجود ندارد که شما را از انجام این کار باز دارد، بنابراین تراکنش شما از قبل در دفتر کل است.

این غیرمتمرکزترین و ضد سانسورترین راه برای اضافه کردن تراکنش ها به دفتر کل بدون واسطه است. زیرا همه به سادگی تراکنش های خود را بدون درخواست اجازه از کسی به رجیستری اضافه می کنند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

اکنون که این آزادی را داریم، نباید به هرج و مرج منجر شود. ما باید در مورد وضعیت رجیستری توافق داشته باشیم. و این توافق یا اجماع معمولاً به معنای توافق بر دو چیز است:

  1. چی شد؟
  2. به چه ترتیبی این اتفاق افتاد؟

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

اگر یک بلاک چین بود، ماینرها تصمیم می گرفتند چه اتفاقی بیفتد. هر چیزی که ماینر تصمیم می گیرد در یک بلاک قرار دهد همان اتفاق می افتد. هر چیزی که او در بلوک نمی گنجاند اتفاق نمی افتد.

در بلاک چین، ماینرها مشکل دوم اجماع را نیز حل می کنند: نظم. آنها مجاز هستند تراکنش های درون بلوک را به دلخواه خود سفارش دهند.

چگونه ترتیب معاملات را در DAG تعیین کنیم؟

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

فقط به این دلیل که نمودار ما جهت دار است، ما قبلاً مقداری نظم داریم. هر تراکنش به یک یا چند تراکنش قبلی اشاره دارد. والدین نیز به نوبه خود به والدین خود رجوع می کنند و غیره. بدیهی است که والدین قبل از تراکنش های فرزند ظاهر می شوند. اگر بتوان به هر یک از تراکنش ها با انتقال پیوند والد-فرزند رسید، دقیقاً ترتیب بین تراکنش ها در آن زنجیره تراکنش ها را می دانیم.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

اما ترتیب بین تراکنش ها را همیشه نمی توان تنها از روی شکل نمودار تعیین کرد. به عنوان مثال، زمانی که دو تراکنش در شاخه های موازی نمودار قرار دارند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

ارائه دهندگان سفارش توسط کاربران انتخاب می شوند و هر کاربر در هر تراکنشی که به شبکه ارسال می کند، فهرستی از ارائه دهندگان مورد اعتماد خود را شامل می شود. این لیست از 12 ارائه دهنده تشکیل شده است. این تعداد به اندازه کافی کم است که یک شخص هویت و شهرت هر یک از آنها را تأیید کند و برای اطمینان از ادامه فعالیت شبکه در صورت بروز مشکلات اجتناب ناپذیر با اقلیت ارائه دهندگان سفارش کافی است.

این فهرست ارائه دهندگان از کاربری به کاربر دیگر متفاوت است، اما فهرست تراکنش های همسایه ممکن است تا یک ارائه دهنده متفاوت باشد.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

اکنون که ارائه دهندگان سفارش داریم، می‌توانیم تراکنش‌های آن‌ها را در یک DAG جدا کنیم و همه تراکنش‌های دیگر را بر اساس سفارش ایجاد شده توسط آنها سفارش دهیم. ایجاد چنین الگوریتمی امکان پذیر است (نگاه کنید به. کاغذ سفید Obyte برای جزئیات فنی).

اما ترتیب کل شبکه را نمی توان فوراً تعیین کرد؛ ما به زمان نیاز داریم تا ارائه دهندگان سفارش تعداد کافی از تراکنش های خود را برای تأیید سفارش نهایی تراکنش های گذشته ارسال کنند.

و از آنجایی که ترتیب فقط با موقعیت تراکنش های ارائه دهندگان در DAG تعیین می شود، تمام گره های شبکه دیر یا زود تمام تراکنش ها را دریافت می کنند و در مورد ترتیب تراکنش ها به یک نتیجه می رسند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

بنابراین، ما توافق داریم که چه چیزی اتفاق افتاده است: هر تراکنشی که به DAG ختم شود، اتفاق افتاده است. ما همچنین در مورد ترتیب رویدادها توافق داریم: این یا از روابط تراکنش ها مشهود است یا از ترتیب تراکنش های ارسال شده توسط ارائه دهندگان سفارش استنباط می شود. پس ما اجماع داریم.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

ما این نسخه از اجماع را در Obyte داریم. حتی اگر دسترسی به دفتر کل Obyte کاملا غیر متمرکز است، اجماع در مورد ترتیب تراکنش ها همچنان متمرکز است زیرا 10 از 12 ارائه دهنده توسط سازنده (آنتون چوریوموف) کنترل می شوند و تنها دو تا از آنها مستقل هستند. ما به دنبال کاندیداهایی هستیم که مایل به تبدیل شدن به یکی از ارائه دهندگان سفارش مستقل هستند تا به ما در غیرمتمرکز کردن سفارش دفتر کمک کنند.

اخیراً، سومین کاندیدای مستقل ظاهر شده است که مایل به نصب و نگهداری یک گره ارائه دهنده سفارش است - دانشگاه نیکوزیا.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

حال چگونه خرج های مضاعف را کنترل کنیم؟

طبق قوانین، اگر دو تراکنش پیدا شود که یک سکه را خرج می کنند، تراکنشی که در ترتیب نهایی همه تراکنش ها اول می شود برنده می شود. مورد دوم توسط الگوریتم اجماع باطل شده است.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها
اگر امکان برقراری نظم بین دو تراکنش که یک سکه را خرج می‌کنند (از طریق ارتباطات والد-فرزند) وجود داشته باشد، همه گره‌ها بلافاصله چنین تلاشی برای دو برابر کردن هزینه را رد می‌کنند.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

در صورتی که سفارش از روابط والد بین دو چنین تراکنش قابل مشاهده نباشد، هر دو در دفتر کل پذیرفته می شوند و باید منتظر اجماع و برقراری نظم بین آنها با استفاده از ارائه دهندگان سفارش باشیم. سپس تراکنش قبلی برنده می شود و تراکنش دوم نامعتبر می شود.

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

این یک قانون بسیار مهم است که به کل سیستم اجازه می دهد در برابر تلاش های سانسور مقاومت کند. 

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

از بلاک چین تا DAG: خلاص شدن از شر واسطه ها

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

منبع: www.habr.com

اضافه کردن نظر