در این راهنما، در مورد نودهای اتریوم و شاردینگ خواهید آموخت. اگر در فضای رمزارز فعال بوده باشید، خواهید دانست که سال پیش موضوع مقیاس پذیری روی بیت کوین و اتریوم مشکل ایجاد کرد.
بیت کوین این مشکل را از طریق سگویت و فورک سخت بیت کوین کش حل کرد. اتریوم، اگرچه، این مشکل را به روشی دیگر حل کرد. یکی از پروتکل هایی که آنها بدنبال فعالسازی بودند، شاردینگ بود. قبل از فهم معنای آن، باید در مورد شبکه ها و نودها بیشتر بدانیم. اجازه دهید با مفهوم نود با استفاده از یک فعالیت روزانه آشنا شویم.
این باکس را در نظر بگیرید:
این باکس ورودی ها را می گیرد، روی آن عملیاتی انجام می دهد و سپس خروجی تولید می کند. این باکس یک نود است. بخاطر داشته باشید که نودها دقیقاً باکس نیستند و در این جا اینگونه تصور می کنیم. یک شبکه گروهی از این نودها هستند که به یکدیگر متصل هستند. پارامترها قوانینی هستند که نودها تحت آنها هستند. اجازه دهید بررسی کنیم که یک دستگاه کاغذ خردکن چگونه کار می کند:
در اینجا شما از سه نود استفاده می کنید: کاغذ، خردکن و ملزومات خردکن. این سه نود شبکه خردکن را تشکیل می دهند. تا الان فرض کردیم که نودها فقط یک ورودی دارند. چه اتفاقی می افتد اگر بیش از آن می داشتند؟
اجازه دهید نگاهی به توستر بیاندازیم. توستر دو ورودی می گیرد:
یک چیز را به خاطر داشته باشید، اگر هر یک از این ها نباشد توستر کار نمی کند.
اجازه دهید یک مثال پیچیده تر را در نظر بگیریم که از پارامترها استفاده می کنند. مثلاً تلویزیون. تلویزیون به فراهم کننده سرویس شما متصل می شود. فرض کنید شما یک PS4 و یک ایکس باکس نیز دارید.
نقشه کل شبکه تلویزیون به صورت زیر خواهد بود:
فقط به یکی از این نودها از طریق تلویزیون می توان دسترسی داشت. بنابراین، چطور می توان اطمینان ایجاد کرد که تلویزیون شما می تواند به یک نود در هر زمانی دسترسی داشته باشد؟ اینجا جایی است که پارامترها مطرح می شوند. پارامترها نودهای شما را خاص می کنند. فرض کنید بخواهید یک پارامتر به تلویزیون خود به نام کانال سوئیچ اضافه کنید که به شکل زیر است:
فقط با اضافه کردن این پارامترها نودهای خود را می سازید یعنی تلویزیون خود را خاص می کنید. بنابراین، اجازه دهید بررسی کنیم دیگر پارامترهایی که می توانند تلویزیون ما را خاص کنند کدامند.
خوب حال یک تلویزیون 55 اینچی، نقره ای، پلاسما سونی داریم. اجازه دهید بررسی کنیم که نود، شبکه و پارامتر به چه معنی هستند.
نودها: اجزایی که ورودی را می گیرند و روی آنها عملیاتی انجام می دهند و خروجی تولید می کنند.
شبکه: مجموعه ای از نودها که به یکدیگر متصل هستند
پارامترها: قوانینی که نود را تعریف می کنند و آن را خاص می کنند
سیستم مخابراتی براساس نود و شبکه کار می کنند. اینترنت، تماس ها، پیامک ها، هر یک از آنها از این سیستم پیروی می کنند. نحوه ساخت یک شبکه مخابراتی به صورت زیر است:
شبکه مخابراتی یک سیستم الکترونیکی از لینک ها و سوئیچ ها است و کنترل هایی که عملیات را مدیریت می کنند که به داده ها اجازه می دهند قابل انتقال باشند.
چرا به یک شبکه مخابراتی نیاز داریم:
درحالیکه این امکان وجود دارد که یک اتصال را بین یک به یک افراد ساخت، اما این کار بسیار گران و زمانبر است.
بعلاوه، این فرآیند بسیار ناکارآمد است زیرا اغلب ارتباطات بیکار و غیر قابل استفاده هستند.
برای افزایش کارایی، از یک شبکه مخابراتی استفاده می کنیم. بنابراین، تعریف نود در این حوزه عبارت است از: یک نقطه بازآرایی و یا یک نقطه ارتباطی است.
یک شبکه GSM ساده را در نظر بگیرید. فرض کنید، آلیس می خواهد پیامکی برای باب ارسال کند، در این مورد سیستم چگونه کار می کند؟
آنها اساساً ارسال کنندگان و دریافت کنندگان را پیگیری می کنند تا ببینند پیام می تواند ارسال شود. آنها چک می کنند آیا تلفن دریافت کننده خاموش است یا خارج از منطقه تحت پوشش است. اگر به دلایلی پیام ارسال نشود، به مدت 6 ساعت در SMSC ذخیره می شود.
این مروری بر نحوه کارکرد سیستم پیامکی بود. BSC، BST، MSC، SMSC، HLR و VLR همگی نودهایی در شبکه GSM هستند. کل سیستم به شکل زیر است:
یک ساختار شبکه نرمال یک ساختار کلاینت-سرور است.
مدل کلاینت-سرور:
یک سرور مرکزی وجود دارد و هر شخصی که بخواهد به سرور وصل شود می تواند درخواست بفرستد تا اطلاعات لازم را کسب کند. این روش بسیار به کارکرد اینترنت شباهت دارد. وقتی بخواهید چیزی را گوگل کنید، نیاز خواهید داشت تا یک درخواست از سرور گوگل داشته باشید، که با نتایج دلخواه بازمی گردد. بنابراین، این یک سیستم کلاینت-سرور است. اما این مدل دارای مشکلاتی است.
از آنجائیکه هر چیزی به سرور وابسته است، عملکرد صحیح سرور همیشه ضروری است و یک گلوگاه ایجاد می کند، اگر سرور اصلی متوقف شود، هر شخص در شبکه تحت تأثیر قرار خواهد گرفت. بعلاوه، مشکلات امنیتی وجود دارد. از آنجائیکه سرور متمرکز است، سرور حامل اطلاعات حساسی است. همچنین مسئله سانسور وجود دارد. اگر سرور یک آیتم خاص را قبول نکند می تواند از وجود آن در شبکه ممانعت به عمل بیاورد.
بنابراین، برای مواجه با تمام این مسائل، یک معماری شبکه دیگر مورد نیاز است. این شبکه به گونه ای است که بار شبکه بین مشارکت کنندگان توزیع می شود، که این افراد دارای امتیازات یکسانی هستند و به آن peer گفته می شود. در این سیستم یک سرور مرکزی وجود ندارد، در این سیستم چندین peer نامتمرکز و توزیع شده داریم و به آن شبکه peer-to-peer گفته می شود.
دلیل استفادهاز سیستم peer-to-peer:
یکی از کاربردهای مهم شبکه peer-to-peer به اشتراک گذاری فایل است، که به آن تورنتینگ هم می گویند. اگر می خواهید از مدل کلاینت-سرور برای دانلود استفاده کنید، باید بدانید این سیستم بسیار کند و وابسته به سلامت سرور است. بعلاوه، همانطور که گفتیم، در معرض سانسور قرار دارد.
اگرچه، در یک سیستم peer-to-peer، هیچ قدرت مرکزی وجود ندارد و بنابراین اگر یکی از peerها در شبکه از رقابت خارج شود، peer های دیگری برای دانلود وجود خواهد داشت. بعلاوه، در معرض استانداردهای ایده آلی که در سیستم های مرکزی وجود دارد خبری نیست، بنابراین در معرض سانسور قرار ندارد.
اگربخواهیم هر دو را کامل کنیم:
خاصیت نامتمرکز سیستم peer-to-peer با ورودمان به بخش بعدی مهم تر نیز می شود. ایده ساده ترکیب این شبکه دارای سیستم پرداخت صنعت مالی را با تولید رمزارز متحول کرده است.
اجازه دهید نگاهی به ساختار شبکه اتریوم بیاندازیم.
اتریوم به عنوان یک شبکه peer-to-peer سازمان یافته است، به طوری که مشارکت کنندگان یعنی peer ها یا همان نودها دارای امتیازاتی هستند. ایده یک شبکه برابر و عادلانه است. نودها دارای امتیاز خاصی نیستند، اگرچه، کارکرد و درجه مشارکت آنها ممکن است متفاوت باشد. هیچ سرور مرکزی وجود ندارد و رتبه بندی نیست. دارای توپولوژی یکنواخت است.
همه رمزارزهای نامتمرکز به این صورت ساختار یافته اند که یک دلیل ساده برای آن وجود دارد یعنی پایبندی به فلسفه وجودی. ایده داشتن یک سیستم ارزی است، که در آن با هر شخصی به طور برابر رفتار می شود و هیچ بدنه مدیریتی وجود ندارد. این برای اتریوم و بیت کوین درست است.
اگر هیچ سیستم مرکزی وجود نداشته باشد، چطور هر شخص در سیستم می فهمد که یک معامله خاص اتفاق افتاده است؟ شبکه از پروتکل سخن چینی استفاده می کند. در نظر بگیرید شایعه چگونه پراکنده می شود. فرض کنید آلیس 3 اتر برای باب ارسال کند. نودهای نزدیک به او از این آگاه می شوند و سپس به نودهای کناری خود اطلاع می دهند و این فرآیند تا آگاهی همه ادامه می یابد. نودها اساساً خویشاوند فضول و آزاردهنده شما هستند.
مفهوم نود در اتریوم یک کامپیوتر است که در شبکه اتریوم مشارکت می کند. این مشارکت از سه طریق صورت می گیرد:
همانطور که قبلاً اعلام کردیم، ایده سیستم peer-to-peer توزیع مسئولیت های شبکه بین نودهایی به نام peer است. هیچ کدام برتری نسبت به دیگری ندارد. افرادیکه تمایل دارند در سیستم همکاری داشته باشند ولی منابع سیستم را برای دانلود و نگهداری از بلاک چین کامل را ندارند می توانند یک کلاینت سبک شوند. در این مورد آنها دارای تضمین امنیت بالا در مورد وضعیت خاص اتریوم و همچنین قدرت کافی برای تأیید اجرای معاملات هستند.
هر کامپیوتری که به شبکه اتریوم وصل است، که همه قوانین اجماع اتریوم را اجرا می کند را یک نود کامل می نامند. یک نود کامل کل بلاک چین را در دسکتاپ کاربر دانلود می کند. نودهای کامل پشتوانه سیستم اتریوم بوده و کل شبکه را صادق نگه می دارد. برخی از قوانین اجماع که نودهای کامل اجرا می کنند شامل:
نودهای کامل اساساً نودها و معاملات را تأیید می کنند و اطلاعات را به نودهای دیگر انتقال می دهند (با استفاده از پروتکل شایعه پراکنی)
به زبان ساده تر، همه ماینرها نودهای کامل هستند، اما همه نودهای کامل ماینر نیستند. ماینرها باید نودکامل اجرا کنند تا به بلاک چین دسترسی داشته باشند. هر شخصی که نود کامل را اجرا می کند نیاز ندارد بلاک استخراج کند.
در شبکه اتریوم به منظور اجماع همه نودها در شبکه همه محاسبات را انجام می دهند و وقتی به یک اجماع رسیدند، معامله خوب در نظر گرفته می شود. حال، این روند ممکن است در ابتدا درست باشد، اما با افزایش پذیرش و تعداد معاملات مشکل ساز خواهد بود، نمودار زیر را در نظر بگیرید:
تعداد محاسباتی که شبکه باید انجام دهد قبل از آنکه به یک اجماع برسد به صورت نمایی افزایش می یابد. علاوه بر آن، مشکل دیگری بوجود می آید. اتریوم از پذیرش گسترده ای برخوردار است و این پذیرش بالا از پشتیبانی شرکت های بزرگ و محبوبیت عرضه اولیه ناشی می شود. درنتیجه، تعداد نودها در شبکه اتریوم به صورت نمائی افزایش می یابد. درحقیقت، این رمزارز دارای نودهای بسیار بوده و درنتیجه نامتمرکز است.
درحقیقت، تا می سال 2017، اتریوم دارای 25000 نود است و این درحالی است که رقیب او یعنی بیت کوین دارای 7000 بیت کوین می باشد. یعنی حدود 3 برابر بیشتر. درحقیقت، تعداد نودها از آپریل تا می 81 درصد افزایش داشته است که تقریباٌ دو برابر شده است.
حال ممکن است فکر کنید که داشتن نودهای بیشتر در شبکه ممکن است منجر به افزایش زمان معاملات شود. باید بدانید که اجماع به صورت خطی اتفاق می افتد. یعنی، فرض کنید نودهای A، B و C وجود داشته باشند.
برای اتفاق افتادن اجماع، در ابتدا A باید محاسبات را انجام داده و تأیید کند و سپس B همین کار را تکرار می کند و سپس C نیز به همین ترتیب.
اگرچه، اگر نود تازه ای در سیستم به نام نود D وجود داشته باشد، یک نود به سیسیتم اجماع افزوده می شود، که منجر به افزایش زمان معامله می شود. با افزایش محبوبیت اتریوم، زمان معاملات کندتر می شود.
درحقیقت، در تست سرعت، دیده شده که اتریوم 20 معامله در ثانیه انجام می دهد درحالیکه پیپال 193 و ویزا 1667 معامله را در هر ثانیه پردازش می کنند.
به یاد داشته باشید، اتریوم فقط یک ارز نیست، هدف آنها این است که تبدیل به چیزی شبیه به یک اینترنت شود. آنها افراد را ترغیب کرده اند تا DApp ها را بسازند تا بتوانند بر روی بلاک چین اجرا شوند. بدین منظور، آنها باید کاری برای مقیاس پذیری خود انجام دهند.
بدین منظور، سه پروپوزال مطرح شد:
بنابراین، یک راهکار افزایش سایز بلاک است. درحالیکه این راهکار ممکن است منجر به افزایش عملکرد با افزایش تعداد معاملات در یک بلاک شود، چندین مشکل در نتیجه آن بوجود می آید:
پروپوزال دیگر استفاده از بلاک چین های موازی به جای یک چین است. اساساً، به جای ساخت 50 DApp بر روی یک بلاک چین اصلی، دو بلاک چین داشته باشید و روی هر یک 25 DApp بر روی هر کدام اجرا کنید. در مورد این پروپوزال دو مشکل وجود دارد:
درنهایت، شاردینگ راهکار دیگری بود که در مورد اتریوم مطرح شد. قبل از آنکه در مورد شاردینگ دقیق تر شویم اجازه دهید دیدگاهی در مورد معنای آن داشته باشیم. فرض کنید سه نود A، B و C وجود داشته باشند و آنها بخواهند داده T را تأیید کنند. به جای آنکه A، B و C کل داده T را به طور فردی تأیید کنند، داده ها باید به 3 بخش تقسیم شوند: T1، T2 و T3. پس از آن A، B و C یک شارد را همزمان تأیید می کنند. همانطور که می بینید زمان زیادی با این رویکرد ذخیره می شود.
شاردینگ واژه ای است که از سیستم دیتابیس گرفته شده است. اجازه دهید بدانیم شاردینگ در حوزه دیتابیس به چه معنا است؟ فرض کنید شما یک دیتابیس بسیار بزرگ برای وب سایتتان داشته باشید. داشتن یک دیتابیس بزرگ نه تنها جستجو را کند می کند، اما همچنین در مقیاس پذیری نیز مشکل بوجود می آورد.
حال اگر یک تقسیم افقی در داده ها داشته باشیم و آنها را به جداول کوچکتر تبدیل کنیم و در دیتابیس های مختلف ذخیره کنیم چه اتفاقی می افتد؟
حال ممکن است بپرسید چرا تقسیم افقی و نه عمودی؟ به این دلیل که جداول به این صورت طراحی شده اند:
همانطور که می بینید، جدول یکسان است اما داده ها کمتر است. این دیتابیس های کوچکتر با نام شارد دیتابیس بزرگتر شناخته می شوند. هر شارد باید دارای ساختار جدول یکسانی باشد.
همانطور که می بینید، مشکل اجماع اتریوم این است که همه نودها باید همه محاسبات و تأییدات برای هر معامله را انجام دهند. این منجر می شود کل فرآیند خیلی کند و حجیم شود. اما شاردینگ چگونه می تواند این مشکل را رفع کند؟
وضعیت بلاک چین اتریوم را در نظر بگیرید که به آن وضیت گلوبال می گوییم، که برای هر شخصی قابل دیدن است. اجازه دهید به بررسی ریشه مرکل این وضعیت گلوبال بپردازیم. این وضعیت ریشه به شاردهای ریشه تقسیم می شوند و هر شارد دارای وضعیت خود است. این وضعیت ها به فرم یک درخت مرکل نشان داده می شوند.
حال اجازه دهید به بررسی عملکردهای داخلی بپردازیم.
سؤالی که مطرح می شود این است که چگونه شاردینگ منجر به تغییر بلاک چین می شود؟ یک بلاک نرمال در بیت کوین یا اتریوم به چه شکلی است؟
یک هدر و بدنه وجود دارد که شامل تمام معاملات در بلاک است. ریشه مرکل همه معاملات در هدر بلاک خواهد بود.
آیا بیت کوین به بلاک احتیاج دارد؟ آیا واقعاً به بلاک چین احتیاج دارد؟ ساتوشی چینی از معاملات را با داشتن هش معامله قبلی در معامله جدید ساخت، که به آن چین معاملاتی می گویند.
دلیل اینکه چرا آنها این کار را کردند این بود که یک سطحی از تعاملات را ایجاد کند و کل فرآیند را مقیاس پذیر کند. چیزی که اتریوم پیشنهاد می دهد این است که آنها این را به دو سطح تغییر دادند.
سطح اول:
سطح اول گروه معامله است. هر شارد دارای گروه خود است.
گروه معامله به هدر گروه معامله و بدنه گروه معامله تقسیم می شود.
هدر گروه معامله:
هدر به قسمت راست و چپ تقسیم می شود.
قسمت چپ:
سمت راست:
سمت راست پر از تأییدکنندگان تصادفی است که نیاز به تأیید در داخل شارد دارند. آنها به صورت تصادفی انتخاب می شوند.
بدنه گروه معامله:
دارای آیدی های معاملات در داخل شارد است.
ویژگی های سطح اول:
حال اجازه دهید به بررسی سطح دوم بپردازیم.
سطح دوم:
نترسید، درک آن خیلی هم سخت نیست.
بلاک چین نرمال داریم که دارای دو ریشه اصلی است:
ریشه وضعیت کل وضعیت را نشان می دهد و همانطور که قبلاً دیدیم، وضعیت به شارد تقسیم می شود که دارای زیروضعیت خود است.
ریشه گروه معامله شامل همه گروه های معامله در داخل آن بلاک خاص است.
ویژگی های سطح دوم:
چگونه ارتباطات بین شاردی اتفاق می افتد؟
مثال جزیره را دوباره در نظر بگیرید. شاردها اساساً شبیه به جزیره هستند. بنابراین چگونه این جزیره ها با یکدیگر ارتباط برقرار می کنند؟ به خاطر داشته باشید که هدف شارد ساختن چندین معامله موازی است که همزمان اتفاق می افتد تا عملکرد افزایش یابد. اگر اتریوم به ارتباطات بین شاردی تصادفی اجازه دهد، هدف شاردینگ را زیر پا گذاشته است.
پروتکل چه کاری باید انجام دهد تا امکان ارتباطات بین شاردی را فرآهم کند؟
اتریوم پارادایم دریافت کننده را برای ارتباطات بین شاردی انتخاب کرده است. شکل زیر را در نظر بگیرید:
همانطور که می بینید، هر دریافت کننده معامله می تواند به سادگی از طریق چندین درخت مرکل از ریشه مرکل گروه معامله در دسترس باشد. هر معامله در یک شارد دو کار انجام می دهد:
دریافت کنندگان در یک حافظه به اشتراک گذاشته شده توزیع شده ذخیره می شوند، که توسط شاردهای دیگر قابل دیدن است اما قابل تصحیح نیست. بنابراین، ارتباطات بین شاردی از طریق دریافت کنندگان به این صورت قابل انجام است:
نتیجه گیری:
با گسترش اتریوم و افزایش کاربران، روز به روز بر اهیمت شاردینگ افزوده شد. اگر اتریوم تصمیم داشته باشد که یک اینترنت جدید شود، باید مشکل مقیاس پذیری را حل کند. آنها به طور قطع نیاز به اجرای شاردینگ دارند تا اطمینان حاصل کنند که در حال رشد هستند.
در این راهنما در مورد نودهای اتریوم و شاردینگ آموختیم. البته اگر از یک سال اخیر در حوزه رمزارزها فعال بوده باشید خواهید دانست که مسئله ای به نام مقیاس پذیری برای بیت کوین واتریوم مطرح بوده است. بیت کوین این مشکل را با سگویت و فورک سخت به بیت کوین کش حل کرد. اتریوم از طرف دیگر، سعی می کند این مشکل را متفاوت حل کند. یکی از پروتکل هایی که می خواهند فعال کنند شاردینگ است. قبل از درک آن باید در مورد نود و شبکه اطلاعاتی داشته باشیم.