زمان تقریبی مطالعه: 5 دقیقه
اصطلاح «لایههای بلاکچین» در منابع مختلف دو معنای متفاوت دارد. گاهی منظور، اجزای معماری داخلی یک سیستم بلاکچین است؛ مانند لایه داده، شبکه همتابههمتا، اجماع و اجرای برنامه. در کاربردی دیگر، از اصطلاحهایی مانند Layer 0، Layer 1، Layer 2 و Layer 3 برای توصیف جایگاه شبکهها و پروتکلها در یک Stack چندلایه استفاده میشود.
این دو مدل نباید با هم یکی گرفته شوند. برای مثال «Application Layer» در معماری داخلی یک Blockchain الزاماً همان «Layer 3» در Scaling Stack نیست. همچنین Layer 0 تا Layer 3 یک Taxonomy واحد و رسمی برای تمام اکوسیستمهای Blockchain نیست؛ تعریف دقیق آن بسته به Protocol و Community میتواند متفاوت باشد.
در این مقاله ابتدا معماری داخلی Blockchain را توضیح میدهیم، سپس بهصورت جداگانه Layer 0، Layer 1، Layer 2 و Layer 3 را بررسی میکنیم. اگر ابتدا به تعریف پایه فناوری نیاز دارید، مقاله بلاکچین چیست؟ را مطالعه کنید.
بلاکچین چیست؟
Blockchain یک دفترکل توزیعشده است که چند Node مستقل روی وضعیت آن توافق میکنند و تغییرات معتبر را طبق Rules پروتکل ثبت میکنند. در بسیاری از Blockchainها، Blockها به داده قبلی با Hash متصل میشوند و Consensus تعیین میکند کدام History معتبر است.
جمله فعلی مقاله که «هیچ راهی برای تغییر یک Block وجود ندارد» بیش از حد مطلق است. Blockchainها در برابر دستکاری گذشته مقاوم طراحی میشوند، اما مفاهیمی مانند Chain Reorganization، Consensus Upgrade و Finality باید در نظر گرفته شوند. اصطلاح دقیقتر tamper-resistant / tamper-evident است، نه «تغییر کاملاً ناممکن».
دو مدل متفاوت برای توضیح لایههای بلاکچین
| مدل | چه چیزی را توضیح میدهد؟ | نمونه اصطلاحها |
|---|
| معماری داخلی | اجزایی که یک Blockchain System را میسازند | Data، Network، Consensus، Execution/Application |
| Protocol / Scaling Stack | رابطه شبکه پایه با Protocolهای بالاتر یا زنجیرههای متصل | Layer 0، L1، L2، L3 |
مشکل اصلی متن قبلی این بود که این دو Taxonomy در ادامه مقاله به یکدیگر تبدیل میشدند. نسخه جدید آنها را کاملاً جدا نگه میدارد.
معماری داخلی یک سیستم بلاکچین چگونه است؟
هیچ استاندارد جهانی وجود ندارد که همه Blockchainها الزاماً دقیقاً پنج لایه داشته باشند، اما برای آموزش میتوان معماری را به چند وظیفه اصلی تقسیم کرد.
1) زیرساخت و Nodeها
این بخش شامل کامپیوترها، Storage، Network Interface و Software Nodeهایی است که Protocol را اجرا میکنند. متن فعلی «یک Server در مرکز کره که همه اطلاعات روی آن ذخیره میشود» باید حذف شود؛ Blockchain عمومی دقیقاً با هدف حذف چنین Server مرکزی واحدی طراحی میشود.
Nodeها میتوانند نقشهای متفاوت داشته باشند؛ برای مثال Full Node، Validator، Miner، Archive Node یا Light Client بسته به شبکه. همه Nodeها الزاماً Block تولید نمیکنند.
2) لایه داده
Data Layer ساختار Transaction، Block، Hash، Merkle Commitment، State Representation و Signatureها را شامل میشود. Block زمانی ساخته نمیشود که «تعداد تراکنشها کامل شود»؛ Block Producer بر اساس قواعد شبکه، Limitهای Block/Gas و تراکنشهای موجود Block میسازد.
امضای دیجیتال نیز داده را «رمزگذاری» نمیکند. Signature برای اثبات مجوز و Integrity استفاده میشود؛ Public Key میتواند صحت امضا را Verify کند، اما محتوای تراکنش عمومی را مخفی نمیکند.
3) لایه شبکه یا P2P
Network Layer مسئول Peer Discovery، انتقال Transaction و Block و انتشار داده میان Nodeهاست. هدف آن این نیست که Nodeها «کار یکدیگر را برای جلوگیری از تأیید دوباره تراکنش» مشاهده کنند؛ Validation Rules و Consensus تعیین میکنند Transaction یا State معتبر است یا خیر.
4) لایه اجماع
Consensus مجموعه Rules و مکانیزمهایی است که به Nodeهای مستقل اجازه میدهد درباره Ordering و State معتبر به توافق برسند. Proof of Work و Proof of Stake دو خانواده شناختهشدهاند، اما Implementation و Finality هر Blockchain میتواند متفاوت باشد.
5) Execution / Application Layer
بعضی Blockchainها محیط اجرای Smart Contract یا State Transition عمومی دارند؛ برخی دیگر بسیار محدودترند. بنابراین جمله فعلی «Machine Virtual بخشی از هر Blockchain است» درست نیست. برای مثال داشتن General-purpose VM ویژگی همه Blockchainها نیست.
Application Layer نیز میتواند شامل Protocolها، Smart Contractها، Walletها، dAppها و Interfaceهایی باشد که کاربر با آنها تعامل میکند؛ تعریف آن به Architecture مورد استفاده بستگی دارد.
لایهها چه ارتباطی با سهگانه بلاکچین دارند؟
Blockchain Trilemma چارچوبی برای توضیح Trade-off میان تمرکززدایی، امنیت و مقیاسپذیری است. بهتر است نگوییم هر Blockchain «فقط دو مورد را میتواند داشته باشد و سومی حتماً حذف میشود». مسئله اصلی این است که افزایش یک ویژگی معمولاً Trade-offهایی برای دو ویژگی دیگر ایجاد میکند.
Ethereum.org نیز Trilemma را دشواری دستیابی همزمان به Security، Decentralization و Scalability بالا توضیح میدهد و Layer 2 را یکی از راههای Scale کردن بدون کنارگذاشتن نقش Security و Decentralization لایه پایه میداند. توضیح Ethereum درباره Blockchain Trilemma و Layer 2
برای بررسی تخصصی خود این چالش، مقاله مقیاسپذیری بلاکچین چیست؟ را ببینید.
Layer 0، Layer 1، Layer 2 و Layer 3 چه معنایی دارند؟
این نامگذاری یک مدل مفهومی برای توصیف جایگاه Protocolها در یک Stack است، نه استانداردی که همه پروژهها دقیقاً یکسان از آن استفاده کنند. مخصوصاً Layer 0 و Layer 3 بین اکوسیستمها تعریفهای متفاوتی دارند.
Layer 0 چیست؟
اصطلاح Layer 0 معمولاً برای زیرساختی استفاده میشود که امکان ایجاد، امنیت مشترک یا Interoperability چند Blockchain مستقل را فراهم میکند. اما نباید Internet، Hardware و هر Blockchain دیگری را بهطور خودکار Layer 0 نامید.
یک مثال رسمی، Polkadot است. مستند Polkadot آن را Layer-0 protocol معرفی میکند که Application-specific Layer-1 Chainها یا Parachainها میتوانند از Shared Security و Cross-chain communication آن استفاده کنند. تعریف Layer 0 در مستند Polkadot
بنابراین فهرست فعلی مقاله که Polkadot، Cosmos، Avalanche و Cardano را همگی بدون قید «نمونه Layer 0» معرفی میکند باید حذف شود؛ Label هر اکوسیستم باید مطابق معماری و Terminology رسمی همان Protocol بررسی شود.
Layer 1 چیست؟
Layer 1 زنجیره پایهای است که Consensus، Data/State و Settlement خود را با Validator Set یا Minerهای خودش تأمین میکند. Bitcoin و Ethereum نمونههای شناختهشده L1 هستند.
متن فعلی میگوید «L1 از Proof of Work استفاده میکند و ماینرها تراکنشها را حل میکنند». این تعریف نادرست است؛ همه Layer 1ها PoW نیستند. Ethereum از سپتامبر ۲۰۲۲ Proof of Stake است و بسیاری از L1های دیگر نیز PoS یا Consensusهای متفاوت دارند.
همچنین Validator یا Miner «تراکنش را حل نمیکند». Transaction طبق Rules اعتبارسنجی میشود و Block Producer مجموعهای از Transactionهای معتبر را در Block قرار میدهد.
برای یک نمونه واقعی از L1 برنامهپذیر، مقاله بلاکچین اتریوم چیست؟ را مطالعه کنید.
Layer 2 چیست؟
Layer 2 شبکه یا Protocolی است که برای Scale کردن Layer 1 طراحی میشود و در تعریف Trust-minimized، بخشی از Security یا Settlement خود را از L1 میگیرد.
L2 را نباید «شخص ثالثی که احراز هویت همه تراکنشها را کنترل میکند» تعریف کرد. معماری Rollup میتواند Sequencer داشته باشد، اما State Transition نهایی با Rules و Proof/Challenge Mechanism مرتبط با Layer 1 کنترل میشود.
همچنین اضافهشدن L2 به معنی «اضافهشدن Node بیشتر به L1» نیست؛ هدف اصلی انتقال بخشی از Execution از Base Layer و Batch/Settlement روی L1 است.
برای جزئیات Rollup، State Channel، Sidechain، Validium و Data Availability، مقاله لایه دوم بلاکچین چیست؟ را مطالعه کنید.
Layer 3 چیست؟
Layer 3 اصطلاحی با تعریف کاملاً یکسان در تمام اکوسیستمها نیست. در معماری Scaling مدرن، یکی از کاربردهای رایج آن زنجیرهای است که روی یک Layer 2 ساخته میشود و بهجای Settlement مستقیم روی L1، روی L2 زیرین Settlement میکند.
Nomenclature پروژه Ethereum L2 interoperability نیز L3 را Blockchainای توصیف میکند که ساختاری مشابه L2 دارد اما یک L2 زیر آن قرار گرفته است. Nomenclature مربوط به L1، L2 و L3
در اکوسیستم Starknet نیز Appchain میتواند به شکل L3 روی Starknet ساخته شود تا Execution اختصاصیتر و Cost پایینتری داشته باشد. توضیح Starknet درباره L3 Appchain
بنابراین تعریف فعلی مقاله که «Layer 3 همان رابط کاربری و dApp است» باید حذف شود. Application Layer و Layer 3 Scaling دو مفهوم متفاوتاند.
همچنین Uniswap یک dApp/Protocol روی Ethereum و شبکههای دیگر است؛ صرف dApp بودن آن را به یک Blockchain Layer 3 تبدیل نمیکند.
مقایسه Layer 0 تا Layer 3
| لایه | نقش رایج | نمونه مفهومی | نکته مهم |
|---|
| Layer 0 | زیرساخت مشترک برای Chainها، Shared Security یا Interoperability | Polkadot Relay Chain | تعریف آن بین Ecosystemها یکسان نیست |
| Layer 1 | Base consensus / settlement chain | Bitcoin، Ethereum | میتواند PoW یا PoS یا مدل دیگر داشته باشد |
| Layer 2 | Scaling لایه پایه با Settlement/Security وابسته به L1 | Rollupها، Payment Channelها | Sidechain الزاماً L2 سختگیرانه نیست |
| Layer 3 | Chain/Execution تخصصی روی L2 در برخی معماریها | L3 appchain | با Application Layer یا هر dApp مترادف نیست |
چه اصطلاحهایی را نباید با هم یکی بدانیم؟
- Application Layer ≠ Layer 3: یکی جزء معماری نرمافزاری است و دیگری میتواند یک Chain بالای L2 باشد.
- Network Layer ≠ Layer 1: Network Layer بخشی از معماری داخلی L1 است، نه خود L1.
- Hardware Layer ≠ Layer 0: سختافزار زیرساخت اجرایی Nodeهاست، ولی Layer 0 اصطلاح Protocol-stack است.
- Sidechain ≠ Rollup L2: Sidechain میتواند Consensus مستقل داشته باشد و Security L1 را به ارث نبرد.
- dApp ≠ Blockchain Layer: یک Application الزاماً Chain مستقل ایجاد نمیکند.
شناخت لایههای بلاکچین چه کاربردی برای کاربر دارد؟
این Taxonomy فقط بحث نظری نیست؛ شناخت اینکه یک سرویس روی کدام Layer قرار دارد به درک Security و Risk کمک میکند.
- اگر دارایی روی L1 است، Security به Validator/Miner Set همان Chain وابسته است.
- اگر روی L2 است، باید Settlement، Data Availability، Sequencer و Bridge بررسی شوند.
- اگر روی Sidechain است، باید Validator Set مستقل آن را ارزیابی کرد.
- اگر روی L3 است، علاوه بر L3 باید Risk مربوط به L2 زیرین و L1 نهایی نیز فهمیده شود.
بنابراین برچسب «Layer 2» یا «Layer 3» بهتنهایی نشاندهنده Security بیشتر یا بهتر بودن یک Network نیست.
جمع بندی؛ «لایههای معماری» را از Layer 0 تا Layer 3 جدا کنید
Blockchain را میتوان از یک طرف به اجزای داخلی مانند Data، Network، Consensus و Application تقسیم کرد و از طرف دیگر Protocolها را در Stackهایی مانند Layer 0، Layer 1، Layer 2 و Layer 3 توصیف کرد. این دو مدل برای پاسخ به سؤالهای متفاوت ساخته شدهاند.
مهمترین اصلاح مفهومی این است که Layer 0/1/2/3 یک استاندارد جهانی ثابت نیست. Layer 1 زنجیره پایه است، Layer 2 معمولاً Scale کردن L1 را هدف میگیرد، Layer 0 در برخی Ecosystemها زیرساخت چندزنجیرهای است و Layer 3 میتواند زنجیره تخصصی بالای L2 باشد. Application Layer را نیز نباید خودکار Layer 3 نامید.