Contratos Oracle da Ethereum: podemos confiar na Oracle?

Publicados: 2022-03-11

Este artigo é a parte final de uma série de três partes sobre o uso de contratos de oráculo Ethereum.

  • A primeira parte foi uma introdução para configurar, executar e testar o código com o framework trufa.
  • A segunda parte deu uma olhada no código e o usou como ponto de partida para discussão sobre alguns dos recursos de código e design do Solidity.

Agora, nesta parte final, gostaria de fazer as perguntas: o que acabamos de fazer e por quê? E tente fornecer algumas avenidas de pensamento, esperançosamente, instigantes. O júri ainda não sabe como o uso de oráculos se relaciona com a falta de confiança e o que a palavra “falta de confiança”, relacionada ao blockchain, realmente significa no uso do mundo real. À medida que trazemos algumas dessas ideias de sua forma conceitual para uso prático, seremos forçados a lutar e chegar a um acordo com questões como essa. Então vamos começar.

Recapitulação: Por que precisamos de um oráculo Ethereum?

Isso chega ao cerne da natureza da execução de código no blockchain. A fim de satisfazer os requisitos de imutabilidade e determinismo, e como um artefato da maneira como o código é realmente executado por nós na cadeia, um contrato inteligente é incapaz de alcançar diretamente fora do blockchain para fazer bem, qualquer coisa.

Para a maioria dos programadores, esse fato apresenta uma maneira muito antinatural de pensar. Se precisarmos de dados de algum lugar, normalmente nos conectamos a isso em algum lugar e os puxamos. Um contrato inteligente que precisa de dados de previsão do tempo? Basta conectar-se a um feed meteorológico. Mas não; um contrato inteligente de blockchain absolutamente não pode fazer isso; se alguns dados ainda não estiverem na blockchain, o código do contrato não terá acesso a eles no momento da execução. Então, a solução é já ter os dados necessários já existentes no blockchain, no momento da execução do contrato. Isso requer maquinário externo que, em vez de puxar os dados para a cadeia, empurra os dados para a cadeia, especificamente para uso por outros contratos. Essa maquinaria externa é o oráculo. Os dados inseridos na cadeia são inseridos em um contrato oracle, que presumivelmente fez provisões para compartilhá-los com outros contratos. Um exemplo dessa configuração é precisamente o que construímos e examinamos nas duas partes anteriores desta trilogia de artigos.

Ilustração do oráculo Ethereum

Buracos de segurança gritantes

Para mim, a questão central envolvida em todo blockchain público é a palavra T: confiança. Na sua forma mais pura, o que esses sistemas estão fazendo é o melhor para garantir (nenhuma garantia perfeita é possível neste mundo, mas o mais próximo possível) que não temos que confiar cegamente em nenhuma das partes. O leitor astuto pode já ter questionado algumas das falhas de segurança gritantes no exemplo das Apostas de Boxe. Gostaria de me concentrar naqueles que serão mais importantes para nossa discussão sobre a falta de confiança e como ela se relaciona com o uso de oráculos com contratos inteligentes.

1. O proprietário/mantenedor do contrato de apostas pode estar corrompido

A partir da linha 58 do BoxingBets.sol temos a seguinte função:

 /// @notice sets the address of the boxing oracle contract to use /// @dev setting a wrong address may result in false return value, or error /// @param _oracleAddress the address of the boxing oracle /// @return true if connection to the new oracle address was successful function setOracleAddress(address _oracleAddress) external onlyOwner returns (bool) { boxingOracleAddr = _oracleAddress; boxingOracle = OracleInterface(boxingOracleAddr); return boxingOracle.testConnection(); }

Deve ficar bem claro o que isso permite. O titular do contrato (e apenas o titular do contrato) pode, a qualquer momento e sem restrições, alterar o oráculo que está sendo usado para servir as lutas de boxe e determinar os vencedores. Por que isso é um problema? Se ainda não for óbvio para você, isso permite que o proprietário do contrato abuse deliberadamente do contrato para seu próprio lucro.

