چگونه با استفاده از قراردادهای هوشمند اتریوم اوراکل خود را بسازیم؟ هوش داده PlatoBlockchain. جستجوی عمودی Ai.

چگونه با استفاده از قراردادهای هوشمند اتریوم اوراکل خود را بسازیم؟

وقت خواندن: 5 دقیقه

اتریوم اولین بلاک چینی است که ویژگی های ایجاد dapp، تجارت دارایی های رمزنگاری شده روی بلاک چین و غیره را به ارث برده است.

این زبان برنامه نویسی خود را برای نوشتن قراردادهای هوشمند و پیاده سازی آنها بر روی ماشین مجازی اتریوم برای ایجاد تمرکززدایی در انجام فعالیت ها دارد. 

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

برای رسیدن به این هدف، ما باید مفهوم اوراکل های بلاک چین را درک کنیم که از طریق آن قراردادهای هوشمند می توانند ورودی های دنیای واقعی را دریافت کنند. 

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

موضوعات کلیدی وبلاگ

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

اوراکل چیست و چرا به آن نیاز است؟

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

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

اوراکل های بلاک چین به تکمیل داده های مربوط به برنده قراردادهای هوشمند کمک می کنند. جریان داده در اوراکل دو جهته است و می تواند برای ترجمه هر داده لحظه ای از گزارش های آب و هوا به وضعیت بازار سهام و قراردادهای هوشمند استفاده شود. 

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

اوراکل Blockchain
اوراکل Blockchain

چگونه از Oracle به داده ها دسترسی پیدا کنیم؟

قراردادهای هوشمند از چرخه درخواست و پاسخ برای به دست آوردن اطلاعات از گره اوراکل استفاده می کنند. اوراکل پیاده سازی شده با HTTP GET درخواست قرارداد هوشمند را دریافت می کند و تابع callback می تواند داده های درخواستی را از اوراکل بازیابی کند. 

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

در اینجا برخی از خدمات اوراکل آورده شده است

  • chainlink
  • قابل ارائه
  • ویت نت
  • Paralink و غیره.

طبقه بندی اوراکل ها

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

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

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

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

اوراکل های با قابلیت محاسبه: اوراکل‌های دارای قابلیت محاسبه از محاسبات خارج از زنجیره برای ارائه خدمات استفاده می‌کنند. به خصوص زمانی که on-chain به دلیل محدودیت های فنی یا مالی قابل اعتماد نباشد، از این نوع اوراکل استفاده می شود.

واکشی داده ها از اوراکل

مرحله 1: قرارداد هوشمند یک پرس و جو را به اوراکل ارسال می کند.

مرحله 2: پرس و جو به حامل داده هدایت می شود، که داده ها را از منبع داده جستجو می کند

مرحله 3: داده ها از منبع مشتق شده و به اوراکل داده می شود.

مرحله 4: Oracle پاسخ قرارداد هوشمند را به عنوان درخواست ارسال می کند. 

ایجاد اوراکل در قرارداد هوشمند اتریوم – ساختار کد

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

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

مشکلات اوراکل

مشکلات اوراکل اساساً تضاد بین قراردادهای هوشمند غیرقابل اعتماد و اوراکل های شخص ثالث قابل اعتماد، با در نظر گرفتن امنیت و اعتبار داده های اشخاص ثالث است.

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

با این حال، سرویس‌های اوراکل مانند ChainLink و Oraclize به عنوان راه‌حل‌های غیرمتمرکز کار می‌کنند که داده‌ها را بر اساس روش‌های جدید و تأیید شده استخراج می‌کنند. بنابراین، داده های به دست آمده از طریق روش های غیرمتمرکز است.  

نتیجه

ارتباط بلاک چین با دنیای واقعی برای یک جهش رو به جلو به سوی دنیای غیرمتمرکز قابل قبول است. اوراکلز راه حلی را برای رابط قابل اعتماد قراردادهای هوشمند با داده های زمان واقعی ارائه می دهد. 

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

می خواهید بیشتر مرتبط بمانید امنیت Web3?

دنبال کردن QuillAudits برای بسیاری از چنین نوشته های به روز در مورد Web3.

23 نمایش ها

پست چگونه با استفاده از قراردادهای هوشمند اتریوم اوراکل خود را بسازیم؟ به نظر می رسد برای اولین بار در Blog.quillhash.

تمبر زمان:

بیشتر از کویل هاش