Blockchain e Bitcoin – Parte III: Entendendo o bitcoin (as transferências entre contas)
Nos dois primeiros textos desta série, comentei sobre as dificuldades de se implementar uma moeda digital e contei brevemente como nasceu o bitcoin, em discussões travadas em um fórum público sobre criptografia. Tentarei, a partir desta terceira parte, expor os principais aspectos técnico-informáticos do bitcoin. Como tenho falado à exaustão há pelo menos duas décadas, compreender os fatos informáticos é algo absolutamente fundamental se se quer fazer qualquer outro tipo de análise (jurídica, política, social ou econômica, por exemplo) sobre esses fatos. Para o Direito, em especial, sabemos que leis se aplicam a fatos e não é possível aplicar corretamente as primeiras se não entendemos os segundos.
Não cabe aqui a tarefa de esmiuçar alguns conhecimentos básicos que são um pré-requisito para se compreender o bitcoin. Faço, então, uma breve menção a eles, certo de que o leitor não terá dificuldade de encontrar material disponível sobre tais temas, caso queira se aprofundar no assunto. Pode-se dizer que o bitcoin é uma criptomoeda, porque toda a sua segurança, para não dizer a sua própria existência, é assentada sobre operações criptográficas. A criptografia, aliás, está por trás de toda a segurança eletrônica, como, por exemplo, comunicações, compras e transações financeiras feitas pela Internet. Dois conceitos criptográficos são fundamentais: a criptografia assimétrica, que produz assinaturas, e as chamadas funções digestoras, tradução da expressão “hash functions”, ou, num idioma híbrido, mas usual, funções hash.
Criptografia assimétrica, ou criptografia de chaves públicas, é um método de cifrado que utiliza duas chaves, uma que cifra e outra que decifra a mensagem. Uma é a chave pública – e este expressivo adjetivo não parece exigir de maiores explicações – e a outra é a chave privada, que deve ser guardada com exclusividade pelo seu titular. Se o leitor ainda não o sabe, uma assinatura digital é o resultado de uma operação matemática, criptográfica, em que a mensagem é cifrada com a chave privada; decifrar este cifrado corretamente com a chave pública – que é pública! – tem o significado de uma conferência da veracidade da assinatura (ou, mais precisamente, sua correspondência com a chave privada) e sua relação com a mensagem assinada. A quem já está acostumado com o uso de “certificados digitais”, é essa operação, utilizando a chave privada, que acontece a cada vez, por exemplo, que advogados, juízes, promotores ou auxiliares da justiça assinam suas manifestações e as enviam aos novos autos digitais dos processos judiciais.
As funções hash são funções criptográficas bastante peculiares. São calculadas sobre qualquer dado digital, de qualquer tamanho, e sempre produzem um resultado numérico de tamanho fixo, como, a grosso modo, um gigantesco número de aproximadamente 85 casas decimais. Esse resultado é, na descrição dessas funções, chamado de “resumo da mensagem”, tradução de “message digest”. Outras propriedades importantes dessa função são: a) não ter retorno: não existe uma operação matemática inversa que permita, a partir de um dado “resumo”, encontrar uma mensagem que o teria originado; só é possível, fácil e rapidamente (claro, usando o poder de processamento de um computador!), calcular, a partir de uma dada informação digital, qual é o seu “resumo”; e b) a qualquer mínima alteração na mensagem (a modificação de um único bit, por exemplo), haverá uma grande e imprevisível alteração no “resumo”; com isso, além de resultados completamente diferentes para mensagens diversas, por menores que sejam suas diferenças, não é possível prever ou calcular a priori qual mensagem ou quais modificações numa mensagem existente serão capazes de produzir um desejado e pré-determinado “resumo”. E para que isso serve de útil, fora dos laboratórios de informática? Para muitas coisas! O “resumo” obtido por uma função “hash” é, por assim dizer, a “identidade” de um arquivo digital. A existência do “resumo” pode ser considerada uma prova matemática da existência da mensagem a partir da qual foi calculado, e isso pode ter interessantes aplicações jurídico-documentais, contratuais, em direitos autorais, ou no campo da prova de modo geral. Aliás, como um pequeno detalhe a mais, o “hash” é também utilizado como parte das operações criptográficas que produzem as assinaturas digitais. E veremos, adiante, no próximo texto desta série, o importante papel por ele desempenhado na estrutura do bitcoin, para encadear com segurança os blocos da assim chamada “blockchain”.
Feitas essas breves considerações, examinemos como tudo isso é aproveitado na estrutura que suporta a existência do bitcoin.
Podemos separar a estrutura do bitcoin em três pontos relevantes, a serem examinados: a) a transação que transfere moeda de um titular para outro; b) o encadeamento dessas transações e seu registro; c) a distribuição desse registro entre vários computadores anônimos, o que importa falar em outros conceitos que são a “prova de trabalho” (proof of work) e a “mineração” dos novos bitcoins. Disso, então, tratarei neste e nos dois próximos textos.
Antes de prosseguir, e isso foi objeto de um breve comentário na primeira parte desta série, que fique claro que o bitcoin é uma moeda escritural. Comentei, ali, como a informática se mostra inábil para substituir papéis que são únicos e anônimos, como é o caso do papel-moeda. Há, portanto, um registro de todas as transações, como se fosse um livro de contabilidade bancário. Um pagamento em bitcoins é feito transferindo-se valores de uma conta para outra.
Assim, explicando o primeiro dos três pontos acima elencados, a transferência de valores se faz mediante a emissão de uma ordem de pagamento, comparável a uma “TED” bancária, que é digitalmente assinada pelo titular da “conta” em bitcoins.
Para começar a falar desses aspectos técnicos de um modo bastante simplificado, para aos poucos ir agregando elementos no correr da explicação, imaginemos que sou eu um terceiro de confiança que guarda toda a contabilidade dos bitcoins. Se Caio quer transferir dois bitcoins para Tício, ele me envia uma ordem, que é por ele assinada digitalmente, contendo o valor e o nome do destinatário. Eu, então, subtraio dois bitcoins da conta de Caio e os adiciono na conta de Tício. Ora, não há nenhuma novidade nisso: é o que os bancos corriqueiramente fazem!
Avançando um pouco mais, lembremos que entre as propriedades do bitcoin, anunciadas por Satoshi Nakamoto (v. segunda parte desta série), foi relacionada a possibilidade de anonimato dos participantes. Aplicando essa qualidade ao nosso exemplo inicial, as contas em bitcoin, cujos registros estão em meu poder, não se encontram em nome de Caio ou de Tício. Não são nominalmente atribuídas a ninguém. Tais contas estão cadastradas “em nome” de uma chave pública de criptografia assimétrica e eu, que guardo os registros, não sei quem são os titulares desses pares de chaves. Mas, quando recebo uma ordem de pagamento, assinada com uma determinada chave privada, confiro essa assinatura com a chave pública que é “titular” da conta. Assim, sei que foi o dono dessa conta que autorizou o débito, seja ele quem for. Por sua vez, a ordem de pagamento também aponta para qual chave pública o valor deve ser transferido. Eu, então, ao conferir a assinatura com a chave pública que é titular da conta, dela subtraio os dois bitcoins e os somo na conta que está “em nome” da chave pública indicada como destinatária do pagamento.
Como bem sabe todo estudante de Direito, além de Caio e de Tício, Mévio também gosta de se intrometer em todo tipo de narrativa apresentada como exemplo de casos concretos. Mévio, então, também quer fazer transações em bitcoins. Como ele “abre uma conta” comigo, que sou o detentor dos registros contábeis? Há inúmeros softwares – é comum apresentarem-se como “carteiras”, ou “wallets”, de bitcoins – desenvolvidos para realizar operações nessa criptomoeda. O que esses softwares fazem, na verdade, é gerar um par de chaves de criptografia assimétrica que possa ser utilizado na contabilidade dos bitcoins. Para participar do exemplo, nosso personagem instalou um software desses em seu computador, ou em seu aparelho celular, e agora tem um par de chaves próprio e exclusivo.
Mévio é músico e compôs um jingle publicitário para a salsicharia de Tício, cobrando-lhe meio bitcoin pela cessão dos direitos autorais. Para receber, Mévio envia a Tício a sua chave pública, gerada pela sua “carteira”. Tício assina com sua chave privada uma “ordem de pagamento”, indicando o valor de meio bitcoin a ser destinado a essa chave pública que Mévio lhe apresentou. Eu recebo essa ordem, confiro a assinatura com a chave pública que, nos parágrafos anteriores deste texto, recebeu dois bitcoins de Caio (e, portanto, tem saldo disponível suficiente para transferir esse meio bitcoin constante desta ordem) e constato que a assinatura é verdadeira. Mévio utiliza (ou melhor, a sua chave pública utiliza…) minha contabilidade pela primeira vez, mas isso não é um problema. Ele não precisa vir à minha casa, portando seu RG, CPF, comprovante de renda e uma conta de luz para fazer prova do seu endereço. Eu simplesmente abro, nessa contabilidade, uma nova “conta corrente” para essa chave pública e nela credito meio bitcoin pago por Tício, ou melhor, pela chave que pertence a Tício. Eu não sei quem são Tício, Caio e Mévio, mas cada um deles detém uma chave privada hábil a movimentar uma conta que eu administro. Uma ordem de transferência assinada com a correspondente chave privada de cada par é o bastante para que eu debite o valor dessas contas. O anonimato desse modelo não é algo absoluto, mas essa já é uma outra questão a ser posteriormente comentada.
Note-se, desde logo, que as tais “carteiras” de bitcoins não guardam nada que se assemelhe ao papel-moeda, como o fazem as velhas carteiras de couro. Essas carteiras digitais guardam a chave pública em cujo “nome” alguns bitcoins estão contabilizados e a correspondente chave privada hábil a movimentar essa conta. De algum modo, esses aplicativos simulam uma carteira, porque, conectados à Internet, acessam a contabilidade e exibem o saldo ali depositado em nome da respectiva chave.
Claro, a perda da chave importa a total impossibilidade de se movimentar a conta. É como se o seu dinheiro continuasse dentro de um cofre, mas perdido em algum lugar nas profundezas do Oceano Atlântico.
Continuamos no próximo texto, a comentar outros aspectos técnicos do bitcoin.
Sobre Dr. Augusto Marcacini
– Advogado em São Paulo desde 1988, atuante nas áreas civil e empresarial, especialmente contencioso civil, contratos e tecnologia.
– Sócio do escritório Marcacini e Mietto Advogados desde 1992.
– Bacharel (1987), Mestre (1993), Doutor (1999) e Livre-docente (2011) em Direito pela Faculdade de Direito da Universidade de São Paulo.
– Foi professor no Mestrado em Direito da Sociedade da Informação da UniFMU entre 2011 a 2018, lecionando as disciplinas “Efetividade da Jurisdição na Sociedade da Informação” e “Informatização Processual, Provas Digitais e a Segurança da Informação”.
– Professor de Direito Processual Civil desde 1988, em cursos de graduação e pós-graduação.
– Vice-Presidente da Comissão de Direito Processual Civil, Membro Consultor da Comissão de Informática Jurídica e Membro da Comissão de Ciência e Tecnologia da OAB-SP (triênios: 2013-2015 e 2016-2018)
– Ex-Presidente da Comissão de Informática Jurídica e da Comissão da Sociedade Digital da OAB-SP (triênios 2004-2006, 2007-2009 e 2010-2012) e Ex-Membro da Comissão de Tecnologia da Informação do Conselho Federal da OAB (triênio 2004-2006).
– Autor de diversos livros e artigos, destacando-se na área de direito e tecnologia: “O documento eletrônico como meio de prova” (artigo, 1998), “Direito e Informática: uma abordagem jurídica sobre a criptografia” (livro, 2002), “Direito em Bits” (coletânea de artigos em coautoria, 2004), “Processo e Tecnologia: garantias processuais, efetividade e a informatização processual” (livro, 2013) e “Direito e Tecnologia”, (livro, 2014).
– Palestrante e conferencista.
– Colunista e membro do conselho editorial do Crypto ID.
[button link=”https://cryptoid.com.br/category/colunistas/augusto-marcacini/” icon=”fa-bold” side=”left” target=”” color=”183db7″ textcolor=”ffffff”]Leia outros artigos de Augusto Marcacini[/button]