Exemplo: A próxima luta de boxe é Soda Popinski vs Glass Joe. O refrigerante é o favorito claro por uma ampla margem. Todo mundo aposta no refrigerante. Toneladas de dinheiro em cima dele. Eu, o proprietário do contrato, decido puxar um rápido. Pouco antes da partida ser decidida, mudo o oráculo para o meu próprio malicioso, que é idêntico ao oráculo oficial, exceto que é codificado para declarar Glass Joe como o vencedor. Declara Glass Joe, eu ganho todo o dinheiro e ninguém pode me impedir. Depois disso, talvez ninguém mais confie no meu contrato, mas suponha que eu não me importe; talvez eu tenha escrito e publicado o contrato com o único propósito de fazer aquele assalto.

Quais são algumas alternativas?

1. Não permita que o oráculo seja alterado

O problema que identificamos acima, surge do fato de permitirmos que o oráculo seja alterado pelo proprietário do contrato. Então, suponha que apenas codificamos o endereço do oráculo e não permitimos que ele seja alterado? Bem, nós realmente podemos fazer isso, não está fora de questão. Mas então surge a pergunta: e se esse oráculo for encerrado - parar de fornecer dados por qualquer motivo? Então precisaremos de um novo oráculo. Ou se esse oráculo, inicialmente confiável, for corrompido e não mais confiável? Novamente, vamos querer mudar para um novo oráculo. Se codificarmos o oráculo, a única maneira de alterar o oráculo é liberar um novo contrato que use um oráculo diferente. Ok, novamente, podemos fazer isso. Não está fora de questão. Observe, é claro, que os contratos inteligentes não podem ser atualizados tão facilmente quanto, digamos, um site. Não seria fácil? Se você notar um bug ou uma falha de segurança, basta corrigi-lo e ninguém fica sabendo. O modelo de implantação de contrato inteligente está um pouco mais próximo do modelo de software empacotado; uma vez que o software está nas mãos do usuário, ele está lá e você não pode consertá-lo. Você deve solicitar que o usuário atualize-se manualmente. Os contratos inteligentes são um pouco semelhantes. Uma vez que o contrato está no blockchain, ele é imutável como no resto do blockchain, exceto em partes em que você escreveu lógica para torná-lo mutável.

Isso não é necessariamente um bloqueador; existem muitos modelos e escolas de pensamento agora sobre como tornar um contrato inteligente modificável. Este tópico daria um artigo decente por si só, mas por enquanto você pode conferir este artigo do Hackernoon, bem como este artigo sobre estratégias de contrato inteligente.

Como seria isso do ponto de vista de um usuário? Digamos que estou pensando em fazer uma aposta no próximo jogo do Don Flamenco. Posso ver claramente que o contrato codifica de forma descomplicada um oráculo que já conheço e confio (bem, confio o suficiente para fazer uma aposta de um determinado tamanho). Então é isso. Bem simples. Se o proprietário do contrato liberar uma nova versão do contrato com um novo oráculo, eu ainda (devo) ter a liberdade de continuar usando o antigo. Bem, talvez. Depende de como a atualização foi tratada. Se o contrato fosse desativado ou destruído, eu poderia estar sem sorte. Mas no caso de baunilha, ainda deve ficar de pé.

2. Bloqueie o oráculo pela duração

Podemos adicionar alguma complicação ao código (não é realmente desejável para um exemplo ser muito complexo, mas para uma solução do mundo real podemos querer o benefício que essa complexidade traz) para mitigar travessuras como a descrita acima. Eu acho que uma coisa muito razoável a fazer seria adicionar um código que “bloqueasse” o oráculo pela duração da aposta. Dito de outra forma, a lógica do contrato poderia garantir de uma forma muito clara e simples, que qualquer oráculo que estivesse presente quando eu fiz a aposta deve ser o mesmo oráculo que é usado para determinar o vencedor. Portanto, mesmo que o oráculo mude nesse meio tempo, para outras partidas, para minha partida e para minha aposta, deve permanecer o mesmo o tempo todo. Isso anda de mãos dadas com permitir que o usuário saiba quem é o oráculo.

