La red descentralizada de Ethereum y sus contratos inteligentes están completamente aislados del mundo real. Este aislamiento garantiza consistencia, seguridad e integridad. Sin embargo, esto también plantea una limitación: estos contratos inteligentes no pueden acceder ni validar datos externos por sí mismos. Entonces, ¿qué sucede si la ejecución de un contrato depende del precio actual del oro, las condiciones climáticas en una ciudad en particular o los resultados de una elección?
Los oráculos llenan este vacío. Como mensajeros, recopilan, validan y entregan información del mundo real a contratos inteligentes, ampliando así el rango de posibilidades para aplicaciones descentralizadas.
Imagina la siguiente situación:
Solidity//Un contrato inteligente simulado sigue el contrato de datos externos GoldPriceBet { Oracle OracleInstance;//Una instancia de Oracle de la instancia de tiempo real de oro dirección del apostador; uint256 cantidad de apuesta; Function placeGoldPriceBet (uint PredictedPrice) external payable { apostador = msg.sender; cantidad de apuesta = msg.value; // Aquí, típicamente invocaríamos al oráculo para obtener el precio actual del oro }}
Comentarios del código:
OracleInstance;
Este es un marcador para nuestroGoldPriceBet
contrato para interactuar con obtener el precio actual del oro (contrato Oracle).La función placeGoldPriceBet permite a los usuarios realizar apuestas para predecir el precio
de oro. Idealmente, después de realizar una apuesta, se llamaría a los oráculos para obtener el precio en tiempo real del oro y determinar los resultados.En términos generales, los oráculos se dividen en dos categorías principales:
Operados por una sola entidad u organización, los oráculos centralizados son eficientes y pueden obtener datos rápidamente. Su talón de Aquiles, sin embargo, es la confianza. La ejecución de los contratos inteligentes depende de la integridad de esta entidad centralizada. Los datos manipulados o erróneos pueden dar lugar a resultados inesperados.
Con el fin de mitiGate.io las deficiencias de los sistemas centralizados, han surgido oráculos descentralizados. Aquí, una red de múltiples oráculos proporciona datos. Un contrato inteligente puede utilizar un método de agregación, como un promedio o una mediana, para llegar a un valor. Al descentralizar las fuentes de datos, estos oráculos reducen el riesgo asociado con la manipulación humana o los puntos únicos de fallo.
Solidity//Un contrato inteligente ilustrativo que aprovecha un marco Oracle flexiblecontract CommodityPriceFeed { Oracle descentralizado [] OracleArray;//Un array de oráculos descentralizados function deriveAveragePrice () external view returns (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice(); } return cumulativeValue/ oracleArray.length; }}
Comentarios sobre el código:
DecentralizedOracle [] OracleArray; this is an array that stores multiple instances of oráculos descentralizados
.El
calcularPrecioPromedio
La función calcula el precio promedio obtenido de todos los oráculos en OracleArray. Recorre cada uno de los oráculos, obtiene el precio y luego lo divide por el número de oráculos para obtener el promedio.Las posibles aplicaciones de los oráculos son muy amplias y diversas:
Las plataformas financieras requieren información en tiempo real sobre los precios de los activos, las tasas de interés u otros indicadores económicos. Las plataformas descentralizadas de derivados utilizan oráculos para garantizar que los contratos, como futuros y opciones, se liquiden en función de datos de mercado precisos y a prueba de manipulaciones.
SoliditySolidityCódigo de copia//Un ejemplo de contrato inteligente para una opción convenientecontrato DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Valor de ejemplo función exerciseOption () externa { uint256 currentPrice = priceOracle.fetchCurrentPrice (); if (currentPrice strikePrice>) { // Lógica para ejercer la opción }}}
Comentarios de código:
Opción Descentralizada
el contrato interactúa con los oráculos para obtener el precio actual.Los oráculos han promovido el desarrollo de plataformas de seguros descentralizadas, proporcionando datos como los patrones climáticos requeridos para el seguro de cosechas, las condiciones de vuelo requeridas para el seguro de viaje o la actividad sísmica requerida para el seguro contra terremotos.
contrato de seguro de retraso de vuelo Solidity { Oracle FlightStatusOracle; función claimInsurance (string flightNumber) externa { string status = flightstatusOracle.getFlightStatus (flightNumber); if (strcmp (status, " Delayed") == 0) { // Lógica para compensar al asegurado } }}
Comentarios de código:
Seguro de retraso de vuelo
los contratos utilizan oráculos para obtener el estado de vuelo.Para soluciones descentralizadas de cadena de suministro, los oráculos pueden proporcionar datos verificables en cada etapa, desde la adquisición de materias primas hasta la entrega del producto, para garantizar la autenticidad del producto y la adquisición ética.
contrato de SoliditysupplyChainTracker { Oráculo LocationOracle; dirección ProductOwner; función verifyProductLocation (dirección ProductID) externa vista devuelve (cadena memoria) { return locationOracle.fetchProductLocation(productID); }}
Comentarios de código:
Los juegos que integran eventos del mundo real, como los resultados de eventos deportivos o los movimientos del mercado de valores, se pueden construir de manera descentralizada mediante el uso de oráculos para obtener los datos necesarios.
SolidityContract SportsBet { Oracle SportsResultOracle; Function placeBet (string teamName) external payable { // Lógica para realizar una apuesta } function resolveBet () external { string winningTeam = sportsResultOracle.getMatchResult(); // Lógica para recompensar a los ganadores basada en el resultado }}
Comentarios de código:
SportsBet
permite a los usuarios realizar apuestas sobre los resultados de eventos deportivos.La red descentralizada de Ethereum y sus contratos inteligentes están completamente aislados del mundo real. Este aislamiento garantiza consistencia, seguridad e integridad. Sin embargo, esto también plantea una limitación: estos contratos inteligentes no pueden acceder ni validar datos externos por sí mismos. Entonces, ¿qué sucede si la ejecución de un contrato depende del precio actual del oro, las condiciones climáticas en una ciudad en particular o los resultados de una elección?
Los oráculos llenan este vacío. Como mensajeros, recopilan, validan y entregan información del mundo real a contratos inteligentes, ampliando así el rango de posibilidades para aplicaciones descentralizadas.
Imagina la siguiente situación:
Solidity//Un contrato inteligente simulado sigue el contrato de datos externos GoldPriceBet { Oracle OracleInstance;//Una instancia de Oracle de la instancia de tiempo real de oro dirección del apostador; uint256 cantidad de apuesta; Function placeGoldPriceBet (uint PredictedPrice) external payable { apostador = msg.sender; cantidad de apuesta = msg.value; // Aquí, típicamente invocaríamos al oráculo para obtener el precio actual del oro }}
Comentarios del código:
OracleInstance;
Este es un marcador para nuestroGoldPriceBet
contrato para interactuar con obtener el precio actual del oro (contrato Oracle).La función placeGoldPriceBet permite a los usuarios realizar apuestas para predecir el precio
de oro. Idealmente, después de realizar una apuesta, se llamaría a los oráculos para obtener el precio en tiempo real del oro y determinar los resultados.En términos generales, los oráculos se dividen en dos categorías principales:
Operados por una sola entidad u organización, los oráculos centralizados son eficientes y pueden obtener datos rápidamente. Su talón de Aquiles, sin embargo, es la confianza. La ejecución de los contratos inteligentes depende de la integridad de esta entidad centralizada. Los datos manipulados o erróneos pueden dar lugar a resultados inesperados.
Con el fin de mitiGate.io las deficiencias de los sistemas centralizados, han surgido oráculos descentralizados. Aquí, una red de múltiples oráculos proporciona datos. Un contrato inteligente puede utilizar un método de agregación, como un promedio o una mediana, para llegar a un valor. Al descentralizar las fuentes de datos, estos oráculos reducen el riesgo asociado con la manipulación humana o los puntos únicos de fallo.
Solidity//Un contrato inteligente ilustrativo que aprovecha un marco Oracle flexiblecontract CommodityPriceFeed { Oracle descentralizado [] OracleArray;//Un array de oráculos descentralizados function deriveAveragePrice () external view returns (uint256) { uint256 cumulativeValue = 0; for (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice(); } return cumulativeValue/ oracleArray.length; }}
Comentarios sobre el código:
DecentralizedOracle [] OracleArray; this is an array that stores multiple instances of oráculos descentralizados
.El
calcularPrecioPromedio
La función calcula el precio promedio obtenido de todos los oráculos en OracleArray. Recorre cada uno de los oráculos, obtiene el precio y luego lo divide por el número de oráculos para obtener el promedio.Las posibles aplicaciones de los oráculos son muy amplias y diversas:
Las plataformas financieras requieren información en tiempo real sobre los precios de los activos, las tasas de interés u otros indicadores económicos. Las plataformas descentralizadas de derivados utilizan oráculos para garantizar que los contratos, como futuros y opciones, se liquiden en función de datos de mercado precisos y a prueba de manipulaciones.
SoliditySolidityCódigo de copia//Un ejemplo de contrato inteligente para una opción convenientecontrato DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Valor de ejemplo función exerciseOption () externa { uint256 currentPrice = priceOracle.fetchCurrentPrice (); if (currentPrice strikePrice>) { // Lógica para ejercer la opción }}}
Comentarios de código:
Opción Descentralizada
el contrato interactúa con los oráculos para obtener el precio actual.Los oráculos han promovido el desarrollo de plataformas de seguros descentralizadas, proporcionando datos como los patrones climáticos requeridos para el seguro de cosechas, las condiciones de vuelo requeridas para el seguro de viaje o la actividad sísmica requerida para el seguro contra terremotos.
contrato de seguro de retraso de vuelo Solidity { Oracle FlightStatusOracle; función claimInsurance (string flightNumber) externa { string status = flightstatusOracle.getFlightStatus (flightNumber); if (strcmp (status, " Delayed") == 0) { // Lógica para compensar al asegurado } }}
Comentarios de código:
Seguro de retraso de vuelo
los contratos utilizan oráculos para obtener el estado de vuelo.Para soluciones descentralizadas de cadena de suministro, los oráculos pueden proporcionar datos verificables en cada etapa, desde la adquisición de materias primas hasta la entrega del producto, para garantizar la autenticidad del producto y la adquisición ética.
contrato de SoliditysupplyChainTracker { Oráculo LocationOracle; dirección ProductOwner; función verifyProductLocation (dirección ProductID) externa vista devuelve (cadena memoria) { return locationOracle.fetchProductLocation(productID); }}
Comentarios de código:
Los juegos que integran eventos del mundo real, como los resultados de eventos deportivos o los movimientos del mercado de valores, se pueden construir de manera descentralizada mediante el uso de oráculos para obtener los datos necesarios.
SolidityContract SportsBet { Oracle SportsResultOracle; Function placeBet (string teamName) external payable { // Lógica para realizar una apuesta } function resolveBet () external { string winningTeam = sportsResultOracle.getMatchResult(); // Lógica para recompensar a los ganadores basada en el resultado }}
Comentarios de código:
SportsBet
permite a los usuarios realizar apuestas sobre los resultados de eventos deportivos.