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

اگر بخواهیم ساختار بلاکچین را براساس عملکرد تقسیمبندی کنیم به ۶ لایه میرسیم: لایه داده، لایه شبکه، لایه اجماع، لایه قرارداد، لایه فعالسازی و لایه اپلیکیشن. برای درک بهتر ساختار لایهها باید نگاهی به مکانیزم و کاربرد هر یک از این لایهها داشته باشیم. به این بهانه مروری بر کارکرد کلی شبکه بلاکچین هم خواهیم داشت.
دادهها و لایههای شبکه، معماری اصلی بلاکچین هستند و زیربنای سیستم بلاکچین را میسازند. لایه داده به عنوان ساختار داده (به عنوان مثال، درخت مرکل) بلاکچین عمل میکند و از دو عنصر تشکیل شده است: اشارهگرها (pointers) و لیست پیوند (linked list).
اشارهگرها، متغیرهایی هستند که به موقعیت متغیرهای دیگری اشاره دارند و یک لیست پیوند، فهرستی از بلاکهای زنجیره با داده است و به بلاک قبلی اشاره دارد. علاوهبراین، لایه داده شامل یک الگوریتم هش و رمزگذاری نامتقارن است که برای اطمینان از قابلیت ضد دستکاری بلاکچین طراحی شده است. لایه داده را میتوان به عنوان یک پایگاه داده توزیعشده و مقاوم در برابر دستکاری در نظر گرفت که باید توسط تمام گرههای سیستم حفظ شود که در نهایت لایه شبکه بلاکچین را میسازد.
لایه شبکه به یک شبکه بزرگ همتابههمتا و دربرگیرنده تمام نودهای بلاکچین اشاره دارد. در این شبکه همتابههمتای توزیعشده، هنگامی که یک نود یک بلاک را میسازد، اطلاعات را از طریق مکانیزم انتقال به چندین گره مجاور منتقل میکند. بعد از اینکه گرههای دیگر، بلاک را تصدیق کردند، آنها دوباره داده را به گرههای دیگر منتقل میکنند. در نهایت، زمانیکه اکثر گرههای سیستم بلاک را تصدیق کردند، بلاک به صورت رسمی به بلاکچین متصل میشود.
براساس معماری بنیادین، لایه اجماع، لایه فعالسازی، لایه قرارداد و لایه اپلیکیشن با یکدیگر کار میکنند تا پروتکل بلاکچین را بسازند. لایه اجماع عمدتا شامل مکانیسمهای الگوریتم اجماع است که برای متحدسازی گرههای کل شبکه و حفظ ثبات داده در سراسر شبکه به کار میرود.
از مکانیسمهای اجماع رایج میتوان به گواه اثبات کار (POW) و گواه اثبات سهام (POS) و گواه اثبات سهام نیابتی (DPoS) استفاده کرد. به عنوان یکی از فناوریهای هستهای بلاکچین، مکانیسم اجماع نقش مهمی در امنیت و کارایی عملیاتی شبکهها دارد. علاوهبر این، اجماع یکی از حیاتیترین مکانیسمهای حاکمیتی در جامعه بلاکچین هم به شمار میرود.
لایه فعالسازی شامل مکانیسم صدور و مکانیسمهای توزیع توکن در بلاکچین است. از طریق مکانیسم تشویقی، گرهها در سیستم بهطور خودبهخود امنیت کل شبکه بلاکچین را حفظ میکنند. برای مثال در مکانیسم اجماع PoW توکنهای بیت کوین تازه صادر شده بین ماینرها توزیع میشوند.
لایه قرارداد عمدتا شامل اسکریپتهای مختلف، الگوریتم و قراردادهای هوشمند است. این لایه اساس برنامهنویسی پیچیده بلاکچین است. در این لایه قرارداد هوشمند پس از فعالسازی تنظیمات اصلی خود را بدون دخالت یا تسهیل شخص ثالث دنبال میکند. علاوهبر این، به دلیل کامل بودن تورینگ قراردادهای هوشمند، لایه قرارداد نیز قابل برنامهریزی است که به کل شبکه بلاکچین ماهیتی شبیه ماشین مجازی میدهد.
لایه اپلیکیشن بالاترین لایه سیستم بلاکچین است. برای بلاکچین بیت کوین، سیستم پرداخت الکترونیکی، انتقال و توابع حسابداری در این لایه انجام میشود. در حالیکه برای بلاکچینهای قابل برنامهریزی مانند اتریوم، اپلیکیشنهای غیرمتمرکز و قابلیتهای پیشرفته با یکدیگر کار میکنند تا لایه اپلیکیشن را بسازند.
تقسیم بندی لایهها از منظر کاربرد و هدف
شش لایه سیستم بلاکچین از نظر ساختاری جدایی ناپذیر هستند و به صورت توامان و همراه با یکدیگر کارکرد بلاکچین را شکل میدهند. اما اگر بخواهیم بلاکچینها را براساس اهداف و مقیاسپذیری تقسیمبندی کنیم به سیستمی میرسیم که این شش لایه را به ۴ لایه (صفر، یک، دو و سه) تقسیم میکند.
لایه صفر که همچنان بهعنوان لایه انتقال داده شناخته میشود، پایینترین لایه است و عمدتا ادغام بین بلاکچین و شبکههای سنتی را رقم میزند. راه حلهای مقیاسپذیری لایه صفر آنهایی هستند که ساختار بلاکچین را تغییر نمیدهند و قوانین اکوسیستم اصلی خود را برای بهبود عملکرد حفظ میکنند. اغلب پولکادات به عنوان یک بلاکچین لایه صفر در نظر گرفته میشود. از آنجایی که شبکه اصلی آن به عنوان یک زنجیره رله فعالیت کرده و فقط برای تامین امنیت و قابلیت همکاری بین پاراچینهای اصلی کار میکند. در بالای پولکادات، برخی از شبکهها میتوانند از طریق اسلات به بلاکچینهای لایه یک مانند اتریوم متصل شوند.
در معماری منطقی بلاکچین لایه یک بهعنوان لایه داده، شبکه، اجماع و فعالسازی در نظر گرفته میشود. اکثر ارزهای دیجیتال دارای یک زنجیره عمومی مستقل و منحصربهفرد به عنوان لایه یک هستند که تمام معاملات در بستر آن تسویه میشود.
لایه یک همچنین به نام مقیاسپذیری روی زنجیره (On-chain Scaling) هم شناخته میشود. این نام به راهکار مقیاسپذیری که بالای پروتکل پایه بلاکچین پیادهسازی میشود اشاره دارد. این لایه به طور کلی نیازمند اصلاح ظرفیت بلاک، زمان تولید بلاک، مکانیسمهای اجماع و سایر ویژگیهای ذاتی بلاکچین برای افزایش ظرفیت معاملاتی است. به طور خاص، ارتقا مقیاس بیت کوین، ظرفیت هر بلاک را افزایش میدهد تا بتواند تراکنشهای بیشتری را انجام دهد.
لایه دو مربوط به لایه قرارداد و لایه اپلیکیشن بلاکچین است. همچنین به عنوان مقیاسپذیری خارج از زنجیره (Off-chain Scaling) شناخته میشود که در آن پروتکلهای اساسی و قوانین اصلی بلاکچین تغییر نخواهد کرد و سرعت پردازش تراکنشها از طریق کانالهای حالت، زنجیرههای جانبی و راه حلهای دیگر افزایش خواهد یافت. لایه دو بستری برای افزایش مقیاسپذیری شبکههای لایه یک، خارج از زنجیره اصلی است.
لایه دو را میتوان مکمل لایه یک در نظر گرفت. یعنی زیرساختی است که بالای بلاکچین ساخته شده تا مقیاسپذیری، در دسترس بودن و حفظ حریم خصوصی بهتری را برای بلاکچین فراهم کند. در مقیاسه با لایه یک که امنیت و عدم تمرکز را دنبال میکند، لایه دو بهینهسازی در کارایی نهایی را دنبال میکند. از انواع متداول راهکارهای لایه دو میتوان به زنجیره جانبی، پلاسما، کانالهای حالت، رولاپ و غیره اشاره کرد.
لایه صفر؛ اینترنت بلاکچینها

