مقالات اتریوم

آشنایی با اتریوم و تبدیل شدن به یک توسعه دهنده اتریوم

می خواهید یک توسعه دهنده اتریوم باشید؟ این راهنما به شما کمک می کند به سوی این هدف گام بردارید. با کوین ایران همراه باشید...

در این راهنما شما را با رمز ارز اتریوم آشنا خواهیم کرد . مطالبی که شما در این مقاله خواهید یافت شامل :

  • اتریوم چیست؟
  • استخراج اتریوم (Ethereum) چگونه انجام می شود؟
  • قرارداد های هوشمند چه هستند؟
  • ماشین مجازی اتریوم چیست؟
  • اتر و Gas چه هستند؟
  • Solidity چیست؟
  • Dapp و ICO چه هستند؟
  • کیف پول اتریوم چگونه کار می کند؟

در پایان این راهنما، شما شناخت کافی از مفاهیم برای این که یک توسعه دهنده (Ethereum) باشید، خواهید داشت.

توجه: بسیاری از موفقیت های شما به عنوان یک توسعه دهنده، وابسته به ابتکار عمل و میزان فعالیتی است که شخصا انجام می دهید. شما باید به طور مداوم دانش خود را به روز رسانی کنید.

راهنمای مطالعه نمایش

راهنمای تبدیل شدن به یک توسعه دهنده اتریوم (Ethereum)

راهنمای تبدیل شدن به یک توسعه دهنده اتریوم (Ethereum)

وب سایت اتریوم چنین تعریفی در مورد این رمزارز آورده است:

«اتریوم (Ethereum) یک پلتفرم غیر متمرکز است که قرارداد های هوشمند را اجرا می کند: برنامه هایی که طوری طراحی شده اند که بدون هیچ خرابی، سانسور، تقلب یا دخالت شخص ثالث اجرا شوند. این برنامه ها روی یک بلاکچین سفارشی ساخته شده اند، یک زیرساخت قدرتمند جهانی برای انتقال دارایی و مالکیت اموال.»

با تعریفی ساده تر، اتریوم در حال برنامه ریزی است تا پلتفرم آینده باشد. اگر در آینده غیر متمرکز بودن و Daap ها فراگیر شود، اتریوم جلودار و نقطه مرکزی این خدمات خواهد بود.

در حالی که بیت کوین اولین کاربرد فناوری بلاکچین می باشد، تنها در حد یک ارز قابلیت دارد؛ اما با اتریوم (Ethereum) هر کاری را که توسط تکنولوژی بلاکچین امکان پذیر است، می توان عملی کرد.

همان طور که دکتر گاوین وود (Gavin Wood)، یکی از بنیانگذاران اتریوم می گوید:

«بیت کوین اولین رمزارز و تنها در حد یک ارز است؛ که یکی از خاص ترین کاربرد های بلاکچین می باشد. در واقع، دامنه کاربرد بلاکچین می تواند بسیار وسیع تر باشد. به عنوان یک مثال مشابه، ایمیل یک استفاده خاص از اینترنت است و مطمئنا به شهرت آن کمک کرد، اما اینترنت کاربرد های بسیار بیشتری دارد.»

چگونه می توان اتریوم (Ethereum) استخراج کرد؟

در حال حاضر، اتریوم از همان پروتکل اثبات کار که بیت کوین به کار گرفته، استفاده می کند. با این حال، برنامه بعدی اتریوم استفاده از اثبات سهام و پروتکل Casper برای انجام تراکنش هاست.

اما تفاوت اثبات سهام و اثبات کار در چیست؟

اما تفاوت اثبات سهام و اثبات کار در چیست؟

اثبات کار: پروتکلی است که اکثر رمزارز های شناخته شده مانند اتریوم و بیت کوین تا کنون از آن استفاده می کردند؛ یعنی استخراج کنندگان رمزارز ها باید یک پازل رمزنگاری شده را با استفاده از سخت افزار های مخصوص حل کنند.

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

بیشتر بخوانید: چگونه دستگاه استخراج اتریوم بسازیم؟

