Num mercado relativamente lento, a procura por oráculos tem crescido exponencialmente.
Palestra: Frank, engenheiro de relações com desenvolvedores, Chainlink Labs
Organizado por: aididiaojp.eth, Foresight News
Sou Frank, engenheiro de relações com desenvolvedores da Chainlink Labs. Meu principal trabalho é permitir que mais desenvolvedores, ou construtores apaixonados por esta indústria, aprendam mais sobre oráculos. Com base nos contratos inteligentes da nossa infraestrutura atual, podemos considerá-lo um contrato inteligente híbrido. Os contratos inteligentes podem ser melhor integrados com vários dados no mundo Web2, incluindo serviços de computação, e então, com base nesta arquitetura, podemos expandir enormemente o que os contratos inteligentes na cadeia podem fazer.
Na partilha de hoje, apresentarei primeiro o conceito de oráculos e, em seguida, com base no conceito de oráculos, apresentarei brevemente a rede descentralizada de oráculos e alguns dos serviços que podemos fornecer, incluindo serviços de dados e serviços de computação.
O que é um oráculo?

O status da rede e dos dados muda constantemente nesses três estágios, da Web 1 para a Web 2 e para a Web 3. No início, Web1 era um serviço de site onde os dados só podiam ser lidos estaticamente. Quando evoluíram para o estágio Web2, os dados tornaram-se legíveis, graváveis e participantes. Muitas grandes empresas construíram impérios comerciais com base em seus próprios serviços. Elas armazenam todos os dados do usuário em seus próprios bancos de dados, se necessário, podem possuir e modificar os dados do usuário. Aí surge uma questão, ou seja, alguns dos dados que criamos na Internet ou no mundo virtual às vezes têm algum valor, então a quem pertence esse valor? Com base neste contexto, esperamos resolver bem este problema no estágio Web 3. Todos os dados do estágio Web 3 não existem em um servidor ou nó. Ela possui uma rede descentralizada, e a rede descentralizada é um sistema multi-ledger composto por vários nós. Os dados são armazenados em vários nós. Somente quando cada nó concorda com a modificação e armazenamento dos dados os dados finais podem ser salvos. Isso nos trará um benefício, ou seja, não importa que tipo de modificação queiramos fazer nos dados, precisamos fazer a modificação de acordo com o consenso pré-acordado. Por exemplo, se eu quiser modificar o saldo da minha carteira, se ninguém transferir dinheiro para mim, não importa como o proprietário dos dados queira modificá-lo, ele acabará por não conseguir passar no processo de consenso, o que significa que o saldo da carteira não pode ser modificado. Somente o proprietário dos dados pode finalmente modificá-los enviando uma transação que esteja em conformidade com as regras. Isso traz um benefício muito óbvio. Ao mesmo tempo, também traz algumas desvantagens. A maior desvantagem é que torna o sistema um sistema determinístico. Em outras palavras, como haverá um processo de consenso ao longo do processo, ele só poderá realizar operações que outros possam verificar. Quando você envia uma operação, outros precisam executar sua operação. Se outros nós puderem executar a operação com êxito, eles poderão realmente retornar os resultados. Quanto a saber se é superior a 50% ou 70%, depende do algoritmo de consenso.Finalmente, a operação pode ser escrita na transação, e a transação pode ser escrita no bloco para se tornar uma transação completa.

Mas se precisarmos fazer algumas operações não determinísticas, como obter alguns dados da API fora do blockchain e gerar números aleatórios, etc., o sistema blockchain determinístico não poderá ser concluído. Nossa loteria precisa gerar números aleatórios, ou o protocolo on-chain precisa saber os preços dos ativos fora da cadeia, como obter o preço de ações ou commodities, o que é uma operação não determinística e não pode ser concluída pela própria blockchain. Outro exemplo são as chamadas de API. Como um nó na rede, eu chamo dados de API externos e depois conto o resultado a outros nós da rede. Para verificar a autenticidade do resultado, outros nós também irão executá-lo. e obter um resultado. Mas para uma API externa, se pessoas diferentes acessarem a mesma API em momentos diferentes, o servidor poderá travar, ou o serviço poderá ser suspenso, ou os dados poderão mudar conforme o horário muda. Se você fizer a mesma coisa em momentos diferentes, os resultados obtidos serão inconsistentes. Enquanto os resultados forem inconsistentes, não há como bloquear a operação final e não há como concluí-la. É por isso que, depois de termos a propriedade dos dados, também precisamos arcar com algumas das deficiências que isso traz.