Vamos ter um exemplo rápido para ilustrar isso. Eu sou um usuário. Estou pensando em fazer uma aposta na próxima luta do Little Mac. Há uma facilidade no contrato que me permite inspecionar o oráculo que será usado para determinar o vencedor desta partida. Verifico que o contrato é bem conhecido apresentado pela Nintendo Sports. Sinto-me suficientemente confiante nesse oráculo. (Para adicionar um pouco mais de complexidade, talvez o contrato permita que os usuários escolham entre uma variedade de oráculos disponíveis para uma determinada partida). Agora posso inspecionar o código do oráculo e ver que a lógica do oráculo garante que esse mesmo oráculo será usado para determinar o resultado da partida. Então eu, como apostador, tenho pelo menos essa garantia. Isso não exclui o fato de que meu oráculo pode ser ruim (ou seja, corrupto ou não confiável), mas pelo menos me garante que ele não pode ser alterado em segundo plano.

Um risco aqui seria que o oráculo “fale” (para de ser mantido ou atualizado) entre o momento em que eu faço a aposta e a partida é decidida. O dinheiro pode ser bloqueado no contrato e se tornar irrecuperável. Para isso, poderíamos (talvez) colocar uma cláusula de ativação por tempo no contrato, em que se uma partida for indecisa por uma determinada hora ou data (pode ser parte da definição da partida), é considerada “morta” e todo o dinheiro trancado dentro é devolvido aos apostadores.

3. Deixe o oráculo ser definido pelo usuário

Um ainda mais complicado (mas possivelmente mais interessante) seria deixar o endereço do oráculo “em branco”, em certo sentido, para permitir que os usuários especifiquem seus próprios oráculos e formem seus próprios pools de apostas (através do contrato) em torno desses oráculos. Grupos de usuários que estão usando o mesmo oráculo podem apostar juntos seguindo a lógica do contrato. Isso coloca o ônus sobre o usuário de escolher um oráculo em que confia e compartilhar esse oráculo com outros usuários que pensam da mesma forma. Na verdade, ele fragmenta a comunidade de apostas, então só funcionaria se houvesse uma grande base de usuários; caso contrário, haveria poucos apostadores envolvidos para realmente tornar as apostas interessantes e lucrativas. Se eu sou a única pessoa apostando com meu oráculo favorito, não há muito incentivo lá! Mas, por outro lado, assume a responsabilidade de escolher um oráculo confiável do proprietário do contrato, e ele pode lavar as mãos disso. Se alguns usuários acharem um oráculo não confiável, eles simplesmente pararão de usá-lo e mudarão para outro, e ninguém ficará bravo com o proprietário do contrato. Ele simplesmente forneceu a arena de apostas e executou seu serviço com honra.

Adicionando à complicação desta estratégia é o fato de que teríamos que de alguma forma deixar um lote orgânico de oráculos 'crescer' na natureza, e aqueles que se encaixam exatamente nesta solução. Teríamos que transmitir ao mundo a interface exata à qual os oráculos em potencial devem aderir, e esperar que um número decente deles surgisse para realmente dar ao usuário alguma escolha. Talvez pudéssemos semear o lote com um ou dois nossos. Se não demorar, então não temos DApp de apostas. Mas se isso acontecer, tenho que admitir que a ideia de oráculos cultivados organicamente e selecionados pelo usuário na natureza é uma solução interessante e atraente.

2. O proprietário/mantenedor do oráculo pode estar corrompido

Corrupto ou seja, no sentido de não confiável; que o dono/mantenedor/gerente do oráculo provavelmente proclamará um resultado incorreto para uma partida, a fim de enriquecer.

Exemplo: Eu sou o proprietário/mantenedor do oráculo real que alimenta dados de boxe no blockchain para o contrato de apostas usar. Meu oráculo não está diretamente envolvido em qualquer colocação de apostas ou gerenciamento de apostas. Seu trabalho é simplesmente fornecer dados, que o contrato de apostas (e talvez qualquer outro contrato) possa usar. No entanto, posso pessoalmente fazer uma aposta usando o contrato de apostas que, por sua vez, usa meu oráculo; Eu sou anônimo de qualquer maneira, então não tenho medo de qualquer retribuição. Depois de fazer uma aposta nesse contrato, há um claro conflito de interesses. Especificamente, a honestidade com que atualizo meu oráculo com informações verdadeiras e precisas pode entrar em conflito com minhas ações de apostas.