برای اجرای «اثبات سهام»، اتریوم قصد دارد از الگوریتم توافق Casper استفاده کند. برای شروع، تصمیم بر این است که سیستم به سبک ترکیبی کار کند به طوریکه اکثر تراکنش ها از سبک اثبات کار استفاده کنند و در هر صد تراکنش یک بار اثبات سهام به کار گرفته شود. عملیاتی شدن اثبات سهام روی پلتفرم اتریوم (Ethereum) چه تاثیری در دنیای واقعی خواهد گذاشت؟ چه معنایی برای اتریوم و چه مزیت هایی برای پروتکل آن خواهد داشت؟ اجازه بدهید نگاهی بیندازیم.

مزایای اثبات سهام

  • هزینه انرژی و هزینه های کلی را کاهش می دهد: استخراج کنندگان بیت کوین در سراسر جهان حدود ۵۰ هزار دلار در ساعت برق مصرف می کنند؛ این یعنی، ۱.۲ میلیون دلار در روز، ۳۶ میلیون دلار در هر ماه و ۴۵۰ میلیون دلار در سال! با استفاده از «اثبات سهام»، شما تمام فرآیند را کاملا مجازی می کنید و تمام هزینه های آن قطع می شود.
  • عدم مزیت ASIC: از آنجا که کل فرایند مجازی خواهد بود، وابستگی به این که کدام سخت افزار یا ASIC  (مدار مجتمع با کاربرد خاص) بهتر است، وجود ندارد.
  • حمله ی ۵۱٪ سخت تر می شود: حمله ۵۱٪ زمانی رخ می دهد که یک گروه استخراج کنندگان بیش از ۵۰٪ از قدرت هش (hashing power) جهان را به دست آورد. با استفاده از اثبات سهام، این حمله منتفی است.
  • تخریب آزادانه تاییدیه ها: هر اعتبارسنجی که اموال خود را در بلاکچین رمزنگاری کرده است، اطمینان حاصل خواهد کرد که هیچ اشتباه یا تخریبی به زنجیره اضافه نمی شود، چرا که اشتباه در بلوک ها به قیمت از دست رفتن سرمایه تمام می شود.
  • ایجاد بلوک: ایجاد بلوک ها و درنتیجه کل فرایند سریعتر می شود.
  • مقیاس پذیری: با ارائه مفهوم “sharding” بلاکچین مقیاس پذیر تر می شود (در ادامه با تفصیل بیشتری به این موضوع خواهیم پرداخت).

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

ویتالیک بوترین در این باره توضیح می دهد:

«تصور کنید ۱۰۰ نفر اطراف یک میز گرد نشسته اند. یک نفر یک دسته کاغذ در دست دارد که هر کدام تاریخچه های متفاوتی از معاملات هستند. اولین شرکت کننده یک قلم بر می دارد و یکی را امضا می کند، سپس به فرد کناری می دهد و او نیز چنین می کند. ؛ اگر آنها تاریخچه معاملاتی را امضا کنند که امضا اکثر شرکت کنندگان در پایان آن آمده است، هر یک از شرکت کنندگان تنها ۱ دلار دریافت می کنند. اگر یک صفحه را امضا کنید و بعد صفحه متفاوتی را نیز امضا کنید، بازی را می بازید.»

او سپس افزود: به نظر می اید که این روش انگیزه خوبی برای امضا کاغذ صحیح می دهد.

قرارداد های هوشمند چه هستند؟

قرارداد های هوشمند چه هستند؟

قرارداد های هوشمند قرارداد های خودکار هستند. با شروط خاصی که در کد آن ها نوشته می شود به طور خودکار اجرا می شوند.

قرارداد های هوشمند به ما می گویند چطور کار های مختلف در اکوسیستم اتریوم انجام می شود. وقتی کسانی می خواهند بر بستر اتریوم کاری انجام دهد وارد یک قرارداد هوشمند می شوند.

قرارداد های هوشمند مجموعه ای از دستورالعمل ها با زبان برنامه نویسی “solidity” هستند که براساس منطق IFTTTیا (IF-THIS-THEN-THAT) کار می کند. اساسا، اگر اولین مجموعه از دستورالعمل ها انجام شود، آنگاه تابع بعدی به اجرا در می آید و به همین ترتیب ادامه پیدا می کند تا زمانی که قرارداد به پایان برسد.