Para resolver esse problema, você precisa contar com oráculos. O blockchain é um sistema isolado e determinístico. Ele não pode obter ativamente dados fora da cadeia. O surgimento de oráculos visa resolver esse problema. O conceito de oráculos surgiu há dois ou três anos, mas não existiam muitos cenários aplicáveis naquela época e tinha grandes limitações. Por exemplo, se você deseja obter alguns dados de mercado, fazer upload de dados de estoque para a rede blockchain ou criar uma estrutura para colocar a lógica na cadeia para execução, mas colocar os ativos na cadeia e proteger o progresso normal das transações através contratos inteligentes, etc. Neste momento, alguns dados precisam ser obtidos da cadeia, e os dados precisam ser sincronizados periodicamente, incluindo pagamentos bancários ou dados de varejo, e até mesmo alguns outros dados de eventos públicos, como condições climáticas, informações geográficas, informações logísticas, resultados de competições esportivas, etc., esses dados não podem ser obtidos sem passar pela máquina oráculo. Isto tornará a ecologia da cadeia muito limitada. À medida que o ecossistema da Web 3 continua a desenvolver-se, a ligação entre os dois mundos da Web 3 e da Web 2 tornar-se-á cada vez mais estreita. Se quisermos que a Web3 seja adotada em larga escala ou usada por mais pessoas, ela deve fornecer funções muito ricas e não pode ser limitada a operações que só podem ser realizadas por meio de dados nativos da cadeia.
A Oracle se tornou popular apenas em 2020, o DeFi Summer, quando a maioria das pessoas percebeu isso. No início, a máquina oráculo fazia coisas muito simples. Por exemplo, se você deseja obter dados externos e enviá-los para a rede descentralizada, ou seja, o blockchain, então a maneira mais simples é estabelecer um nó centralizado sob a cadeia, que é, construir um servidor e, em seguida, obter os dados por meio do servidor e, finalmente, gravar os dados na rede blockchain de desduplicação, então esse modelo é chamado de oráculo centralizado. Embora seja relativamente simples de implementar, trará alguns problemas. Por exemplo, apresenta o risco de um único ponto de falha, ou seja, o nó centralizado pode causar tempo de inatividade por seus próprios motivos básicos. Outra possibilidade é que se o serviço prestado pelo contrato inteligente na cadeia depender dos dados fornecidos pelo nó centralizado, e se a quantidade de fundos envolvidos no contrato inteligente na cadeia for muito grande, então o oráculo centralizado poderá passar seu próprios Os dados que podem ser manipulados podem ser usados para lançar ataques a serviços. Enquanto os benefícios forem suficientemente grandes e não houver forma de obter protecção completa através de meios técnicos, então este será um ponto único de falha. Queremos colocar aplicações em redes descentralizadas, incluindo Ethereum ou outros ecossistemas da Camada 2. Na verdade, também esperamos poder garantir a justiça das nossas aplicações, ou seja, contratos inteligentes, através de centenas ou milhares de nós oracle na rede. sexo e segurança.

Claro, se contarmos com nós centralizados para obter o terminal de dados, mesmo que a segurança de outros aspectos possa ser garantida, se não houver como garantir a segurança do ativo mais importante, o terminal de dados, isso fará com que todo o dApp sem sentido. Portanto, após a máquina oráculo centralizada, surgiu a rede de máquina oráculo descentralizada, que pode muito bem resolver o risco de falha de ponto único que acabamos de mencionar. A maior diferença da rede oracle descentralizada não é que um único nó oracle fornece serviços para a rede descentralizada, mas que os serviços são fornecidos através da rede oracle descentralizada. Também pode ser entendido como uma espécie de Camada 2, ou seja, cada um. Os nós da rede oracle centralizada podem obter dados através de suas próprias fontes de dados. Após obter os resultados, eles podem agregar dados com outras redes descentralizadas. Isso também pode ser entendido como um processo de consenso, incluindo a verificação de se não há nós. ou se os dados retornados se desviam muito da média, ou simplesmente fazem uma média, depois agregam os dados, etc., e depois gravam-nos na rede descentralizada. Um dos benefícios desta abordagem é que ela pode garantir tecnicamente que o serviço não será interrompido a menos que todos os nós da rede oracle descentralizada parem de servir, mas esta possibilidade é muito baixa. Além disso, do lado dos dados, também pode ser garantido que os dados fornecidos pelo oráculo ao contrato na cadeia não sejam controlados por um único nó, mas por vários nós. Se você quiser manipular dados para lançar um ataque, o custo é muito alto. Isso equivale a atacar a Camada 2, ou mesmo uma rede descentralizada como a Ethereum, que basicamente dificilmente terá sucesso.