Então, digamos que na próxima partida Sandman/von Kaiser, em que von Kaiser é o azarão, eu vou em frente e faço uma aposta enorme em von Kaiser. Quando von Kaiser perde como esperado, eu uso meu oráculo para proclamá-lo falsamente o vencedor! O contrato de aposta é executado como deveria (não há como pará-lo neste momento), eu faço uma matança na partida, não há recurso e não há como me punir, e a vida continua. Talvez, depois disso, as pessoas se recusem a usar meu oráculo; talvez eu não me importe.

Como podemos prevenir isso?

Agora estamos diante de uma questão muito maior e que vai direto ao cerne da chamada falta de confiança no que se refere aos oráculos. O oráculo é confiável para ser um terceiro neutro ou mesmo um terceiro confiável. O problema é que o oráculo é dirigido por humanos. Ainda outra questão é que o oráculo exerce um grande controle sobre como o contrato do cliente desempenha suas funções, uma vez que fornece os dados sobre os quais o contrato atua. Como podemos saber que podemos confiar em um determinado oráculo?

Por que devemos confiar em qualquer oráculo?

Se toda a ideia dos contratos inteligentes de blockchain é remover a necessidade de confiar em qualquer pessoa, então o fato de que devemos “confiar” em um oráculo não é contra a falta de confiança? Bem, eu diria: é hora de crescer, filho (ou filha)! Não existe pura falta de confiança, e o blockchain não fornece um ambiente sem confiança. Blockchain é uma camada que facilita as interações humanas. As interações humanas ainda são o resultado principal ou final, e as interações humanas não podem ser confiáveis.

Link: O problema do Oracle

A evolução da confiança

De volta ao início dos tempos, como eu poderia confiar em outro ser humano? Suponha que eu esteja caçando mamute, e esse cara diga que vai me ajudar a caçar o mamute, em troca de metade da carne? Como ele pode confiar que eu fornecerei a metade? Como posso confiar que isso não vai me atingir na cabeça e levar todo o mamute, uma vez que a caçada termine?

Naquela época, a ameaça de violência provavelmente estava no centro de muitos tipos de confiança socioeconômica. Se eu tentar roubar a parte desse cara, tenho certeza de que ele tentará me atacar, e isso incorre em risco para mim. Mesmo se eu me sentir confiante de que venceria uma luta com ele, eu (como um homem das cavernas) sei o suficiente sobre luta para saber que tudo pode acontecer, e eu poderia facilmente sofrer uma lesão com risco de vida, mesmo se eu vencer tecnicamente. É sempre um risco e um investimento de energia. Nesse mundo, isso poderia ser suficiente para manter as pessoas honestas.

Em geral, não vou trapacear porque não é do meu interesse , em geral e na média, fazê-lo. Em outras palavras, o resultado esperado da trapaça é menor do que o resultado esperado da cooperação.

Se não for esse o caso, ou se os atores perceberem que não é assim, possivelmente um ou mais simplesmente optarão por não participar. Por exemplo, se eu vir que o outro cara é um gigante de 9 pés de altura com chifres e dentes de monstro, eu posso escolher fugir e não fazer nenhum acordo; o cara parece muito perigoso para eu lidar, ele poderia simplesmente roubar o que ele gosta impunemente. Se somos mais ou menos iguais, percebemos que estamos em uma situação em que não é do interesse de nenhuma das partes trapacear, é do interesse de ambas cooperar e, portanto, assumindo que ambas as partes são sãs e racionais, ambas as partes cooperarão.

Contratos Oracle e a evolução da confiança

À medida que a cultura se desenvolveu, o mesmo aconteceu com as interações humanas. Eles se tornaram menos violentos, embora a ameaça implícita de força não tenha desaparecido. Os costumes culturais deram às pessoas maior incentivo para cooperar e diferentes tipos de desincentivos para trapacear.

