اتریوم قصد دارد تا طراحی مطلق بیتکوین را کنار بزند به طوری که توسعه دهندگان بتوانند برنامهها یا توافقهایی را که گامهای اضافی، قوانین جدید مالکیت، فرمتهای معامله جایگزین یا راههای مختلف برای انتقال دادهها دارند، را ایجاد کنند.
به گزارش جی پلاس، حالا که فهمیدیم اتریوم چیست باهم نگاه عمیقتری به آن میاندازیم تا ببینیم این پلتفرم چگونه عمل میکند.
در هنگام استفاده از اتریوم دیگر به هیچ نهاد ثالثی جهت ذخیره سازی و کنترل دادهها نیازی ندارید. برای انجام چنین کاری اتریوم به شدت از پروتکل و طراحی بلاکچین بیت کوین الهام گرفته است ولی در آن تغییراتی اعمال شده تا بتواند کاربردهایی فراتر از پول و اعمال مالی داشته باشد.
هدف زبان برنامه نویسی ( Turing-complete ) اتریوم این است که به توسعه دهندگان اجازه دهد برنامههای بیشتری را بنویسند که در آن معاملات و تراکنشهای بلاکچین بتوانند به صورت خودکار نتایج خاصی را مدیریت کنند.
این انعطاف پذیری شاید مهمترین نوآوری اتریوم باشد که در مقاله “قراردادهای هوشمندانه اتریوم چگونه کار میکنند” به آن پرداخته میشود.
بلاکچین اتریوم
ساختمان بلاکچین اتریوم بسیار شبیه به بیت کوین است به طوری که یک نسخه از تاریخ تمامی معاملات به شکل مشترک در آنها وجود دارد. هر گره (node) در شبکه یک کپی از این تاریخها را نگهداری میکند.
تفاوت بزرگ اتریوم در این است که در آن گرهها جدیدترین وضعیت هر قرارداد هوشمند بعلاوه تمام معاملات اتریوم را ذخیره میکنند. (این عملیات بسیار پیچیده تر از چیزی که گفته شد است ولی با کمک متن پایین میتوانید بهتر آن را درک کنید.)
برای هر برنامه کابردی اتریوم، شبکه نیاز به پیگیری وضعیت یا اطلاعات فعلی تمام این برنامهها از جمله مانده موجودی حساب هرکاربر، همه کدهای قرارداد هوشمند و جایی که تمامی اینها ذخیره میشوند را دارد.
بیتکوین با استفاده از محاسبه خروجیهای معاملات، مانده موجودی حساب هر شخص را مشخص میکند.
در حالی که خیلی پیچیده به نظر میرسد ولی این ایده بسیار ساده است. هربار که یک تراکنش بیتکوین صورت میگیرد شبکه این مقدار تراکنش را از ماندهی کل کسر میکند به طوریکه انگار در حال استفاده از پول کاغذی هستید، یعنی صدور بیت کوینها نیز به شکلی است که دادهها مشابه پولهای فیزیکی عمل میکنند.
برای انجام معاملات بعدی شبکه بیت کوین باید تمام تغییراتی را که شما انجام داده اید را به شبکه اضافه کند که به دستههای خرج شده و خرج نشده تقسیم میشوند.
از سوی دیگر اتریوم از حسابها استفاده میکند.
مانند پولهای درون یک حسابهای بانکی، پولهای اتریوم نیز در کیف پول وجود دارند و میتوانند به حسابهای دیگر منتقل شوند. این سرمایهها همیشه در نقطه مشخصی وجود دارند چیزی که شما میتوانید یک ارتباط مداوم بنامید.
ماشین مجازی اتریوم چیست؟
در اتریوم زمانی که یک برنامه استفاده میشود شبکه ای متشکل از هزاران کامپیوتر عمل پردازش را انجام میدهند.
قراردادهایی که در زمان برنامه نویسی به عنوان “قراردادهای هوشمند” نوشته شده اند به حالت بایتکد (bytecode) کامپایل میشوند که توسط یک ویژگی به نام ماشین مجازی اتریوم ( EVM ) قابل خواندن و اجرا میباشد.
تمام گرهها(node) این قرارداد را با استفاده از ماشینهای مجازی اتریوم(EVM) خود اجرا میکنند.
به یاد داشته باشید که هر گره در شبکه علاوه بر پیگیری وضعیت فعلی، دارای یک کپی از معامله و تاریخ قرارداد هوشمند شبکه است. هربار که کاربر یک عملیات را انجام میدهد تمامی گرهها در شبکه باید توافق کنند که این تغییرات رخ داده است.
هدف در اینجا این است که شبکه ای از ماینرها و گرهها مسئولیت انتقال تغییرات از حالتی به حالت دیگر را به جای برخی از پیشتازان و قدرتها در این صنعت همانند پیپال (PayPal) یا بانکها برعهده بگیرند. در بیت کوین این ماینرها هستند که تغییر مالکیت یک بیت کوین را از یک شخص به شخص دیگری تایید میکنند. ماشینهای مجازی اتریوم قراردادی را با هر قواعدی که توسعه دهنده در ابتدا برنامه ریزی کرده است، اجرا میکند.
محاسبات اصلی در ماشینهای مجازی از طریق یک زبان بایتکد به شکل دسته ای حاصل میشود( صفر و یکهایی که ماشین توانایی خواندن آن را دارد)، اما توسعه دهندگان میتوانند قراردادهای هوشمندانه را در زبانهای برنامهنویسی سطح بالایی همچون Solidity و Serpent بنویسند که برای همه خواندن و نوشتن آن آسان تر است.
همانطور که در راهنماهای قبلی توضیح داده شد ماینرها کسانی هستند که از رفتارهای بد جلوگیری میکنند، مانند اطمینان ازاینکه هیچ کس پول خود را بیشتر از یک بار برای همان معامله خرج نکند و رد قراردادهای هوشمندی که پرداختی برای انجام آن ثبت نشده است.
چندین هزار گره اتریوم وجود دارند که هرکدام در حال کامپایل و اجرای کدهای یکسانی هستند.
اما شما ممکن است فکر کنید که آیا انجام این محاسبات هزینه بیشتری نسبت به انجام آن در حالت معمول دارد؟ بله، به همین دلیل است که این شبکه تنها برای موارد خاص مورد استفاده قرار میگیرد.
آموزشهای رسمی توسعه دهندگان اتریوم این ناکارآمدی را تصدیق میکند.