Recentemente, houve uma pequena briga entre as facções Core e Unlimited da comunidade Bitcoin, uma briga que representa talvez a quinquagésima vez que o mesmo tema foi debatido, mas que não deixa de ser interessante porque destaca um ponto filosófico muito sutil sobre como os blockchains trabalhar.
ViaBTC, um pool de mineração que favorece o Unlimited, twittou “hashpower é lei”, um ponto de discussão habitual para o lado Unlimited, que acredita que os mineiros têm, e deveriam ter, um papel muito grande na governação do Bitcoin, sendo o argumento habitual para isto que os mineiros são a única categoria de utilizadores que tem um incentivo financeiro grande e ilíquido para o sucesso do Bitcoin. Greg Maxwell (do lado central) respondeu que “a segurança do Bitcoin funciona precisamente porque o poder do hash NÃO é lei”.
O argumento principal é que os mineiros têm apenas um papel limitado no sistema Bitcoin, para garantir a ordem das transações, e NÃO devem ter o poder de determinar mais nada, incluindo limites de tamanho de bloco e outras regras de validade de bloco. Essas restrições são impostas por nós completos executados pelos usuários – se os mineradores começarem a produzir blocos de acordo com um conjunto de regras diferentes das regras que os nós dos usuários impõem, então os nós dos usuários simplesmente rejeitarão os blocos, independentemente de serem 10% ou 60. % ou 99% do hashpower está por trás deles. Para isso, Unlimited frequentemente responde algo como “se 90% do hashpower estiver por trás de uma nova cadeia que aumenta o limite de bloco, e a antiga cadeia com 10% de hashpower for agora dez vezes mais lenta por cinco meses até que a dificuldade se reajuste, você poderia clientes não atualizou seu cliente para aceitar a nova rede?”
Muitas pessoas muitas vezes argumentar contra o uso de blockchains públicos para aplicações que envolvem ativos do mundo real ou qualquer coisa com risco de contraparte. As críticas são totais, dizendo que não faz sentido implementar tais casos de uso em blockchains públicos, ou parciais, dizendo que embora possa haver vantagens em armazenar o dados, em uma cadeia pública, o logíca de negócios deve ser executado fora da cadeia.
O argumento normalmente usado é que em tais aplicações já existem pontos de confiança – há alguém que possui os ativos físicos que respaldam os ativos permitidos na cadeia, e que alguém pode sempre optar por fugir com os ativos ou ser obrigado a congelar. por um governo ou banco, e assim gerir as representações digitais destes activos numa blockchain é como pagar por uma porta de aço reforçada para a sua casa quando a janela está aberta. Em vez disso, tais sistemas devem utilizar cadeias privadas, ou mesmo soluções tradicionais baseadas em servidores, talvez adicionando pedaços de criptografia para melhorar a auditabilidade e, assim, poupar nas ineficiências e nos custos de colocar tudo numa cadeia de blocos.
Os argumentos acima são falhos em suas formas puras e de maneira semelhante. Enquanto é teoricamente possível para os mineradores mudarem 99% de seu hashpower para uma cadeia com novas regras (para dar um exemplo onde isso é incontroversamente ruim, suponha que eles estejam aumentando a recompensa do bloco), e até mesmo acampamento de desova a antiga cadeia para torná-la permanentemente inútil, e também é teoricamente possível para um gestor centralizado de uma moeda garantida por ativos deixar de honrar um token digital, criar um novo token digital com os mesmos saldos do token antigo, exceto com uma conta específica saldo reduzido a zero, e passar a honrar o novo token, na prática essas coisas são muito difíceis de fazer.
No primeiro caso, os utilizadores terão de perceber que algo está errado com a cadeia existente, concordar que devem ir para a nova cadeia onde os mineiros estão agora a minerar e descarregar o software que aceita as novas regras. No segundo caso, todos os clientes e aplicações que dependem do token digital original irão quebrar, os usuários precisarão atualizar seus clientes para mudar para o novo token digital e contratos inteligentes sem capacidade de olhar para o mundo exterior e ver se eles precisa atualizar irá quebrar completamente. No meio de tudo isso, os oponentes da mudança podem criar uma campanha de medo, incerteza e dúvida para tentar convencer as pessoas de que talvez elas não devam atualizar seus clientes, ou atualizar seus clientes para algum terceiro conjunto de regras (por exemplo, alteração do comprovante de trabalho), o que torna a implementação da mudança ainda mais difícil.
Portanto, podemos dizer que em ambos os casos, embora teoricamente existam partidos centralizados ou quase centralizados que poderiam forçar uma transição do estado A para o estado B, onde o estado B é desagradável para os utilizadores, mas preferível para as partes centralizadas, fazê-lo requer rompendo um problema difícil de coordenação. Os problemas de coordenação estão por toda parte na sociedade e muitas vezes são uma coisa ruim – embora fosse melhor para a maioria das pessoas se a língua inglesa se livrasse do seu sistema ortográfico altamente complexo e irregular e fizesse um sistema fonético, ou se os Estados Unidos mudassem para o sistema métrico, ou se pudéssemos imediatamente reduzir todos os preços e salários em dez por cento no caso de uma recessão, na prática isso exige que todos concordem com a mudança ao mesmo tempo, e isso geralmente é muito difícil.
Com os aplicativos blockchain, entretanto, estamos fazendo algo diferente: estamos usando problemas de coordenação a nosso favor, utilizando a fricção que os problemas de coordenação criam como um baluarte contra a má conduta por parte de intervenientes centralizados. Podemos construir sistemas que tenham a propriedade X e podemos garantir que eles preservarão a propriedade X em alto grau, porque mudar as regras de X para não-X exigiria que um monte de pessoas concordassem em atualizar seu software ao mesmo tempo. . Mesmo que exista um interveniente que possa forçar a mudança, fazê-lo seria difícil. Esse é o tipo de segurança que você obtém com a validação das regras de consenso do blockchain no lado do cliente.
Observe que esse tipo de segurança depende especificamente da descentralização dos usuários. Mesmo que exista apenas um minerador no mundo, ainda há uma diferença entre uma criptomoeda extraída por esse minerador e um sistema centralizado semelhante ao PayPal. Neste último caso, o operador pode optar por alterar arbitrariamente as regras, congelar o dinheiro das pessoas, oferecer um mau serviço, aumentar as suas taxas ou fazer uma série de outras coisas, e os problemas de coordenação estão a favor do operador, uma vez que tais sistemas têm efeitos de rede substanciais e muitos utilizadores teriam de concordar ao mesmo tempo em mudar para um sistema melhor. No primeiro caso, a validação do lado do cliente significa que muitas tentativas de travessuras que o minerador possa querer realizar são rejeitadas por padrão, e o problema de coordenação agora funciona a favor dos usuários.
Observe que os argumentos acima NÃO, por si próprios, implicam que é uma má ideia que os mineradores sejam os principais atores coordenando e decidindo o tamanho do bloco (ou, no caso do Ethereum, o limite de gás). Pode muito bem acontecer que, no caso específico do tamanho do bloco/limite de gás, “governo por mineiros coordenados com incentivos alinhados” é a abordagem ideal para decidir este parâmetro político específico, talvez porque o risco de os mineiros abusarem do seu poder é menor do que o risco de que qualquer limite rígido específico escolhido se revele totalmente inadequado para as condições de mercado. década após o limite ser definido. No entanto, não há nada de irracional em dizer que o governo pelos mineiros é a melhor forma de decidir um parâmetro político e, ao mesmo tempo, dizer que para outros parâmetros (por exemplo, recompensa em bloco), queremos contar com a validação do lado do cliente para garantir que os mineradores sejam limitados. Esta é a essência das instituições descentralizadas de engenharia: trata-se de usar estrategicamente problemas de coordenação para garantir que os sistemas continuem a satisfazer certas propriedades desejadas.
Os argumentos acima também não implicam que seja sempre ideal tentar colocar tudo em uma blockchain, mesmo para serviços que exigem confiança. Geralmente há pelo menos alguns ganhos a serem obtidos ao executar mais lógica de negócios em um blockchain, mas eles geralmente são muito menores do que as perdas de eficiência ou privacidade. E isso está bem; o blockchain não é a melhor ferramenta para todas as tarefas. Quais são os argumentos acima do O que implica, porém, é que se você estiver construindo um aplicativo baseado em blockchain que contém muitos componentes centralizados por necessidade, então você pode obter ganhos adicionais substanciais na minimização da confiança, dando aos usuários uma maneira de acessar seu aplicativo através de um cliente blockchain regular ( por exemplo, no caso do Ethereum, pode ser Mist, Parity, Metamask ou Status), em vez de fazer com que eles usem uma interface web que você controla pessoalmente.
Teoricamente, os benefícios da validação do lado do usuário são otimizados se literalmente cada usuário executar um “nó completo ideal” independente – um nó que aceita todos os blocos que seguem as regras de protocolo com as quais todos concordaram ao criar o sistema, e rejeita todos os blocos que o fazem. não. Na prática, porém, isto envolve pedir a cada utilizador que processe todas as transacções efectuadas por todos na rede, o que é claramente insustentável, especialmente tendo em conta o rápido crescimento de utilizadores de smartphones no mundo em desenvolvimento.
Existem duas saídas aqui. A primeira é que podemos perceber que, embora seja ideal do ponto de vista dos argumentos acima de que todos executam um nó completo, certamente não é requeridos. Indiscutivelmente, qualquer grande blockchain rodando em plena capacidade já terá atingido o ponto em que não fará sentido para “as pessoas comuns” gastar um quinto do seu espaço no disco rígido para executar um nó completo e, portanto, os usuários restantes são amadores e negócios. Enquanto houver um número bastante grande deles e eles vierem de diversas origens, o problema de coordenação para conseguir que esses usuários conspirem ainda será muito difícil.
Em segundo lugar, podemos confiar tecnologia de cliente de luz forte.
Existem dois níveis de “clientes leves” que geralmente são possíveis em sistemas blockchain. O primeiro tipo de cliente leve, mais fraco, simplesmente convence o usuário, com algum grau de segurança econômica, de que ele está na cadeia que é suportada pela maior parte da rede. Isso pode ser feito de maneira muito mais barata do que verificar toda a cadeia, já que tudo o que os clientes precisam fazer é verificar os nonces nos esquemas de prova de trabalho ou nos esquemas de estaca de prova verificar os certificados assinados que afirmam “ou o hash raiz do estado é o que eu digo é, ou você pode publicar este certificado na cadeia principal para deletar uma grande quantia do meu dinheiro”. Depois que o cliente light verifica um hash raiz, ele pode usar árvores Merkle para verificar qualquer dado específico que queira verificar.
Olha, é uma árvore Merkle!
O segundo nível é um cliente light de “verificação quase completa”. Esse tipo de cliente não tenta apenas seguir a cadeia que a maioria segue; em vez disso, também tenta seguir apenas cadeias que sigam todas as regras. Isto é feito através de uma combinação de estratégias; o mais simples de explicar é que um cliente light pode trabalhar em conjunto com nós especializados (crédito a Gavin Wood por ter inventado o nome “pescadores”) cujo objetivo é procurar blocos inválidos e gerar “provas de fraude”, mensagens curtas que essencialmente diga “Olha! Esse bloco tem uma falha aqui!”. Os clientes leves podem então verificar aquela parte específica de um bloco e verificar se ela é realmente inválida.
Se um bloco for considerado inválido, ele será descartado; se um cliente light não ouvir nenhuma prova de fraude para um determinado bloco por alguns minutos, ele assumirá que o bloqueio é provavelmente legítimo. Há um um pouco mais de complexidade envolvidos no tratamento do caso em que o problema não são os dados que são ruim, mas sim dados que são desaparecido, mas em geral é possível chegar bem perto de capturar todas as formas possíveis pelas quais mineradores ou validadores podem violar as regras do protocolo.
Observe que para que um cliente light seja capaz de validar eficientemente um conjunto de regras de aplicação, essas regras devem ser executadas dentro do consenso – ou seja, elas devem ser parte do protocolo ou parte de um mecanismo executado dentro do protocolo ( como um contrato inteligente). Este é um argumento fundamental a favor do uso do blockchain tanto para armazenamento de dados quanto para execução de lógica de negócios, em vez de apenas armazenamento de dados.
Estas técnicas de clientes leves são imperfeitas, pois baseiam-se em suposições sobre a conectividade da rede e o número de outros clientes leves e pescadores que estão na rede. Mas na verdade não é crucial que funcionem 100% do tempo para 100% dos validadores. Em vez disso, tudo o que queremos é criar uma situação em que qualquer tentativa de um cartel hostil de mineradores/validadores de enviar blocos inválidos sem o consentimento do usuário causará uma grande dor de cabeça para muitas pessoas e, em última análise, exigirá que todos atualizem seu software se desejarem. deseja continuar a sincronizar com a cadeia inválida. Desde que isto seja satisfeito, alcançaremos o objectivo da segurança através de fricções de coordenação.
Fonte: https://vitalik.eth.limo/general/2017/05/08/coordination_problems.html
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- BlockOffsets. Modernizando a Propriedade de Compensação Ambiental. Acesse aqui.
- Fonte: Platão Inteligência de Dados.