Avanço rápido para um tempo de civilização primitiva; Estou fazendo uma barganha para comprar 100 alqueires de trigo. É uma espécie de contrato futuro primitivo; Estou pagando hoje pelo grão que receberei quando for colhido no próximo mês. Dou ao cara minha moeda de cobre, apertamos as mãos, compartilhamos um gole de cerveja de cevada e nos separamos até o próximo mês para a liquidação do contrato. Parece ok.

Eu me coloquei à mercê daquele cara; ele tem todo o meu dinheiro, e eu não tenho nada ainda. Então, o que me faz sentir confiante de que ele cumprirá o contrato? Algumas coisas. Ele é um empresário; ele regularmente faz negócios com a população local. Ele fez negócios com pessoas que conheço e sempre entregou de forma justa e pontual. Ele tem uma reputação de honestidade. Além disso, eu sei que ele tem um desincentivo para fazer batota. Ele ganha a vida principalmente com base no fato de ser conhecido por ser um comerciante honesto. Se ele me enganasse, eu deixaria todos saberem, e isso prejudicaria sua boa reputação e, portanto, seus negócios. A quantidade de dinheiro que ele ganha me enganando seria pequena em comparação com a quantia futura que ele poderia não ganhar se sua base de clientes o abandonasse. Então eu sei que não é necessariamente do seu interesse me enganar.

Isso é ótimo; a ameaça de força ou violência está ausente da imagem acima. Exceto por duas coisas:

  1. A ameaça da força não está totalmente ausente. Outro desincentivo à trapaça pode ser o pensamento do que um trapaceiro fará. Tenho armas e amigos leais a mim. Eu, como uma parte zangada e enganada, poderia recorrer à força. É assim que as guerras de clãs começam!
  2. Também pode haver um sistema de governança de algum tipo em vigor, que avaliará os detalhes do caso e possivelmente multará o comerciante ou o colocará na prisão. Seu desincentivo padrão apoiado pelo governo é sempre apoiado pela ameaça de força, porque a punição subjacente por se recusar a pagar a multa, recusar-se a ir para a prisão, recusar-se a cumprir todas as medidas é, em última análise, a força. E isso perdura até os dias atuais. Se eu me recusar a pagar uma multa, posso ser preso. Se eu me recusar a ser preso, haverá força contra mim, e posso ser preso contra minha vontade ou até mesmo morto (se minha resistência for teimosa o suficiente). Lá vemos a ameaça de força a apenas dois passos de distância, mesmo por uma infração menor!

Confiança Descentralizada Hoje

Avanço rápido para os dias atuais. Quais são os desincentivos para quebrar um contrato? Eles são muito diferentes do cenário anterior?

A empresa X tem um desconto por correio para a compra deste produto. Por que você confia que eles vão entregar isso? Igual ao exemplo anterior; a empresa tem pouco a ganhar trapaceando com uma pequena quantia e muito a perder ao prejudicar sua reputação. Esta é a base por trás de muitos cenários de confiança e tem sido por muito tempo. E novamente, como no exemplo do comerciante de grãos, há a ameaça de força, embora neste caso, não chegue a isso. A empresa pode ser multada ou punida com uma ação coletiva, e a empresa deve pagar a multa ou sofrer punições piores. Essas punições são apoiadas por um governo, que por sua vez é apoiado pela ameaça de força, tanto econômica quanto militar, embora possamos considerar que a ameaça de força econômica é, por sua vez, apoiada pela força militar, ou seja, violência.

Sistemas Tradicionais

O modelo de contratos apoiados pela aplicação da força sancionada pelo governo tem servido bem à humanidade por milhares de anos? Ou tem? Bem, tem, mas é uma progressão natural. Na ausência de governo, grupos de pessoas formam governos. Quase parece que você não pode impedir as pessoas de formar governos; eles vão se formar.

