“O ambiente de produção está além do seu controle”: Rian Lewis em testes de projetos de blockchain



Pode parecer que seja tarde demais para discutir projetos de criptomoedas e blockchain: eles disseram que tudo o que foi possível foi dito há alguns anos atrás e, em seguida, não foram atendidas altas expectativas, a excitação diminuiu e o tópico se tornou irrelevante.

Mas, de fato, agora você pode falar sobre ela seriamente. No auge do hype, era difícil romper os gritos de “IMPOSTANDO NOSSO ICO, NÃO É MAIS TARDE” para algo mais razoável, e na relação sinal / ruído o segundo componente subiu. Mas agora, quando o hype diminuiu e os amantes de fast-food mudaram para outra coisa, tornou-se possível conversar normalmente. E quando a questão de "em que investir" deixou de ofuscar tudo, ficou mais fácil abordar aspectos técnicos.

Ryan Lewis (conhecido, por exemplo, pelo pequeno serviço CountMyCrypto ) vê o ecossistema blockchain da perspectiva de um entusiasta e da perspectiva de um especialista técnico: ela está interessada em "o que está acontecendo" e em testar projetos de blockchain. E decidimos fazer suas perguntas primeiro sobre o primeiro e depois passar para o segundo.


- Em 2018, quando muitos se afastaram das criptomoedas, você continua sendo seu entusiasta. Você acha que, a longo prazo, eles têm um futuro brilhante?

Isso mesmo. Conhece o ciclo Gartner Hype ? Existe um ciclo típico: primeiro, expectativas injustificadas são atribuídas à nova tecnologia, depois ficam desapontadas com ela e, depois de tudo isso, ela se desenvolve e se torna realmente procurada. Na minha opinião, estamos agora no ponto mais baixo da decepção. Isso se deve em parte à atual crise de criptomoedas. Como você sabe, a tendência dos preços está em queda agora. No entanto, existe uma opinião generalizada com a qual concordo que é nesta fase que um trabalho importante ocorre.

Agora, há muito menos especulações do que em 2017 e no segundo semestre de 2016. Os projetos estão lenta mas seguramente se desenvolvendo. Paralelamente à queda nos preços, o interesse nas OICs está caindo, mas o número de novas empresas não está diminuindo: apenas as empresas estão mudando para o financiamento privado. Idéias promissoras ainda estão faltando.

Na minha opinião, essa é uma tendência positiva, porque, graças a isso, pessoas com intenções irreais foram filtradas. Eu acho que você sabe que uma parte significativa das tecnologias modernas nessa área não se adapta bem, e muitas startups que levantaram grandes somas de dinheiro foram baseadas em expectativas extremamente irreais. Agora chegou o período de consolidação e, do meu ponto de vista, esse é o melhor. O trabalho está em andamento em projetos muito interessantes, eles simplesmente não falam sobre eles todos os dias nas notícias.

Especificamente, no caso do Ethereum, uma diminuição no número de transações me parece um sinal saudável. A arquitetura blockchain da Ethereum não foi projetada para o número de aplicativos descentralizados que começaram a surgir no ano passado após o lançamento do CryptoKitties. Recentemente, um dos evangelistas da Parity IT pediu, meio brincando, que parasse de implantar novos DApps no Ethereum. Muitos ficaram indignados ao ouvir isso, mas, em essência, ele estava certo. Você não pode continuar a implantar cada vez mais aplicativos descentralizados no Ethereum sem pensar na arquitetura desses aplicativos. É necessário tentar realizar o máximo de ações fora da cadeia, pois a situação atual não pode continuar por muito tempo.

Em geral, agora é observado um nível bastante alto de atividade, mas devido ao fato de todas as novas cadeias de blocos estarem lançando suas redes principais, o número de transações é distribuído entre um grande número de cadeias de cadeias. Além disso, a popularidade de blockchains sem tokenização está crescendo - Hyperledger e Corda podem ser mencionados como exemplos. O Corda foi criado no consórcio R3, pode ser usado como uma blockchain privada. Portanto, agora há várias cadeias de bloco que não são públicas e tokenizadas, você não pode ver as atividades atuais nelas. Bem, é claro, existem blockchains em várias organizações criadas por várias implementações do Blockchain como um Serviço, como o SAP ou as oferecidas pela Microsoft. Então, acho que agora o nível de atividade é bastante alto, mas nem toda essa atividade é visível ao público.

- Alguns anos atrás, muitos gostaram da notícia de que mesmo a conferência Bitcoin parou de aceitar pagamentos em bitcoins devido ao aumento de taxas e tempo de processamento. Agora, e as criptomoedas como forma de pagamento?