بهترین راه برای درک آن این است که یک ماشین فروش خودکار (ماشین خودکاری که با انداختن پول در آن، کالای مورد نظر خارج می شود) را در نظر بگیرید؛ پس از انجام هر گام، گام بعدی به صورت خودکار اجرا می شود. این روش شبیه  اثر دومینو است. بنابراین، فرایند ماشین فروش خودکار را تشریح می کنیم:

  • گام ۱: پول را داخل ماشین فروش خودکار بیندازید.
  • گام ۲: دکمه محصول مورد نظر خود را فشار دهید.
  • گام ۳: محصول خود را بردارید.

حال فرض کنید محصولاتی از یک ماشین فروش خودکار در شبکه اتریوم (Ethereum) می خرید، گام ها چطور خواهند بود؟

گام ۱: مقداری پول وارد ماشین فروش خودکار می کنید که توسط تمام نود های شبکه اتریوم ثبت و دفتر کل با این تراکنش به روزرسانی می شود.

گام ۲: شما دکمه آیتم مورد نظر خود را فشار می دهید که باعث ثبت و به روزرسانی دفتر کل شبکه اتریوم می شود.

گام ۳: محصول مورد نظر را دریافت می کنید که تمام نود ها این را ثبت می کنند و دفتر کل به روزرسانی می شود.

هر معامله ای که شما از طریق قرارداد های هوشمند انجام می دهید، ثبت و شبکه به روزرسانی می شود. این نوع قرارداد طرفین را درگیر می کند و باعث می شود نسبت به اعمالشان پاسخگو باشند. بدین صورت، هر کاری که در شبکه انجام می شود برای کل شبکه قابل مشاهده است.

ماشین مجازی اتریوم (Ethereum) چیست؟

پیش از این که با ماشین مجازی اتریوم (EVM) آشنا شویم، باید بفهمیم چرا به «ماشین مجازی» نیاز است. اجازه دهید به قرارداد های هوشمند برگردیم.

چه ویژگی هایی در قرارداد های هوشمند برای ما مطلوب هستند؟

هر چیزی که در بلاکچین اجرا می شود باید تغییر ناپذیر باشد و توانایی اجرا را از طریق گره های چندگانه بدون به خطر انداختن یکپارچگی را داشته باشد. در نتیجه، عملگر های قرارداد های هوشمند به این سه ویژگی نیاز دارند:

  • قطعیت (Deterministic)
  • قابلیت فسخ (Terminable)
  • جدایی پذیری (Isolated)
ویژگی شماره ۱: قطعیت

یک برنامه قطعی است اگر در ازای یک ورودی ثابت، هر بار خروجی ثابتی بدهد. به عنوان مثال، اگر ۳+۱=۴ است همیشه جواب ۳+۱، ۴ خواهد بود (با فرض مبنای عددی مشابه). بنابراین وقتی یک برنامه خروجی مشابهی برای مجموعه ای از داده های تکراری در دفعات متعدد می دهد، آن برنامه را قطعی گوییم.

لحظات مختلفی وجود دارد که یک برنامه ممکن است به شیوه غیر قطعی عمل کند:

فراخوانی توابع سیستمی غیر قطعی: هنگامی که یک برنامه نویس یک تابع غیر قطعی را در برنامه خود فراخوانی می کند.

منابع اطلاعاتی غیر قطعی: اگر برنامه حین اجرا، به داده ای نیاز داشته باشد و منبع داده غیر قطعی باشد، برنامه غیر قطعی خواهد شد. به عنوان مثال، فرض کنید برنامه ای به ۱۰ جستجوی برتر برای یک جستجوی خاص نیاز دارد؛ احتمالا این لیست مدام تغییر می کند.

فراخوانی های پویا: زمانی که یک برنامه، برنامه دیگری را فراخوانی می کند، فرایند را فراخوانی پویا می نامند. از آنجایی که هدف فراخوانی فقط حین اجرا قطعیت دارد، به طور طبیعی با عدم قطعی مواجهیم.

ویژگی شماره ۲: قابلیت فسخ