As redes descentralizadas podem melhorar muito a segurança e a equidade dos dados recebidos por contratos inteligentes. Para os usuários, somos apenas uma rede oracle descentralizada, mas com base na rede oracle descentralizada, podemos fornecer outros serviços, como serviços de dados, serviços de computação e serviços cross-chain. Se os dados forem fornecidos à rede com base em oráculos, algumas operações mais complexas e caras também poderão ser concluídas fora da cadeia. Ou seja, eles serão empacotados na rede oráculo fora da cadeia para cálculo e, em seguida, gravados de volta na comparação de segurança. no topo do blockchain. Se pudermos obter dados fora da cadeia, também podemos obter dados de outras cadeias e depois gravá-los nesta blockchain, então isso na verdade envolve cadeia cruzada. Desde que a segurança da rede oráculo descentralizada seja suficientemente forte, ela pode garantir que os serviços de dados, serviços de computação e serviços de cadeia cruzada construídos nela sejam muito seguros. Chainlink fornece uma variedade de serviços baseados em oráculos descentralizados, que podem conectar dados da Web 3 e da Web 2, incluindo dados da Camada 1 e Camada 2, para que todos possam obter o máximo possível de dados e serviços correspondentes.
Quais serviços os oráculos Chainlink oferecem?
A seguir, deixe-me apresentar brevemente os serviços prestados pelos oráculos Chainlink. Claro, existem muitos serviços fornecidos pela Chainlink. Compartilharei alguns serviços que são aplicáveis a muitos cenários.
Se você quiser fazer algumas inovações nas áreas de DeFi, GameFi, NFT e SocialFi no futuro, há uma grande probabilidade de que você precise de um oráculo para obter dados. Porque você deve obter os dados da cadeia de uma forma muito descentralizada e segura e gravá-los em seu contrato inteligente na cadeia.
O primeiro serviço é a alimentação de preços, que pode ser um termo que você já ouviu muitas vezes. Tornou-se popular no verão DeFi de 2020. Muitos projetos DeFi surgiram em 2020, começando com Uniswap, seguido pelo contrato de empréstimo Compound e depois pelo projeto de ativos sintéticos Synthetics e outras aplicações. Todos eles têm uma grande demanda por dados fora da cadeia, porque somente dados seguros podem ser usados. pelos usuários de forma descentralizada por meio de contratos, nos quais o serviço de alimentação de preços do oráculo desempenha um papel importante.

A imagem acima é o fluxograma básico do serviço de alimentação de preços, que inclui três partes importantes. A primeira é a rede descentralizada oracle que acabamos de mencionar; a segunda é o fornecedor de dados, que pode ser uma bolsa ou outras grandes instituições autorizadas, todas elas podem servir como fornecedores de dados; O processo mostrado na figura acima é muito simples. Cada provedor de dados pode fornecê-los a um determinado nó da rede oracle Chanlink por meio da interface ou serviço de fonte de dados. Cada nó da rede oracle também pode obter dados de acordo com seu próprio serviço. e, em seguida, através do processo de agregação, os dados obtidos de cada canal são gravados no contrato de verificação implantado na cadeia. Se passar na verificação, os dados podem ser registrados e utilizados pelo usuário no futuro. Esse é todo o processo. O cliente só precisa utilizar contratos para obter e utilizar múltiplos dados.
Existem muitos casos de uso para alimentação de preços, como Compound, Uniswap e Synthetics que mencionamos agora. Eles precisam mapear os ativos da Web2 para a Web3. Neste momento, eles precisam de mecanismos externos para fornecer o preço do ativo. Assim como uma stablecoin, quantas stablecoins podem ser emitidas com base em quantos ativos estão disponíveis, e o preço do seu ativo também deve ser obtido com base em um oráculo. Além disso, algumas plataformas de gestão de activos e aplicações populares de negociação de derivados são altamente dependentes dos preços, pelo que são, na verdade, utilizadores importantes de serviços de alimentação de preços. A julgar pela tendência, a procura de serviços de alimentação de preços está a aumentar exponencialmente. Mesmo que o mercado não esteja tão ativo, o uso de dados ainda está crescendo.