- Como exemplo, posso citar a conferência Paralelní Polis do Hackers Congress em Praga, onde estarei agora - eles aceitam pagamentos apenas em bitcoins e outras criptomoedas. Já comprei um ingresso para bitcoins e, enquanto estiver lá, comprarei toda a comida para eles também. No entanto, você levantou um problema realmente importante: devido ao aumento dos preços do Bitcoin, por algum tempo as pessoas o usaram não para transações, mas como um investimento. O tempo todo dizia que era ouro eletrônico, então era comprado para armazenamento e não para transações. Em 2013, comprei um pouco de cerveja e café por bitcoins - então custou algumas libras ou alguns euros, e agora a mesma quantidade em bitcoins pode ser vendida por uma quantia bastante decente.

De fato, muito depende de uma pessoa em particular. Por exemplo, eu tenho uma namorada da Rússia que não possui uma conta bancária. Nos últimos quatro anos, ela usa apenas criptomoedas por razões éticas. Há um pequeno número dessas pessoas, um exemplo que prova que é possível viver em princípio. Mas uma parte significativa das empresas que costumavam aceitar bitcoins agora parou de fazer isso. Isso se deve em parte ao fato de que durante uma onda de interesse em bitcoins em algum café ou bar, eles poderiam treinar um funcionário para usar o aplicativo e, em seguida, esse funcionário foi embora, e o próximo caixa não sabia como trabalhar com o aplicativo. É uma pena que tenha acontecido assim, porque essas habilidades são muito simples. Em grande parte, tudo está ligado à preservação do conhecimento existente. Muito está sendo feito agora para integrar criptomoeda e dinheiro fiduciário, simplificando o pagamento.

Em geral, estamos agora em algum tipo de fase intermediária. No início, havia muito entusiasmo devido ao fato de que as pessoas esperavam pagar por tudo apenas com criptomoeda. Então esse entusiasmo acabou, e a instabilidade dos cursos afastou muitos. No entanto, acredito que ainda não está longe o tempo em que as pessoas usarão muitas criptomoedas diferentes. Também vale lembrar as tentativas de várias empresas de introduzir alguma censura - sabe-se, por exemplo, que o PayPal fecha as contas das pessoas por razões políticas. Graças a isso, a conscientização da necessidade de dinheiro livre de censura está ganhando terreno.

- Há três anos, eles gostaram de repetir “as possibilidades do blockchain não se limitam ao bitcoin, tem muitas outras aplicações possíveis” e tentaram usá-lo em vários campos. E o que a vida mostrou agora? Foi útil na prática em outros lugares?

Sim. Um dos projetos recentes mais famosos foi criado pela Samsung para o transporte de mercadorias. Você deve saber que cada navio de carga que vem da China para a Europa gera cerca de dois quilos de documentos. Isso demanda uma quantidade enorme de recursos, já que não se trata apenas de papel, mas também de centenas de pessoas que assinam, carimbam, preenchem esses documentos e assim por diante. Tudo isso é necessário porque as pessoas não confiam uma na outra: a empresa que recebe as mercadorias quer ter certeza de que elas não são falsas; as autoridades querem garantir que a empresa não esteja importando nada ilegal; autoridades de diferentes países não confiam umas nas outras. Graças a isso, surgiu a idéia de usar o blockchain para resolver esse problema de falta de confiança, principalmente quando aplicado ao transporte de mercadorias. E, recentemente, um consórcio liderado pela Samsung fez o primeiro embarque da Ásia para a Europa, registrado através do blockchain.

Portanto, agora existem projetos bem-sucedidos baseados no blockchain, no entanto, a maioria deles ainda está na fase experimental. É verdade que algumas empresas estão aumentando lentamente a atividade - por exemplo, o Power Ledger, está envolvido na distribuição de eletricidade e registra pequenas transações usando o blockchain. Mais recentemente, eles expandiram seu campo de atividade para três cidades da Austrália e parecem oferecer seus serviços mesmo fora da Austrália. Alguns bancos usam blockchains para fechar negócios.

Quando falamos de blockchains fora do Bitcoin, você precisa ter cuidado. Alguns anos atrás, o clima era popular de que precisávamos de uma blockchain sem bitcoin, mas acho que as pessoas agora perceberam que as blockchains públicas precisavam de alguma motivação com tokens. Mas nas blockchains privadas ou blockchains de consórcios, realmente existem muitas atividades diferentes que não estão relacionadas ao bitcoin.

- Você pode dar um exemplo negativo, quando parecia que "o blockchain é muito útil aqui", mas a vida mostrou que isso não é verdade?