در منطق ریاضیات خطایی به نام «مساله توقف» داریم. اساسا، حالتی مد نظر است که نمی توان فهمید آیا برنامه داده شده قابلیت اجرا در زمان محدود را دارد یا بینهایت بار تکرار می شود. در سال ۱۹۳۶، آلن تورینگ (Alan Turing)، با استفاده از مساله قطری سازی کانتور، اثبات کرد که هیچ راهی برای این که بفهمیم یک برنامه خاص در زمان محدود به پایان می رسد یا نه، وجود ندارد.

این یک مشکل مشهود در قرارداد های هوشمند است؛ چرا که قرارداد ها باید در زمان معین به پایان برسند. اقداماتی برای اطمینان از «اتمام» قرارداد با دخالت خارجی و جلوگیری از ورود قرارداد به حلقه بی پایانی که موجب هدر رفت منابع می شود،‌ انجام شده است.

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

روی یک بلاکچین، همه می توانند یک قرارداد هوشمند آپلود کند. بدین ترتیب، قرارداد ها ممکن است (آگاهانه یا ناآگاهانه) حاوی ویروس و باگ هایی باشند. اگر این قرارداد ها ایزوله نشوند، ممکن است کل سیستم را مختل کنند. از این رو، ایزوله بودن یک اصل برای قرارداد های هوشمند است تا اثر مخربی روی اکوسیستم نگذارند.

حال که این ویژگی ها را تشریح کردیم، لازم است با نحوه اجرا آشنا شویم. قرارداد های هوشمند معمولا در یکی از این دو سیستم اجرا می شوند:

  • ماشین های مجازی: اتریوم (Ethereum) از این سیستم استفاده می کند.
  • داکر (Docker): Fabric از این سیستم استفاده می کند.

اجازه دهید این دو را مقایسه کنیم و تعیین کنیم که چه چیزی برای یک اکوسیستم بهتر است. به خاطر سادگی ما می خواهیم اتریوم (ماشین مجازی) را با Fabric (Docker) مقایسه کنیم.

ماشین مجازی

داکر

قطعیت

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

قابلیت فسخ

اتریوم (Ethereum) از برآوردگر هزینه برای محدود کردن استفاده می کند. هزینه هر گام در قرارداد ها «gas» است و زمانی که هزینه gas از پیش پرداخت بیشتر شود، قرارداد مختومه می گردد.Fabric از تایمر استفاده می کند. با این حال، ممکن است تایمر از نودی به نود دیگر متفاوت باشد، چرا که هر نود قدرت محاسباتی خود را دارد که یک ریسک برای فرایند اجماع است.

جذایی پذیری

ویژگی جدا کنندگی خوبی دارد.وابسته به فضای اسمی است و قادر به ایزوله ی مناسب نمی باشد.

بنابراین، همان طور که مشاهده می شود، ماشین های مجازی، محیط قطعی، با محدودیت زمانی و جدایی پذیر برای قرارداد های هوشمند فراهم می کنند. با این حال، dockers به وضوح دارای یک مزیت است؛ انعطاف پذیری زبان برنامه نویسی را دارد، در حالی که در یک ماشین مجازی (VM) مانند اتریوم، نیاز به یادگیری یک زبان کاملا جدید (solidity) برای ایجاد قرارداد های هوشمند است.

EVM ماشین مجازی ای است که تمام قرارداد های هوشمند اتریوم را عملیاتی می کند. یک ماشین مجازی ساده با قدرت تورینگ کامل ۲۵۶ بیتی است. تورینگ کامل، یعنی با توجه به منابع و حافظه، هر برنامه ای که در EVM اجرا می شود، می تواند هر مشکلی را حل کند.

برای نوشتن قرارداد های هوشمند در EVM، نیاز به یادگیری زبان برنامه نویسی Solidity داریم.

Solidity چیست؟ هر کسی که قصد ایجاد یک قرارداد هوشمند را دارد، یادگیری زبان برنامه نویسی Solidity یک نیاز مبرم برای او محسوب می شود. این مقاله یک راهنمای دقیق درمورد این زبان است. در ادامه یک مرور کلی از آن ارائه می دهیم؛ سپس به بررسی کیف پول های اتریوم می پردازیم. Solidity توسط Gavin Wood، Christian Reitwiessner، Alex Beregszaszi، Yoichi Hirai و چندین نفر از عوامل اصلی و سابق اتریوم (Ethereum) توسعه داده شد تا توانایی نوشتن قرارداد های هوشمند بر بستر پلتفرم های بلاکچینی همچون اتریوم (Ethereum)، فراهم شود.