Então, e os contratos inteligentes de blockchain? Como o blockchain e o modelo de contrato inteligente garantem a confiabilidade ou desincentivam a trapaça? Não diga apenas “desconfiança”, isso não é uma resposta! Em nossos exemplos anteriores, trapacear é desincentivado de alguma forma.

Vamos dar uma olhada em como o blockchain cumpre (ou substitui) essa função.

Sistemas Blockchain: Bitcoin

Para dividir essa grande questão em questões menores, vamos começar com o bitcoin. Como o bitcoin desincentiva a trapaça? Eu sou livre para executar qualquer software de nó bitcoin que eu quiser, desde que pareça aderir aos protocolos da rede bitcoin. Ninguém me desencoraja de executar meu próprio nó de bitcoin caseiro que faz o que quer enquanto adere aos protocolos de rede; existe alguma maneira em que eu possa usar isso para ganhos ilícitos?

Claro, posso liberar qualquer tipo de transação na rede bitcoin para aprovação. Posso liberar uma transação que envia todo o seu bitcoin para mim, liberá-lo na rede, esperar que ele seja adicionado a um bloco e, uau, agora todos os seus bitcoins pertencem a mim ? Não, por causa da criptografia.

Não tenho sua chave privada e essa transação deve ser assinada com sua chave privada. Então, estou bloqueado lá por criptografia. Ou eu sou? Quem disse que tal transação deve ser assinada? O que acontecerá se eu tentar? Bem, o que vai acontecer, claro, é que toda a rede bitcoin irá rejeitar minha transação. Por que alguém aceitaria? Além do fato de que todos eles estão executando nós padrão, que irão rejeitá-lo, por que eles me ajudariam a trapacear? Fazer isso certamente prejudicará a integridade da rede bitcoin e, ao fazê-lo, prejudicará sua própria riqueza criptográfica. Então não faz sentido eles me ajudarem, um desconhecido anônimo, a enganar outro desconhecido anônimo. Mesmo que um ator irracional de alguma forma aceite minha transação inválida, a grande maioria da rede bitcoin a rejeitará e não terá chance. É derrotado novamente, desta vez por números absolutos.

E se, porém, eu for uma poderosa operação de mineração? Certamente agora tenho mais poder para manipular as coisas a meu favor. Eu faço, mas ainda não me dá nada perto do poder absoluto. Mesmo sendo um minerador poderoso, se eu controlar menos de 50% da rede, não posso fazer muito. Eu tenho algum poder para escolher a ordem em que as transações são adicionadas aos blocos, mas isso dificilmente é o poder de cunhar ou roubar moedas. Mesmo que eu controle mais de 50% da rede (assumindo aqui que o leitor está ciente do conhecido ataque de 51% em relação à prova de trabalho como no bitcoin), meu principal poder seria o gasto duplo. Embora seja um poder legal, é muito questionável se seria do meu interesse fazer isso, pois prejudicaria a integridade do bitcoin. Parece provável que seria melhor usar meu controle para minerar todas as moedas, ganhando assim mais dinheiro e sustentando o terreno sobre o qual essa riqueza está. Assim, não sou derrotado, mas meu impulso de trapacear é frustrado por um desincentivo que está organicamente embutido no protocolo. E esse desincentivo é basicamente sustentado pela força dos números; o consenso esmagador dos participantes na rede bitcoin.

Blockchain Smart Contracts e Oracle Contracts

O que são contratos inteligentes? Suponha que eu tenha implantado um contrato enganoso para enganar as pessoas a me enviarem seu dinheiro? Ou suponha que eu tenha implantado um contrato de apostas e usado um dos ataques (se você pode chamá-los assim) descritos anteriormente? Eu posso fazer isso, pode enganar algumas pessoas; Eu, como um ator desonesto, poderia ganhar algum pequeno lucro com tal empreendimento. A defesa contra isso seria que cada participante considerasse cuidadosamente (como deve ser feito com qualquer contrato) o contrato do qual eles estão prestes a fazer parte e as possíveis maneiras pelas quais ele pode ser abusado. Eles devem considerar também a fonte - o que, se houver, eles sabem sobre a parte que publica e mantém o contrato e quaisquer oráculos ou contratos associados. Seria de esperar que um contrato desonesto não durasse muito antes que a rede o sinalizasse informalmente como desonesto, fazendo com que os participantes o evitassem voluntariamente, cortando-o. A rede é grande, e a palavra viaja rapidamente.