- É difícil responder objetivamente. Eu acho que você não encontrará esse caso para alguém declarar publicamente: "a blockchain não funciona aqui". Mas houve situações em que as empresas tiveram que fazer uma curva de 180 graus.

Em Berlim, há uma startup interessante chamada SatoshiPay, que está envolvida em micropagamentos na publicação. Sua intenção era permitir que os escritores monetizassem seu conteúdo: por uma pequena taxa em bitcoins, uma pequena parte da página é aberta ao leitor, depois a próxima e assim por diante. No início, a empresa rapidamente ganhou fama e conseguiu arrecadar fundos, mas a taxa para transações no Bitcoin se tornou muito alta e todos os seus planos foram queimados por causa disso. O caso não terminou em completo fracasso, mas eles tiveram que mudar do Bitcoin para o Stellar. Outro exemplo que posso citar diz respeito a mercados de previsão. Estamos falando de alguns sites de apostas que foram originalmente baseados no Ethereum e que posteriormente tiveram que abandoná-lo. Nos dois exemplos descritos, a ideia de usar blockchain era bastante razoável, apenas a escolha concreta errada foi feita.

Existem outros exemplos de curvas fechadas. Não posso citar nomes específicos, mas houve rumores sobre startups que usaram o blockchain para criar registros médicos. A princípio, isso parecia uma direção promissora, mas surgiram questões sobre o lado jurídico da questão: é permitido ter uma estrutura de dados imutável para armazenar informações, que pode ser necessária para mudar em caso de alterações na legislação ou por razões éticas, ou seja, se uma pessoa obtiver o direito de não incluir isso? informações em seu livro médico.

Acho que houve muitas situações em que as empresas tentaram usar o blockchain simplesmente porque estava na moda, e não porque tinham um problema específico de falta de confiança que poderia ser resolvido usando o blockchain. Eu acho que esse tipo de projeto está passando por dificuldades no momento. Mas, tanto quanto eu sei, geralmente essas dificuldades são resolvidas mudando de uma blockchain para outra, ou, no interesse de economizar tempo, mudando de uma blockchain pública para todo o projeto para blockchains privadas com prova de autoridade.

- Vamos seguir para questões mais técnicas. Você tem um post sobre dez equívocos comuns sobre blockchain / criptomoedas. Destina-se ao público em geral, e a maioria dos nossos leitores já sabe o que é descrito lá, mas pode não saber de mais nada. Existem conceitos errados sobre o blockchain que são comuns entre o público de TI?

- Eu não usaria a palavra "erro", porque qualquer pessoa que esteja envolvida em tecnologia e pelo menos um pouco familiarizada com o blockchain terá uma idéia muito boa sobre o básico dessa tecnologia. Eu acho que é mais correto falar não sobre se livrar de erros, mas sobre alguns novos conhecimentos, treinamento adicional no desenvolvimento e teste de blockchains públicas (blockchains privadas estão muito mais próximas do que os programadores costumam fazer).

Acho que o mais difícil é me acostumar com o fato de que o ambiente de produção está completamente fora do controle do desenvolvedor. Não é fácil prever qual será o desempenho e simular as condições necessárias. Para mim, essa foi a principal dificuldade quando escrevi um pedido para o Ethereum com meus amigos dois anos atrás.

Tudo correu bem conosco, havia um pipeline bem estabelecido, o aplicativo lançado com sucesso no blockchain virtual, que faz parte do conjunto de ferramentas fornecidas pela Ethereum. Implantamos o aplicativo no Testnet e lá funcionou perfeitamente. Porém, quando implantado em uma rede de produção, fica muito mais difícil prever como o aplicativo se comportará com o usuário. Por exemplo, são possíveis atrasos numerosos e imprevisíveis. Muitos problemas sérios não ocorrem em um ambiente de teste, mas surgem apenas na produção.

Suponha que você tenha um contrato no Ethereum, e esse contrato, entre outras coisas, crie dinamicamente carteiras para os usuários. Mas outro contrato do mesmo aplicativo pode ser lançado antes da criação das carteiras, e isso acontecerá porque o bloco correspondente será minerado primeiro. Assim, haverá muitas armadilhas exploradas à sua frente que geralmente não podem ser encontradas antes da produção. Portanto, não é suficiente para você testar o aplicativo, é necessário prever com antecedência como ele se comportará na produção.

Por exemplo, um bug muito sério foi descoberto recentemente em uma carteira com a Parity Wallet com várias assinaturas. A carteira, de fato, foi desativada devido ao fato de que alguém de fora teve acesso a uma função que deveria ser privada. Assim, ele conseguiu desativar todo o contrato. Essa situação não deveria ter surgido, mas desde que aconteceu, nada pode ser feito, porque esse código já apareceu em milhares de máquinas e é impossível revertê-lo. Portanto, ao pensar sobre arquitetura e teste, você deve pensar nos piores cenários possíveis e em como mitigar possíveis danos em uma situação em que não é possível recuperar o código.