Solidity هدفمندانه طراحی شده است، زبانی که وابسته به نوع متغیر نیست (loosely-typed language) و بسیار شبیه به ECMAScript (Javascript) می باشد. بهتر است برخی نکات کلیدی از سند منطقی طراحی اتریوم را یادآوری کنیم. مثلا این که با مدل stack-and-memory با سایز کلمات اجرایی ۳۲ بایت کار می کند.

چطور می توانیم یک توسعه دهنده اتریوم (Ethereum) شویم؟ (قسمت دوم)

ماشین مجازی اتریوم (EVM) دسترسی به برنامه های «stake» را به ما می دهد که شبیه به یک فضای نگاشتن، می توان آدرس های حافظه را برای ایجاد یک برنامه Counter loop/jump (برای کنترل متوالی برنامه) به آن چسباند؛ نیز، یک «حافظه» موقت قابل ارتقا و یک «storage» دائمی که در واقع در یک بلاکچین دائمی نوشته شده است و مهمتر آنکه EVM نیازمند قاطعیت کامل در قرارداد های هوشمند است.

توجه: اتریوم در حال برنامه ریزی است تا در نهایت زبان خود را از Solidity به Viper تغییر دهد.

با این تفاسیر، پیش از ادامه بحث اجازه دهید یک مثال از قرارداد پایه Solidity بزنیم (کد ها از github گرفته شده اند.)

اجازه دهید یک حلقه while ساده را در Solidity اجرا کنیم:

contract BasicIterator
{
address creator; // reserve one "address"-type spot
uint8[10] integers; // reserve a chunk of storage for 10 8-bit unsigned integers in an array
function BasicIterator()
{
creator = msg.sender;
uint8 x = 0;
//Section 1: Assigning values
while(x < integers.length) {
integers[x] = x;
x++;
} }
function getSum() constant returns (uint) {
uint8 sum = 0;
uint8 x = 0;
//Section 2: Adding the integers in an array.
while(x < integers.length) {
sum = sum + integers[x];
x++;
}
return sum;
}
// Section 3: Killing the contract
function kill()
{
if (msg.sender == creator)
{
suicide(creator);
}
}
}

خب، حال بیایید کد را تحلیل کنیم. برای فهم ساده تر، کد را به سه قسمت تقسیم می کنیم:

بخش ۱: اختصاص مقادیر

در گام اول، یک آرایه از «اعداد صحیح» را در ۱۰ ۸-bit با اعداد صحیح بدون علامت پر می کنیم. این کار را با یک حلقه while  انجام می دهیم. اجازه دهید نگاهی به اتفاقات درون حلقه while بیندازیم.

while(x < integers.length) {   integers[x] = x;   x++;   }

توجه کنید که مقدار صفر را به متغیر صحیح (integer) x داده بودیم. حلقه while از ۰ تا integers.length اجرا می شود. Integers.length یک تابع است که حداکثر ظرفیت آرایه را باز می گرداند. بنا براین، اگر می خواهیم یک آرایه ۱۰ عدد صحیح داشته باشد، arrayname.length، ۱۰ مقدار باز می گرداند. در حلقه بالا، مقدار x از ۰ تا ۹ (<۱۰) بود و مقدار خود را به آرایه عدد صحیح منتقل می کرد. بنابراین، پس از پایان حلقه، اعداد صحیح مقادیر زیر را دارند: ۰،۱،۲،۳،۴،۵،۶،۷،۸،۹.

بخش دوم: اضافه کردن محتوای آرایه‌ای

قصد داریم محتویات آرایه خود را به تابع getSum اضافه کنیم. روشی که برای انجام این کار در نظر می‌گیریم، تکرار همان حلقه while، مشابه کاری که در بالا انجام شد، است و متغیر «sum» را برای افزودن محتوا از آرایه استفاده می کنیم.

بخش سوم: خاتمه قرارداد