A seguir, apresentarei o segundo serviço mais diferenciado, que é Qualquer API. Simplificando, ele ajuda os contratos inteligentes na cadeia a obter alguns dados não padronizados, como alguns dados de cauda longa. Esses dados podem estar disponíveis apenas para determinadas pessoas ou determinados contratos, mas não são dados padrão, como preços de tokens ou preços de ativos. Muitos DApps exigem dados não padronizados. Por exemplo, os aplicativos de negócios de seguros da Web 3 precisam obter dados meteorológicos ou dados de atrasos de voos. Por exemplo, os gases com efeito de estufa podem ser utilizados para projetos semelhantes aos ESG, incluindo eleições e competições desportivas que podem ser combinadas com mercados de previsão. Fornecemos um mercado de dados baseado em qualquer API. Em cada mercado de dados, existem vários provedores de dados que fornecem serviços externos com base em seus próprios dados. contrato de acordo com os requisitos do serviço. Tanto o fornecedor de dados como o receptor de dados são determinados pelo mercado. Existe um mercado para usuários e provedores de dados, e não cabe aos funcionários da Chainlink monopolizar todos os dados e depois fornecê-los à cadeia.

O fluxo de trabalho de qualquer API e alimentação de preços é relativamente consistente. O contrato primeiro envia uma solicitação e, em seguida, a solicitação será descoberta pelo nó Chanlink. Após a descoberta, Chanlink pode selecionar os dados necessários de acordo com a solicitação e depois gravá-los de volta no blockchain. Qualquer API pode fornecer aos usuários uma variedade de dados, mas uma de suas características é que, embora seja configurada de forma relativamente rápida, fornece dados de um único nó. O que Any API deseja fazer é obter dados o mais rápido possível por meio de um método simples, em vez de obter dados por meio do oráculo de rede descentralizado que mencionamos anteriormente.

Mais tarde, à medida que a diversidade dos requisitos de dados aumentava, muitos dados não padronizados também esperavam ser reescritos na cadeia de forma descentralizada. Também criamos um novo serviço chamado Functions no início de abril deste ano. Simplificando, ele executa qualquer solicitação do usuário por meio de uma rede oracle descentralizada. Os usuários podem usar algumas linguagens de programação avançadas, como Javascript, para escrever programas operacionais. Eles não podem mais ser escritos apenas na linguagem Solidity. Os programas escritos em Javascript são definitivamente mais ricos que o Solidity. O serviço Functions pode encapsular o programa escrito em uma solicitação e enviá-lo para toda a rede Oracle. Cada nó da rede realizará a mesma operação, que pode ser serviços de computação, serviços de aquisição de dados ou outros serviços. Depois que cada nó é executado e obtém o resultado, ele passa pelo processo de agregação que acabamos de mencionar e o grava de volta no contrato inteligente.

Comparado com a alimentação de preços, o seu grau de liberdade é muito elevado. Em outras palavras, o contrato inteligente pode receber uma interface externa para usar da maneira que desejar. Você também pode escrever parte da lógica necessária no contrato, e então ela não será executada pelo blockchain, mas pela máquina oracle, o que equivale a incorporar o serviço da máquina oracle diretamente no contrato inteligente, transformando-o em um contrato inteligente híbrido. Se você fizer desta forma, então sua execução é garantida através de uma rede descentralizada. Então suas operações não determinísticas, que não podem ser feitas no blockchain, podem ser feitas através da máquina oráculo descentralizada. No geral, pode melhorar muito a funcionalidade dos contratos inteligentes. As funções que ele pode realizar serão mais ricas do que antes, e a aplicação real do lado do usuário também é muito simples. Você só precisa adicionar duas funções ao seu contrato e pode usar diretamente a rede oracle descentralizada como parte do seu contrato inteligente. . usar. Também é muito amigável para programadores Web2 tradicionais, pois a lógica de execução pode ser completada por meio de linguagens de programação tradicionais. O processo geral não mudou. Envie uma solicitação, envie-a para a rede oracle descentralizada, agregue-a após a execução e, finalmente, grave-a de volta no contrato inteligente do usuário.
O que foi dito acima é o que compartilhei sobre oráculos e alguns dos serviços que redes descentralizadas baseadas em oráculos podem fornecer.