Normalmente, ao escrever um site como último recurso, você sempre pode desligar o servidor. Obviamente, isso custará dinheiro, mas há uma oportunidade. E no caso da blockchain pública, você não pode nem fazer isso: uma vez que o código implantado não é mais possível retornar.

- Quando você pensa em testar projetos de criptomoeda, a primeira coisa que você lembra é de histórias com roubos gigantescos. Entendo corretamente que, ao testar, a consideração mais importante é a segurança?

Isso mesmo. De acordo com o efeito Metcalfe, a rede com mais usuários será a mais bem-sucedida e popular no futuro. Devido a esse efeito, de todas as blockchains públicas, o maior desenvolvimento é realizado no Ethereum. Muitas ferramentas e bibliotecas foram criadas para ela. Por exemplo, existe uma inicialização do OpenZeppelin que fornece acesso a várias bibliotecas com a funcionalidade mais básica - por exemplo, elas possuem uma biblioteca SafeMath que evita estouros. Assim, eles cuidam de algumas coisas muito simples - por exemplo, garantem que você inclua bibliotecas de código aberto para segurança.

Ser responsável pelo dinheiro de outras pessoas é sempre difícil, mas não apenas o roubo é uma ameaça. No caso dos hacks mais graves, muitas vezes não era um roubo, mas um bloqueio no acesso ao dinheiro: esse era, por exemplo, o caso do bug na carteira da Parity, sobre o qual eu já falei. O dinheiro não desaparece, mas é impossível para o proprietário recebê-lo. Do ponto de vista da segurança, essa é uma ameaça completamente nova que também deve ser lembrada. Você não deve pensar se alguém pode roubar esse dinheiro, mas se o sistema é seguro, se alguém pode cancelar o contrato.

Quando falo sobre o teste de blockchains para segurança, tento sempre transmitir a ideia de que vulnerabilidades podem existir não apenas em contratos inteligentes. O motivo também pode ser que os desenvolvedores se concentram inteiramente no contrato inteligente e, por causa disso, perdem de vista o aplicativo como um todo. Obviamente, isso desempenha um papel muito menor se você simplesmente fornecer um banco de dados ou API. No entanto, muitos desenvolvem aplicativos da Web ou aplicativos móveis baseados em blockchains, e vulnerabilidades muito significativas podem surgir aqui devido ao fato de os desenvolvedores não pensarem corretamente. Por exemplo, no ano passado, a bolsa de criptografia italiana BitGrail invadiu a moeda Nano. Não houve problemas ao interagir com carteiras de várias moedas no back-end. Mas ainda não acredito que ninguém tenha notado o erro cometido pelo desenvolvedor de front-end. Quando um usuário sacava dinheiro da carteira, um cheque com um saldo da conta era criado no lado do cliente e, por causa disso, qualquer invasor com o conhecimento mais básico das ferramentas do Chrome podia sacar dinheiro, sempre que alterava seu saldo para um valor maior. Muitos se aproveitaram disso e houve um grande vazamento de fundos.

Assim, tentando tornar o blockchain o mais seguro possível, os desenvolvedores geralmente ignoram a segurança elementar do, digamos, o frontend. E essa não é a primeira vulnerabilidade de front-end que os invasores aproveitaram. Curiosamente, as equipes de desenvolvimento em questão são bastante experientes; , . , - . , - . . , .

— , «» ?

— , . , , . , .

, API, , . , user experience. , , , , . .

, , . , , , , .

, . . , , , . Bitcoin, , Bitcoin , Litecoin. , , Block Explorer. , .

: , Docker, Jenkins .

— , , -?

— . , , — . , — , . , — , , . , , , , , .

— , , : . ?

— , , . , computer science 10 , , , . , , , . - , . , , .

, , , — , , , - . . , , SQL NoSQL Redis. , 5-6 , .

— , , , « , ». , , - , ?

— , . , , , .

, , , . , . ; , . , .

, , , , - . , , . , , , , . , big data, , Hadooop. , . , . , , .

— , . , , : ( , )?

— , — . . , , , — , Lightning Network Bitcoin Litecoin, Plasma Raiden Ethereum. — . , Ethereum — , proof-of-work proof-of-stake. , , . , , , .

, , , , . — , , , , .

— , , . , , . , , , - ? ?

— , . . , , . , , . , , , .

— . !

. - : , , , . Heisenbug 2018 Moscow , 6-7 . , .

Source: https://habr.com/ru/post/pt428556/


All Articles