شبكة Ethereum اللامركزية وعقودها الذكية معزولة تماما عن العالم الحقيقي. تضمن هذه العزلة الاتساق والأمان والنزاهة. ومع ذلك ، فإن هذا يشكل أيضا قيدا: لا يمكن لهذه العقود الذكية الوصول إلى البيانات الخارجية أو التحقق من صحتها بمفردها. إذن ، ماذا لو كان تنفيذ العقد يعتمد على السعر الحالي للذهب ، أو الظروف الجوية في مدينة معينة ، أو نتائج الانتخابات؟
يملأ البوابات هذه الفجوة. كرسلين، يقومون بجمع وتحقق وتقديم المعلومات الحقيقية إلى العقود الذكية، مما يوسع نطاق الاحتمالات لتطبيقات اللامركزية.
تخيل الحالة التالية:
الصلابة//عقد ذكي وهمي يتبع عقد البيانات الخارجي GoldPriceBet { Oracle OracleInstance;//A Oracle مثيل مثيل الذهب في الوقت الحقيقي عنوان المراهن; uint256 wagerAmount; مكان الوظيفةGoldPriceBet (uint PredictedPrice) خارجي مستحق الدفع { bettor = msg.sender; مبلغ الرهان = msg.value; هنا ، عادة ما نستدعي أوراكل لجلب سعر الذهب الحالي }}
تعليقات الكود:
OracleInstance;
هذا عنصر نائب ل GoldPriceBet
عقد للتفاعل معه للحصول على سعر الذهب الحالي (عقد أوراقل).وظيفة placeGoldPriceBet تسمح للمستخدمين بوضع رهانات للتنبؤ بالسعر
من الذهب. في الأفضل، بعد وضع رهان، سيتم استدعاء الأشباح للحصول على سعر الذهب في الوقت الحقيقي وتحديد النتائج.بشكل عام، تنقسم المُعلنات إلى فئتين رئيسيتين:
تُديرها كيان أو منظمة واحدة، البوابات المركزية تكون فعّالة ويمكنها الحصول على البيانات بسرعة. نقطة ضعفها، مع ذلك، هي الثقة. تعتمد تنفيذ العقود الذكية على نزاهة هذا الكيان المركزي. قد تؤدي البيانات المتلاعب بها أو الخاطئة إلى نتائج غير متوقعة.
من أجل التخفيف من عيوب الأنظمة المركزية، ظهرت المداخل الجديدة المتمحورة. هنا، يوفر شبكة من المداخل المتعددة البيانات. قد يستخدم العقد الذكي طريقة تجميع، مثل متوسط أو وسيط، للوصول إلى قيمة. عن طريق تقسيم مصادر البيانات، تقلل هذه المداخل من المخاطر المرتبطة بالتلاعب البشري أو نقاط الفشل الفردية.
الصلابة//عقد ذكي توضيحي يستفيد من إطار عمل مرن من Oracle CommodityPriceFeed { Oracle اللامركزية [] OracleArray;//مجموعة من دالة أوراكل اللامركزية تشتق AveragePrice () إرجاع العرض الخارجي (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice(); } إرجاع القيمة التراكمية/ oracleArray.length ؛ }}
تعليقات الكود:
DecentralizedOracle [] OracleArray; هذه مصفوفة تخزن عدة حالات من الآلهة المركزية
.ال
حساب السعر المتوسط
تقوم الوظيفة بحساب السعر المتوسط الذي تم الحصول عليه من جميع المدافع في OracleArray. تقوم بالانتقال من خلال كل من المدافعين، تحصل على السعر، ثم تقوم بقسمته على عدد المدافعين للحصول على المتوسط.تطبيقات بوتقات البيانات الموثوقة متنوعة وواسعة جدًا:
تتطلب المنصات المالية معلومات في الوقت الفعلي عن أسعار الأصول أو أسعار الفائدة أو المؤشرات الاقتصادية الأخرى. تستخدم منصات المشتقات اللامركزية أوراكل لضمان تسوية العقود ، مثل العقود الآجلة والخيارات ، بناء على بيانات سوق دقيقة ومقاومة للتلاعب.
//مثال على عقد ذكي لخيار مريحعقد الخيار المتمركز Oracle PriceOracle؛ uint256 strikePrice = 1000؛ // قيمة مثالية وظيفة exerciseOption () خارجي { uint256 currentPrice = priceOracle.fetchCurrentPrice ()؛ if (currentPrice strikePrice>) { // منطق لممارسة الخيار } }
تعليقات الكود:
خيار غير مركزي
يتفاعل العقد مع البوابات الحصول على السعر الحالي.لقد تعززت البوابات العقلية تطوير منصات التأمين اللامركزية، وتوفير البعض المطلوب من بيانات مثل أنماط الطقس اللازمة لتأمين المحاصيل، وظروف الرحلات الجوية اللازمة لتأمين السفر، أو النشاط الزلزالي اللازم لتأمين زلازل.
عقد Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle ؛ وظيفة claimInsurance (سلسلة flightNumber) الخارجية { سلسلة status = flightstatusOracle.getFlightStatus (flightNumber) ؛ إذا (strcmp (status ، " مؤجل") == 0) { // منطق لتعويض المؤمن بهم } }}
تعليقات الكود:
تأمين تأخير الرحلة
يستخدم العقود الذكية أواكر للحصول على حالة الرحلة.بالنسبة لحلول سلسلة التوريد اللامركزية، يمكن أن توفر Oracles بيانات يمكن التحقق منها في كل مرحلة، من شراء المواد الخام إلى تسليم المنتج، لضمان أصالة المنتج والمشتريات الأخلاقية.
عقد الصلابة supplyChainTracker { Oracle LocationOracle؛ عنوان ProductOwner؛ وظيفة verifyProductLocation (عنوان ProductID) عرض خارجي يعود (سلسلة الذاكرة) { return locationOracle.fetchProductLocation(productID)؛ }}
تعليقات الكود:
يمكن بناء الألعاب التي تدمج أحداث العالم الحقيقي ، مثل نتائج الأحداث الرياضية أو حركات سوق الأسهم ، بطريقة لامركزية باستخدام أوراكل للحصول على البيانات اللازمة.
عقد SolidityContract SportsBet { Oracle SportsResultOracle ؛ وظيفة placeBet (string teamName) خارجي دفع { // منطق لوضع رهان } وظيفة resolveBet () خارجي { string winningTeam = sportsResultOracle.getMatchResult(); // منطق لمكافأة الفائزين بناءً على النتيجة }}
تعليقات الكود:
سبورتس بيت
يسمح للمستخدمين بالرهان على نتائج الأحداث الرياضية.شبكة Ethereum اللامركزية وعقودها الذكية معزولة تماما عن العالم الحقيقي. تضمن هذه العزلة الاتساق والأمان والنزاهة. ومع ذلك ، فإن هذا يشكل أيضا قيدا: لا يمكن لهذه العقود الذكية الوصول إلى البيانات الخارجية أو التحقق من صحتها بمفردها. إذن ، ماذا لو كان تنفيذ العقد يعتمد على السعر الحالي للذهب ، أو الظروف الجوية في مدينة معينة ، أو نتائج الانتخابات؟
يملأ البوابات هذه الفجوة. كرسلين، يقومون بجمع وتحقق وتقديم المعلومات الحقيقية إلى العقود الذكية، مما يوسع نطاق الاحتمالات لتطبيقات اللامركزية.
تخيل الحالة التالية:
الصلابة//عقد ذكي وهمي يتبع عقد البيانات الخارجي GoldPriceBet { Oracle OracleInstance;//A Oracle مثيل مثيل الذهب في الوقت الحقيقي عنوان المراهن; uint256 wagerAmount; مكان الوظيفةGoldPriceBet (uint PredictedPrice) خارجي مستحق الدفع { bettor = msg.sender; مبلغ الرهان = msg.value; هنا ، عادة ما نستدعي أوراكل لجلب سعر الذهب الحالي }}
تعليقات الكود:
OracleInstance;
هذا عنصر نائب ل GoldPriceBet
عقد للتفاعل معه للحصول على سعر الذهب الحالي (عقد أوراقل).وظيفة placeGoldPriceBet تسمح للمستخدمين بوضع رهانات للتنبؤ بالسعر
من الذهب. في الأفضل، بعد وضع رهان، سيتم استدعاء الأشباح للحصول على سعر الذهب في الوقت الحقيقي وتحديد النتائج.بشكل عام، تنقسم المُعلنات إلى فئتين رئيسيتين:
تُديرها كيان أو منظمة واحدة، البوابات المركزية تكون فعّالة ويمكنها الحصول على البيانات بسرعة. نقطة ضعفها، مع ذلك، هي الثقة. تعتمد تنفيذ العقود الذكية على نزاهة هذا الكيان المركزي. قد تؤدي البيانات المتلاعب بها أو الخاطئة إلى نتائج غير متوقعة.
من أجل التخفيف من عيوب الأنظمة المركزية، ظهرت المداخل الجديدة المتمحورة. هنا، يوفر شبكة من المداخل المتعددة البيانات. قد يستخدم العقد الذكي طريقة تجميع، مثل متوسط أو وسيط، للوصول إلى قيمة. عن طريق تقسيم مصادر البيانات، تقلل هذه المداخل من المخاطر المرتبطة بالتلاعب البشري أو نقاط الفشل الفردية.
الصلابة//عقد ذكي توضيحي يستفيد من إطار عمل مرن من Oracle CommodityPriceFeed { Oracle اللامركزية [] OracleArray;//مجموعة من دالة أوراكل اللامركزية تشتق AveragePrice () إرجاع العرض الخارجي (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice(); } إرجاع القيمة التراكمية/ oracleArray.length ؛ }}
تعليقات الكود:
DecentralizedOracle [] OracleArray; هذه مصفوفة تخزن عدة حالات من الآلهة المركزية
.ال
حساب السعر المتوسط
تقوم الوظيفة بحساب السعر المتوسط الذي تم الحصول عليه من جميع المدافع في OracleArray. تقوم بالانتقال من خلال كل من المدافعين، تحصل على السعر، ثم تقوم بقسمته على عدد المدافعين للحصول على المتوسط.تطبيقات بوتقات البيانات الموثوقة متنوعة وواسعة جدًا:
تتطلب المنصات المالية معلومات في الوقت الفعلي عن أسعار الأصول أو أسعار الفائدة أو المؤشرات الاقتصادية الأخرى. تستخدم منصات المشتقات اللامركزية أوراكل لضمان تسوية العقود ، مثل العقود الآجلة والخيارات ، بناء على بيانات سوق دقيقة ومقاومة للتلاعب.
//مثال على عقد ذكي لخيار مريحعقد الخيار المتمركز Oracle PriceOracle؛ uint256 strikePrice = 1000؛ // قيمة مثالية وظيفة exerciseOption () خارجي { uint256 currentPrice = priceOracle.fetchCurrentPrice ()؛ if (currentPrice strikePrice>) { // منطق لممارسة الخيار } }
تعليقات الكود:
خيار غير مركزي
يتفاعل العقد مع البوابات الحصول على السعر الحالي.لقد تعززت البوابات العقلية تطوير منصات التأمين اللامركزية، وتوفير البعض المطلوب من بيانات مثل أنماط الطقس اللازمة لتأمين المحاصيل، وظروف الرحلات الجوية اللازمة لتأمين السفر، أو النشاط الزلزالي اللازم لتأمين زلازل.
عقد Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle ؛ وظيفة claimInsurance (سلسلة flightNumber) الخارجية { سلسلة status = flightstatusOracle.getFlightStatus (flightNumber) ؛ إذا (strcmp (status ، " مؤجل") == 0) { // منطق لتعويض المؤمن بهم } }}
تعليقات الكود:
تأمين تأخير الرحلة
يستخدم العقود الذكية أواكر للحصول على حالة الرحلة.بالنسبة لحلول سلسلة التوريد اللامركزية، يمكن أن توفر Oracles بيانات يمكن التحقق منها في كل مرحلة، من شراء المواد الخام إلى تسليم المنتج، لضمان أصالة المنتج والمشتريات الأخلاقية.
عقد الصلابة supplyChainTracker { Oracle LocationOracle؛ عنوان ProductOwner؛ وظيفة verifyProductLocation (عنوان ProductID) عرض خارجي يعود (سلسلة الذاكرة) { return locationOracle.fetchProductLocation(productID)؛ }}
تعليقات الكود:
يمكن بناء الألعاب التي تدمج أحداث العالم الحقيقي ، مثل نتائج الأحداث الرياضية أو حركات سوق الأسهم ، بطريقة لامركزية باستخدام أوراكل للحصول على البيانات اللازمة.
عقد SolidityContract SportsBet { Oracle SportsResultOracle ؛ وظيفة placeBet (string teamName) خارجي دفع { // منطق لوضع رهان } وظيفة resolveBet () خارجي { string winningTeam = sportsResultOracle.getMatchResult(); // منطق لمكافأة الفائزين بناءً على النتيجة }}
تعليقات الكود:
سبورتس بيت
يسمح للمستخدمين بالرهان على نتائج الأحداث الرياضية.