این تابع قرارداد را خاتمه می دهد و سرمایه ‌ی باقی مانده در قرارداد را به سازنده قرارداد باز می گرداند.

زمانی که راجع به اشتیاق و انگیزه‌ ی پشت پرده‌ی solidity سؤال شد، Dr.Gavin Woods گفت:

«این زبان [solidity] قرار بود تا یک ابزار سطح بالا برای توسعه‌ی قرارداد هایی باشد که در نهایت می‌توانند هم به توسعه دهندگان و هم به کاربر ها اطلاعات مفیدی راجع به این که کد چطور کار می کند، بدهند. برای کمک به چنین برنامه ای، من NatSpec، یک نوع فرمت قرارداد اسنادی، را طراحی کردم و آن را شهروند درجه یک Solidity قرار دادم. همچنین یک زیرمجموعه‌ی زبان رسمی اصلاحی را (که هنوز اجرایی نشده است) برای به حداکثر رساندن انواع ضمانتنامه ‌های اعتباری که قابل ساخته شدن هستند را پیشنهاد دادم.

من رویداد هایی همچون شهروند درجه یک را در زبان Solidity برای تهیه ی یک چکیده خوب برای LOG های مشابه در فرم به فراخوان های تابعی، معرفی کردم. الهام این کار را از  Qt meta-object سیستم های «signals» گرفتم.

ویژگی بعدی که من و Christian R. همراه با هم به آن پی بردیم تابع اصلاح کننده‌ بود، که اجازه می‌داد ویژگی ها به عنوان قسمتی از تابع امضا قرار بگیرند تا اصلاحاتی بر بدنه تابع انجام دهند. به بیان واضح‌ تر، این یک اصطلاح است که به خوبی در محیط برنامه نویسی قراردادگرا جا می افتد.

Ether و Gas چه هستند؟

Ether توکن اصلی اکوسیستم است. همان چیزی که به طرفین قرارداد انگیزه می دهد تا قرارداد هوشمندشان را به پایان برسانند.

Gas سوخت مورد نیاز برای برآوردن تمام نیاز های یک قرارداد مشخص شده است.
هنگامی که کسی یک قرارداد هوشمند ارائه می دهد، ارزش سوخت از پیش تعیین شده است. هنگام اجرای قرارداد، هر مرحله نیاز به مقدار مشخصی سوخت برای اجرایی شدن دارد.
این شیوه ممکن است به دو سناریو منجر شود:

  • سوخت مورد نیاز بیشتر از حد مجاز است. اگر چنین شود، وضعیت قرارداد به حالت اصلی خود باز می گردد و تا زمانی که سوخت تمام شود اعتبار دارد.
  • سوخت مورد نیاز کمتر از حد مجاز است. در صورتی که این مورد رخ دهد، قرارداد خاتمه می یابد و سوخت باقی مانده به قرارداد دیگری تعلق می گیرد.

نمودار زیر میانگین قیمت سوخت در Wei را نشان می دهد.

Ether و Gas چه هستند؟
What is Ether and Gas?

Gas مایه حیات اتریوم است

تمام معاملات اتریوم (Ethereum) توسط استخراج کنندگان تایید شده اند. اساسا آنها باید تمام تراکنش ها را به صورت دستی داخل بلوکی که در حال استخراج آن هستند قرار دهند تا تراکنش ها تایید شوند. در عوض خدماتشان، مقدار مشخصی از کارمزد تراکنش ها را جمع آوری می کنند.

معمولا قرارداد های هوشمند با هزینه سوخت بالا ترجیح داده می شوند؛ چرا که استخراج کنندگان شانس به دست آوردن کارمزد بالاتری را خواهند داشت. اگرچه کارمزد های جمع آوری شده هنوز نسبت به بیت کوین بسیار ناچیز هستند. نمودار ذیل نشان دهنده ی مقایسه کارمزد تراکنش های بیت کوین و اتریوم است.

Gas مایه حیات اتریوم است
How crucial gas might be for ethereum network

در واقع، همان طور که می بینید، در تراکنشی به ارزش ۰.۰۱ اتر تنها ۰.۰۰۰۰۰۰۰۰۰۰۰۰۰۲  اتر به عنوان کارمزد تراکنش محاسبه می شود که از ۰.۰۰۰۰۰۱$ کمتر است.

