Blockchain e Bitcoin – Parte IV: Entendendo o bitcoin – o registro das transações | CRYPTOID
Blockchain e Bitcoin – Parte IV: Entendendo o bitcoin – o registro das transações
Blockchain e Bitcoin – Parte V: Entendendo o bitcoin – o registro distribuído e a ausência de um terceiro confiável
Como preservar a segurança de um sistema assim anárquico e por que alguém desejaria participar disso e colaborar com a manutenção da contabilidade das transações em bitcoins? Escrito por Augusto Marcacini.
Uma das características do bitcoin que o místico Satoshi Nakamoto anunciou desde o primeiro momento em que apresentou sua ideia no fórum sobre criptografia é: seu modelo não utiliza uma terceira parte confiável. Escrito por Augusto Marcacini.
Blockchain e Bitcoin – Parte III: Entendendo o bitcoin – as transferências entre contas
Blockchain e Bitcoin – Parte III: Entendendo o bitcoin (as
Blockchain e Bitcoin – Parte II: O nascimento do bitcoin
Por Augusto Marcacini – Após um primeiro texto sobre os desafios envolvidos na criação de algo que possa servir como uma moeda digital, passemos a falar do bitcoin. Nesta segunda parte da série, farei um breve relato de como foi o surgimento dessa criptomoeda.
Blockchain e Bitcoin – Parte I: O desafio de criar uma moeda digital
Blockchain e Bitcoin – Parte I: O desafio de criar
Na terceira parte desta série, comecei a discorrer sobre os detalhes técnicos do funcionamento do bitcoin. Como visto, o bitcoin é uma moeda escritural. Há, assim, uma espécie de contabilidade que registra quantos bitcoins estão depositados em cada "conta corrente".
Foi também falado, no texto anterior, que podemos separar a estrutura do bitcoin em três pontos relevantes: 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.
A primeira característica foi explicada no texto anterior. Eu me incluí nos exemplos ali apresentados como um terceiro de confiança, que guarda e gerencia o "livro contábil" dos bitcoins. Os titulares das contas enviam-me uma espécie de "TED" bancária, indicando o valor e o destinatário de uma transferência, e eu diligentemente subtraio e somo esse valor nas contas do pagador e do recebedor, respectivamente. Mencionei, também, que essas contas são anônimas, estando registradas não em nome de pessoas, físicas ou jurídicas, mas "em nome" de chaves públicas de criptografia assimétrica. Eu, que guardo e gerencio os registros contábeis, não sei quem são os titulares das tais contas. O titular da conta é alguém que tem em seu poder a chave privada do par; ao assinar "ordens de pagamento" com essa chave, a assinatura pode ser conferida com a chave pública que é "titular" da conta e assim são feitas as movimentações.
Vamos prosseguir deste ponto, acrescentando mais detalhes a essa estrutura
Eu estou figurando, neste exemplo, no papel conhecido como "terceira parte confiável", que atua como um intermediário das transações em bitcoins e mantém os registros contábeis de todas operações. Eu me acho confiável. Aliás, eu confio em mim mesmo de longa data! Apesar disso, creio que sempre seja bom e recomendável construir mecanismos seguros que demonstrem da melhor maneira possível a existência e o teor dos atos jurídicos e patrimoniais que as pessoas praticam. As outras pessoas podem não confiar em mim, tanto quanto eu mesmo confio, e querem mais transparência e auditabilidade desses registros… e isso é certamente um direito delas!
Mesmo que minha honestidade não seja posta em dúvida por esses sujeitos, eu certamente não sou infalível nem imune a erros involuntários. Eu poderia fazer essas operações de débito e crédito simplesmente recebendo telefonemas, mensagens de correio eletrônico, ou mesmo por sinais de fumaça. Mas, para maior segurança de todos os partícipes, vimos no texto anterior que todas as transações são digitalmente assinadas, e isso é feito com o uso da chave privada que corresponde à chave pública que é "titular" da conta. Portanto, eu não tenho como criar, do nada, uma transação. Não há como errar o valor do lançamento e isso não ser percebido nem posteriormente auditado. Os bitcoins só podem ser retirados de uma dada conta se houver uma ordem, assinada com a chave privada respectiva, estando ali indicados nesse documento eletrônico assinado o valor e o destinatário da transferência.
Se os lançamentos fossem escritos à tinta, em um arcaico livro contábil, com folhas bem presas, e eu não deixasse espaços em branco, a cronologia dos registros não poderia ser, posteriormente, modificada por mim (desde que, é claro, eu não substitua o livro todo e refaça, um a um, todos os registros anteriores e posteriores àquele que eu queira fraudulentamente incluir ou suprimir).
No meio digital, registros estão completamente soltos na mídia de armazenamento, são bastante voláteis e não ocupam um lugar físico definido e imutável. Uma base de dados digital ou uma planilha contendo registros não são estruturas essencialmente imutáveis, como uma firme encadernação de uma resma de papel, com registros escritos à tinta.
É possível produzir um encadeamento sequencial de arquivos digitais utilizando criptografia
Produzir um encadeamento sequencial de arquivos digitais utilizando criptografia, pode ser ainda mais seguro do que o velho livro. Assim, para também dar segurança à cronologia das transações vamos agregar ao nosso modelo a segunda característica acima apresentada: o encadeamento dos registros. Para isso, usaremos as funções hash, que foram rapidamente explicadas no terceiro texto desta série. Lembrando brevemente, uma função hash calcula "resumos" únicos (números de uns 85 algarismos, por exemplo) a partir de qualquer informação digital, em qualquer formato ou tamanho. Toda informação digital é, essencialmente, um número; uma função hash é um conjunto de operações matemáticas que, a partir deste número, apresenta como resultado final um outro número, que é o aqui chamado "resumo".
Imaginemos que, a cada dez minutos, eu acumule todas as transações em bitcoins que me foram enviadas pelos correntistas, calcule o "resumo" de cada uma, e depois reúna todos os "resumos" em um mesmo arquivo e a ele também aplique a função hash. Ao final disso, tenho um número estatisticamente único de aproximadamente 85 casas decimais que representa e prova a existência de todas essas transações, uma vez que não há outro meio conhecido de se chegar a esse resultado, a não ser aplicando a função hash a todos esses mesmos registros e suas exatas informações. Esse foi o primeiro "bloco" da minha contabilidade.
Para o bloco seguinte, farei o mesmo procedimento, com um detalhe a mais: o hash do bloco anterior também será incluído como se fosse mais um registro. Assim, o "resumo" final deste segundo bloco prova a existência não apenas das novas transações, mas também a existência do bloco anterior. E assim por diante. O último e mais atual "resumo" prova a existência de toda a cadeia que lhe antecede, na exata ordem sequencial dos blocos e das informações neles contidas.
Se somente eu controlo e tenho acesso a todos os registros e seus "resumos", sempre me seria possível recomeçar tudo do zero, ir calculando os "resumos" e, num bloco conveniente, inserir retroativamente um registro ou apagar um registro existente. Mas, se a cada final de dia o último "hash" calculado fosse de alguma forma publicado, eu não teria como fraudar a cadeia que lhe antecede, para inserir um registro com datas falsas. Se eu inserir um novo registro num bloco passado, ao chegar ao final da cadeia reconstituída não será possível encontrar aquele mesmo "hash" que foi tornado público, o que vai denunciar a ocorrência da adulteração. Abrindo-se um pequeno parêntese, um mecanismo assim poderia ser utilizado para várias outras atividades em que seja importante provar a data ou a sequência de documentos, como nos registros públicos ou no sistema de protocolo dos tribunais, ou em qualquer outro ambiente em que a cronologia de fatos ou documentos seja relevante.
Como são feitas as transações em bitcoin
Até aqui, nossa explicação demonstra como são feitas as transações em bitcoin e como são encadeados os registros, formando uma espécie de livro contábil digital. Para prosseguir, lembremos de mais uma característica do bitcoin que o místico Satoshi Nakamoto anunciou desde o primeiro momento em que apresentou sua ideia no fórum sobre criptografia: seu modelo não utiliza uma terceira parte confiável. É a partir deste ponto que Satoshi Nakamoto apresentou soluções elegantes para as conhecidas dificuldades de se criar uma moeda digital. E eu perdi minha função de terceiro confiável e serei agora eliminado do exemplo!
De fato, não há grande dificuldade em criar um sistema eletrônico de transações financeiras, se podemos contar com um intermediário confiável para operar a escrituração. As transações financeiras eletrônicas que conhecemos, utilizando as moedas oficiais, são conduzidas pelas instituições financeiras que, no caso, assumem esse papel. O bitcoin, entretanto, não depende desse intermediário. Os registros ficam distribuídos entre todos os participantes.
Desde quando Satoshi Nakamoto disponibilizou a primeira versão do seu software, e os participantes do fórum de criptografia o instalaram e começaram a brincar com ele, a escrituração contábil da criptomoeda foi distribuída entre todos esses usuários. Cada um deles, se ainda permanece a participar dessa rede, guarda a contabilidade toda. E quem quer que tenha instalado posteriormente o software – lembremos que qualquer um pode fazê-lo, pois o software é livre – entra igualmente nessa rede do sistema e passa a ser mais um detentor da contabilidade do bitcoin.
Esse é o ponto que causa maior perplexidade acerca do bitcoin. Além de questionar como isso pode ser feito (processamento e armazenamento distribuídos, na verdade, não são tão estranhos assim para a computação moderna), pode-se perguntar como assegurar a fidelidade desses registros distribuídos, não só contra erros mas contra fraudes de seus detentores. Mas, principalmente, por que alguém desejaria voluntariamente participar disso?
Continuamos no próximo texto.
– 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).