معرفی اتریوم
آخرین ویرایش: , Invalid DateTime
زنجیرهی بلوکی چیست؟
زنجیرهی بلوکی یک پایگاه دادهی عمومی است که بر روی رایانههای متعددی در یک شبکه، بهروزرسانی شده و به اشتراک گذاشته میشود.
کلمهی «بلوک» به داده و وضعیتی اشاره دارد که در گروههای متوالی داده که با عنوان «بلوکها» شناخته میشوند، ذخیره میشود. اگر مقداری اتر برای فردی ارسال کنید، برای موفقیتآمیز بودن تراکنش، اطلاعات آن باید درون یک بلوک قرار گیرد.
«زنجیره» به این واقعیت اشاره دارد که هر بلوک، به صورت رمزنگاریشده به بلوک قبل از خود ارجاع دارد. به عبارت دیگر، بلوکها به یکدیگر زنجیر میشوند. اگر دادههای موجود در یکی از بلوکها تغییر داده شود، کلیه بلوکهای بعد از آن نیز باید تغییر کنند، که متعاقباً برای انجام چنین تغییری تمام شبکه باید در مورد آن به توافق برسند.
همه رایانههای درون شبکه باید با هر بلوک جدید و نیز کل زنجیرهی بلوکها موافقت داشته باشند. این رایانهها بهعنوان «گره» شناخته میشوند. گرهها اطمینان حاصل میکنند همه افرادی که با زنجیرهی بلوکی تعامل میکنند دادههای یکسانی در اختیار داشته باشند. برای دستیابی به چنین توافقی، زنجیرههای بلوکی به یک مکانیزم اجماع نیاز دارند.
در حال حاضر اتریوم از یک مکانیزم اجماع اثبات کار استفاده میکند. بدین معنی که هر فردی بخواهد بلوک جدیدی به زنجیره اضافه کند، باید یک معادلهی پیچیده را حل کند که نیازمند قدرت پردازشی بسیار زیادی است. حل کردن معادله «ثابت میکند» که شما «کار» مورد انتظار را با استفاده از منابع پردازشی انجام دادهاید. به این فرایند استخراج گفته میشود. استخراج عموماً مستلزم آزمون و خطای بسیار زیادی است، اما افزودن موفقیتآمیز یک بلوک جدید با دریافت اتر بهعنوان پاداش همراه است.
بلوکهای جدید به کلیه گرههای شبکه ارسال میشوند و توسط آنها بررسی و تایید میشوند. بدین ترتیب وضعیت زنجیرهی بلوکی برای همه بهروزرسانی میشود.
پس بهطور خلاصه، وقتی برای کسی اتر میفرستید، تراکنش مورد نظر باید ضرب شده و در یک بلوک جدید گنجانده شود. سپس وضعیت جدید با کل شبکه به اشتراک گذاشته میشود.
در این ویدئو آستین شما را قدم به قدم با زنجیرهی بلوکی آشنا میکند:
برای اینکه ببینید چگونه زنجیرهی بلوکی دادهها را «هش» میکند و چگونه یک بلوک به کلیه بلوکهای قبلی خود ارجاع میدهد، این دمو(opens in a new tab) که توسط آندِرس براونورث تهیه شده است را مشاهده کرده و ویدئوی مربوط به آن را در زیر تماشا کنید.
توضیحات آندِرس را در رابطه با «هش» در زنجیرهی بلوکی تماشا کنید:
اتریوم چیست؟
در دنیای اتریوم، یک رایانه واحد و مرکزی وجود دارد (به نام ماشین مجازی اتریوم یا EVM) که وضعیت آن مورد توافق همهی افراد حاضر در شبکه اتریوم است. همهی شرکتکنندگان در شبکهی اتریوم (همهی گرههای اتریوم) یک رونوشت از وضعیت این رایانه را نگهداری میکنند. علاوه بر این، هر شرکتکننده میتواند درخواستی برای انجام محاسبات دلخواه به این رایانه ارسال کند. هرگاه چنین درخواستی منتشر گردد، سایر شرکتکنندگان در شبکه آن را بازبینی میکنند، تأیید میکنند و محاسبات مورد نظر را انجام می دهند («اجرا» میکنند). اجرای این محاسبات موجب تغییر وضعیت در EVM میگردد، که در کل شبکه کامیت شده و منتشر میشود.
درخواست انجام محاسبه درخواست تراکنش نامیده میشود؛ تاریخچهی کلیهی تراکنشها و وضعیت فعلی EVM روی زنجیرهی بلوکی ذخیره میشود، که متقابلاً تمام گرههای شبکه در مورد آن توافق دارند و آن را ذخیره میکنند.
مکانیزمهای رمزنگاری اطمینان حاصل میکند به محض اینکه تراکنشها بهعنوان تراکنش معتبر تأیید شده و به زنجیرهی بلوکی اضافه شدند، دیگر قابل دستکاری نباشند. همین مکانیزمها همچنین اطمینان حاصل میکننده هر تراکنشی با «مجوزهای» مناسب امضا شوند و اجرا شوند (هیچکس غیر از آلیس نباید بتواند از حساب آلیس برداشت سرمایههای دیجیتال ارسال کند).
اتر چیست؟
اتر (ETH) ارز رمزنگاریشده بومی اتریوم است. هدف اتر فراهمسازی امکان محاسبه برای بازار است. چنین بازاری یک مشوق اقتصادی برای شرکتکنندگان جهت تأیید و اجرای درخواستهای تراکنش و فراهمسازی منابع محاسباتی برای شبکه ایجاد میکند.
هر شرکتکنندهای که درخواست تراکنشی را پخش میکند باید مقداری اتر را هم بهعنوان جایزه به شبکه ارائه دهد. این جایزه به کسی تعلق میگیرد که در نهایت کارِ تأیید تراکنش، اجرای آن، کامیت کردن آن به زنجیرهی بلوکی و پخش آن در شبکه را انجام دهد.
مقدار اتر پرداختشده با زمان موردنیاز برای انجام محاسبه تطابق دارد. این جایزهها همچنین مانع از این میشوند که شرکتکنندگان بداندیش بتوانند عمداً با درخواست اجرای محاسبات بینهایت یا سایر اسکریپتهای پرمصرف شبکه را مسدود کنند، زیرا این شرکتکنندگان باید هزینهی زمان محاسبه را بپردازند.
قراردادهای هوشمند چه هستند؟
در عمل، شرکتکنندگان هر بار که میخواهند محاسبهای در EVM درخواست کنند، کد جدیدی نمینویسند. در عوض، توسعهدهندگان برنامهها، دستوراتی (قطعههای قابلاستفادهی مجدد از کد) را در وضعیت EVM بارگذاری میکنند و کاربران درخواستهایی را برای اجرای این قطعهکدها با پارامترهای متفاوت ارائه میدهند. ما برنامههای بارگذاریشده روی شبکه و اجرا شده توسط شبکه را قراردادهای هوشمند مینامیم.
در سطحی بسیار ابتدایی، میتوانید یک قرارداد هوشمند را مشابه یک دستگاه فروش خودکار در نظر بگیرید: اسکریپتی که وقتی با پارامترهای خاصی فراخوانی میشود، در صورت برآورده شدن شرایط خاص، برخی اقدامات یا محاسبات را انجام میدهد. بهعنوان مثال، اگر تماسگیرنده اتر را به گیرندهی خاصی ارسال کند، یک قرارداد هوشمند سادهی فروشنده میتواند مالکیت یک دارایی دیجیتال را ایجاد و به آن اختصاص دهد.
هر توسعهدهنده ای میتواند با استفاده از زنجیرهی بلوکی بهعنوان لایهی داده، در ازای هزینهای که به شبکه میپردازد، یک قرارداد هوشمند بسازد و آن را برای شبکه عمومی کند. سپس هر کاربر میتواند دوباره با پرداخت هزینهای به شبکه، قرارداد هوشمند را برای اجرای کد آن فراخوانی کند.
بنابراین، با قراردادهای هوشمند، توسعهدهندگان میتوانند برنامههای کاربردی و سرویسهای دلخواه پیچیدهای را بسازند و بهکار بگیرند که با کاربر مواجه هستند، مانند: بازارها، ابزارهای مالی، بازیها و غیره.
اصطلاحشناسی
زنجیرهی بلوکی
دنبالهای از تمام بلوکهایی که در تاریخچهی شبکه به شبکه اتریوم کامیت شدهاند. دلیل این نامگذاری آن است که هر بلوک حاوی یک ارجاع به بلوک قبلی است، که به ما کمک میکند ترتیب تمام بلوکها (و در نتیجه تاریخچهی دقیق) را حفظ کنیم.
اتر
ارز رمزنگاریشدهی بومی اتریوم. کاربران به سایر کاربران اتر میپردازند تا درخواستهای اجرای کد آنها اجرا شود.
ماشین مجازی اتریوم (EVM)
ماشین مجازی اتریوم یک رایانهی مجازی جهانی است که هر شرکتکننده در شبکهی اتریوم وضعیت آن را ذخیره میکند و با آن موافق است. هر شرکتکننده میتواند اجرای کد دلخواه را در EVM درخواست کند و اجرای کد، وضعیت EVM را تغییر میدهد.
گره
ماشینهای واقعی که وضعیت EVM را ذخیره میکنند. گرهها با یکدیگر ارتباط برقرار میکنند تا اطلاعات مربوط به وضعیت EVM و تغییرات وضعیت جدید را منتشر کنند. هر کاربر همچنین میتواند با پخش یک درخواست اجرای کد از یک گره، اجرای آن کد را درخواست کند. شبکهی اتریوم خود مجموعهای از تمام گرههای اتریوم و ارتباطات آنها است.
حساب
جایی که اتر در آن ذخیره میشود. کاربران میتوانند حساب بسازند، اتر را به حساب واریز کنند و اتر را از حسابهای خود به حسابهای سایر کاربران منتقل کنند. حساب و ماندهحساب در جدولی بزرگ در EVM ذخیره میشوند؛ آنها بخشی از وضعیت کلی EVM هستند.
تراکنشها
«درخواست تراکنش» اصطلاح رسمی برای اشاره به درخواست اجرای کد در EVM است و «تراکنش» یک درخواست تراکنش انجامشده و تغییر مربوطه در وضعیت EVM است. هر کاربر میتواند درخواست تراکنش را از یک گره به شبکه ارسال کند. برای اینکه درخواست تراکنش بر وضعیت EVM توافقشده تأثیر بگذارد، باید توسط گرهی دیگری تأیید شود، اجرا شود و «به شبکه کامیت شود». اجرای هر کدی باعث تغییر وضعیت در EVM میشود. در صورت کامیت شدن، این تغییر وضعیت در تمامی گرههای شبکه پخش میشود. چند نمونه از تراکنشها:
- ارسال X اتر را از حساب من به حساب آلیس.
- اجرای تعدادی کد قرارداد هوشمند را در وضعیت EVM.
- اجرای کد قرارداد هوشمند موجود در آدرس X در EVM با آرگومان Y.
اطلاعات بیشتر در مورد تراکنشها
بلوکها
حجم تراکنشها بسیار زیاد است، بنابراین تراکنشها به صورت دستهای یا بلوکی «کامیت» میشوند. بلوکها معمولا شامل دهها تا صدها تراکنش هستند.
اطلاعات بیشتر در رابطه با بلوکها
قراردادهای هوشمند
یک قطعه کد قابلاستفاده مجدد (یک برنامه) که یک توسعهدهنده آن را در وضعیت EVM منتشر میکند. هر کسی میتواند با درخواست تراکنش، درخواست کند که کد قرارداد هوشمند اجرا شود. از آنجایی که توسعهدهندگان میتوانند با انتشار قراردادهای هوشمند، برنامههای اجرایی دلخواه را در EVM (بازیها، بازارها، ابزارهای مالی و غیره) بنویسند، اینها اغلب dappها یا برنامههای غیرمتمرکز نیز نامیده میشوند.
اطلاعات بیشتر درباره قراردادهای هوشمند
بیشتر بخوانید
آیا منبعی اجتماعی میشناسید که به شما کمک کرده باشد؟ این صفحه را ویرایش کنید و آن را اضافه کنید!
آموزشهای مرتبط
- راهنمایی برای توسعهدهندهی اتریوم، قسمت 1 – یک کاوش بسیار مبتدی در اتریوم با استفاده از Python و web3.py