بنابراین، همان طور که مشاهده می کنید، استخراج کنندگان اتریوم، کارمزد تراکنش بسیار پایینی دریافت می کنند. بدیهی است که جمع آوری کارمزد تراکنش ها وظیفه ثانویه استخراج کنندگان است و وظیفه اصلی آنها استخراج کردن است.

ایجاد Dapp ها و ICO ها

یکی از هیجان انگیز ترین ویژگی های اتریوم (Ethereum) به وضوح این است که پلتفرمی به کاربران ارائه می دهد تا اپلیکیشن های غیر متمرکز (Dapp) خودشان را بسازند.

هرکسی در هر جایی می تواند Dapp خودش را بسازد و از طریق آن و فقط با ارائه یک وایت پیپر (whitepaper) برای یک ICO به جذب سرمایه بپردازد.

نوشته های مرتبط: همه چیز در مورد ICO ها!لیست کردن توکن یک ICO در صرافی ها چقدر هزینه دارد؟

این یکی از ویژگی های هیجان انگیز و خطرناک اتریوم است. در حقیقت، با خوش شانسی می توانید مقدار سرگیجه آور پولی که اخیرا توسط این ICO ها جمع آوری شده است را ببینید.

اتریوم به طور گسترده مورد استقبال قرار گرفته زیرا ICO های برخی از بزرگ ترین و مشهور ترین شرکت ها را پشتیبانی کرده است. در نتیجه، تعداد نود های روی شبکه اتریوم به صورت نمایی افزایش یافت. در حقیقت، رمزارزی با بیشترین نود و در نتیجه غیر متمرکز ترین است.

در واقع، در ماه می سال ۲۰۱۷، اتریوم (Ethereum) ۲۵۰۰۰ نود داشت؛ در مقایسه با ۷۰۰۰ نود بیت کوین! که کمی بیش از سه برابر است. در واقع، تعداد نود های اتریوم از آپریل تا می ۸۱٪ افزایش داشتند … حدودا دو برابر!

می خواهم توسعه دهنده Dapp باشم

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

افزونه مرورگر MetaMask نیز وجود دارد که گوگل کروم را به مرورگر اتریوم (Ethereum) تبدیل می کند. MetaMask به همه این امکان را می دهد که به راحتی اپلیکیشن های غیر متمرکز را اجرا کنند و یا توسعه دهند. اگر چه در ابتدا به عنوان یک افزونه Chrome ساخته شد، MetaMask در نهایت از فایرفاکس و طیف وسیعی از سایر پلتفرم های وب نیز پشتیبانی خواهد کرد.

در حالی که هنوز روزهای ابتدایی Mist، MetaMask و انواع دیگر مرورگرها است، به نظر می رسد دسترسی به برنامه های مبتنی بر بلاکچین، برای عده بیشتری از مردم نسبت به قبل فراهم شده است. حتی افراد بدون داشتن پیش زمینه فنی هم، اکنون توانایی بالقوه ایجاد برنامه های بلاکچینی را دارند. این یک جهش انقلابی برای فناوری بلاکچین است که بتواند اپلیکیشن های غیر متمرکز را به جریان اصلی تبدیل کند.

استفاده از کیف پول های اتریوم (Ethereum)

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

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

کیف پول کاغذی چیست؟

کیف پول کاغذی یک روش ساده نگهداری و ذخیره سازی رمزارز ها به صورت آفلاین است.

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

ایجاد یک کیف پول کاغذی

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

اگر با خواندن این مطالب گیج شدید، اصلا نگران نباشید. شما نیاز به هیچ گونه دانش برنامه نویسی یا رمزنگاری ندارید. تمام چیزی که نیاز دارید یک کامپیوتر، اتصال به اینترنت و چیز هایی برای ذخیره کلید هایتان است:

توجه!

دیدگاه هایی که در این مقاله ارائه شده اند، متعلق به نویسنده می باشند و لزوماً مربوط به Coiniran نمی باشد و نباید به آن نسبت داده شود.

منبع

 

https://coiniran.com/?p=20077
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
دکمه بازگشت به بالا
0
دیدگاه خود را با کوین ایران به اشتراک بگذارید!x