اگر لایه یک را فونداسیون و لایه دو را پیکره یک ساختمان در نظر بگیریم. لایه صفر را میتوان به مثابه زمینی در نظر گرفت که مسیر ارتباطی بین ساختمانهای مختلف را فراهم میکند. لایه صفر (Layer 0 یا L0) شامل سختافزار، پروتکلها، اتصالات و سایر اجزایی است که پایه و اساس یک بلاکچین را تشکیل میدهند. لایه صفر نوعی پروتکل است که به توسعهدهندگان امکان ساخت بلاکچینهای لایه یکی را میدهد که با هدفی خاص و برای رفع یکی از ابعاد سهگانه مقیاسپذیری طراحی میشوند. شبکههای L0 مجهز به کیت توسعه نرمافزار یا SDKهایی هستند (مانند Cosmos SDK) که به توسعهدهندگان این امکان را میدهد تا بلاکچینهای خود را تحت عنوان شبکههای لایه یک یا زنجیرههای جانبی ایجاد کنند. لازم به ذکر است که چنین بلاکچینهایی به زنجیره اصلی L0 متصل هستند اما عملکردی مستقل دارند.
بالاتر از مقیاسپذیری گفتیم؛ شبکههای L0 میتوانند توان عملیاتی تراکنشها را افزایش دهند. سرعت تراکنش معمولا برحسب TPS (تراکنش بر ثانیه) محاسبه میشود و توان عملیاتی تراکنش به تعداد کل تراکنشهایی میپردازد که یک شبکه میتواند در یک زمان انجام دهد.
مثلا شبکه هورایزن (Horizen) یک پروتکل لایه صفر است که با کمک کیت توسعه Blaze میتوان یک بلاکچین را در بستر آن راهاندازی کرد. چنین بلاکچینی قادر به اجرای ۱۰۰۰ تراکنش در هر ثانیه است. با این حال پروتکل توان مدیریت ۱۰ هزار بلاکچین به صورت همزمان و موازی را دارد که توان عملیاتی تراکنش زیرساخت را به ۱ میلیون میرساند.
قابلیتهای لایه صفر به شرح زیر است:
فراهمسازی امکان تعامل بلاکچینها با یکدیگر
- کازموس لایه صفر است و با کمک پروتکل ارتباطی بین بلاکچینی تندرمینت (Tendermint IBC) ارتباط بین بلاکچینهای مختلف را فراهم میکند.
- اگر بلاکچینها در بستر لایه صفرهای یکسان ساخته شده باشند، اپلیکیشنهای غیرمتمرکز آنها به صورت خودکار امکان کار روی یکدیگر را دارند. بنابراین دیگر نیازی به هزینه زمان و منابع برای ساخت همان برنامه در شبکههای دیگر نیست.
- البته نیازی نیست تا همه بلاکچینهایی که در بستر یک L0 ساخته میشود، طراحی یکسانی داشته باشند. بلکه میتوانند از مکانیزم اجماع و پارامترهای بلاک مختلفی بهره ببرند.
تراکنشهای سریعتر و ارزانتر
با کمک فناوری IBC، اجماع در چند زنجیره انجام میشود که در نتیجه آن نهاییشدن تراکنش (Finality) بلافاصله اتفاق میافتد. نهایی شدن زمانی است که یک بلاک تایید میشود و دیگر امکان تغییر و بازگشت آن وجود ندارد. نتیجه تراکنشهای سریعتر و ارزانتر در مبادلات بین زنجیرهای یا کراس چین است.
زیرساختی برای توسعهدهندگان
توسعهدهندگان نیاز ندارند که پروژههای خود را از صفر شروع کرده و از پایه بسازند. بسیاری از قابلیتها از پیش ساخته شده و آماده پیادهسازی هستند.
۲ جزء اصلی پروتکل لایه صفر عبارتند از:
- زنجیره اصلی (The Main Chain): معمولا به عنوان بلاکچین اصلی عمل میکند و داده تراکنش شبکههای لایه یک مختلف را ذخیره میکند.
- زنجیرههای جانبی (Sidechains): بلاکچینهای لایه یک مستقل که دارای مجموعه گرههای اعتبارسنجی خاص خود هستند و مکانیسم اجماع خود را دارند. این زنجیرهها برای امنیت به زنجیره اصلی متکی نیستند، اما اغلب از امنیت زنجیره اصلی سهم میبرند. تسهیم امنیت معمولا به روشهای مختلفی رخ میدهد. مثلا شاید لازم باشد که در شبکهای کاربران توکن L0 را برای ولیدیتور شدن در L1 استیک کند. بدان معنی که در صورت تقلب در تراکنشها، علاوهبر سهام L1، سهام L0 را هم از دست خواهد داد.
لایه یک؛ بلاکچینها

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

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

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

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