Exceto em algum momento, você ainda precisa confiar em um ser humano. Os dados para o contrato de apostas são fornecidos por um oráculo. O oráculo é mantido por um humano. Não importa quantas camadas você adicione na tentativa de manter a rede honesta, ela ainda volta para um humano em algum momento. Então, em que tipo de oráculo você confiaria, dado nosso exemplo de apostas? Eu confiaria em um oráculo que tivesse mais a perder do que a ganhar, trapaceando. Exemplo: imagine que a ESPN ou uma rede similar fossem os patrocinadores do oráculo. Você esperaria que eles, mais do que ninguém, fornecessem dados honestos, já que ganhar ilicitamente uma pequena quantia em uma aposta de boxe seria ofuscado pela perda de reputação resultante. Neste caso, sua confiança está bem colocada pela mesma razão que nós confiamos no honesto comerciante de grãos. Esse tipo de acordo de confiança é antigo e bem estabelecido.

Então, o que ganhamos com o uso de contratos inteligentes? Como os contratos inteligentes são diferentes da governança ou dos métodos anteriores de manutenção de contratos?

Empacotando

Apenas para fazer uma observação, para dar espaço para reflexão e discussão, e para encerrar meu artigo, vou apresentar algumas observações simples, no lugar de conclusões difíceis. Porque para um tópico dessa complexidade, uma conclusão concisa parece uma espécie de história e uma simplificação excessiva. As observações que vou apresentar (e, por favor, sinta-se à vontade para discuti-las/refutá-las/contradizê-las) são estas:

  • A confiança baseada na suposição de que a outra parte tem mais a ganhar cooperando do que trapaceando é antiga, funciona em situações práticas e não desapareceu. Ainda é inerente em certos casos no mundo blockchain, embora talvez eliminado em muitos casos. No caso do nosso exemplo de oráculo, ele ainda está vivo e bem.
  • A confiança baseada na ameaça de força ou violência também é inerente à sociedade humana desde tempos imemoriais, mas está notavelmente ausente do nosso modelo de contrato inteligente e foi substituída pela aplicação por meio de combinações inteligentes de criptografia e consenso de grandes números.

Eu desafio outros desenvolvedores do Ethereum a fazer duas coisas:

  1. Pense de qualquer maneira, nos sistemas de blockchains públicos (como bitcoin ou ethereum), nos quais qualquer coisa é imposta pela ameaça implícita ou explícita de força.
  2. Pense em qualquer sistema de regras importante no contrato moderno ou no direito financeiro, que não seja de alguma forma imposto pela ameaça explícita ou implícita da força.

Evolução da ilustração do poder da confiança e do estado

Algo velho, algo novo

E acho que aqui chegamos à principal diferença e, de fato, à verdadeira razão pela qual dizemos que os sistemas blockchain são “revolucionários”, em comparação com os sistemas do passado. Na minha maneira de pensar, não é falta de confiança, mas sim uma plataforma mais estável para confiança e – mais notavelmente – uma que não depende de forma alguma de ameaça de força ou violência.

Por um lado, temos a velha e comprovada garantia de benefício mútuo em situações em que há falta de incentivo para trapacear. Isso não é novidade. O que há de novo é a introdução do consenso assistido por criptografia, que ajuda a desencorajar trapaças e manter o sistema honesto. E a síntese desses dois elementos produziu algo verdadeiramente notável, possível pela primeira vez na história da humanidade: um sistema utilizável por grandes grupos anônimos, em que em nenhum lugar se encontra a ameaça explícita ou implícita da força como desincentivo ou punição. . E isso, eu acredito, é o que é realmente incrível. Se esse aspecto for negligenciado, o que temos é uma nova tecnologia bacana (que eu admito, é legal o suficiente). Mas quando esse aspecto é considerado, fica evidente que entramos em uma nova era de governança.