Bitcoin é Tempo
“Um relógio luminoso contra o céu proclamava que a hora não estava errada nem certa.”
– Robert Frost, Acquainted with the Night (1928)
“O tempo ainda é o grande mistério para nós. Não é mais do que um conceito; não sabemos se existe …”
– Clifford D. Simak, Shakespeare’s Planet (1976)
Tempo é dinheiro, ou assim diz o ditado. Conclui-se que dinheiro também é tempo: uma representação da energia econômica coletiva armazenada pela humanidade. No entanto, a ligação entre tempo e dinheiro é mais complexa do que pode parecer à primeira vista. Se o dinheiro não requer tempo para ser criado, ele não funciona muito bem como dinheiro, ou não por muito tempo. Mais profundamente, como veremos, acompanhar as coisas no domínio informacional sempre implica em acompanhar o tempo.
Assim que o dinheiro se torna digital, temos que concordar com uma definição de tempo, e é aí que reside todo o problema. Você pode pensar que dizer as horas é tão fácil quanto olhar para o relógio que estiver por perto, e você estaria certo quando se trata de tarefas cotidianas. Mas quando se trata de sincronizar o estado de uma rede global, adversária e distribuída, dizer as horas se torna um problema quase intratável. Como saber as horas se os relógios não são confiáveis? Como criar o conceito de um tempo singular se o seu sistema abrange toda a galáxia? Como medir o tempo em um reino atemporal? E o que é o tempo, afinal?
Para responder a essas perguntas, teremos que examinar mais de perto o conceito de tempo em si e como o Bitcoin cria seu próprio tempo: o tempo do bloco — mais comumente conhecido como altura do bloco. Exploraremos por qual motivo o problema de cronometragem está intimamente relacionado à manutenção de registros, por que não há tempo absoluto em um sistema descentralizado e como o Bitcoin usa causalidade e imprevisibilidade para construir seu próprio senso de agora.
Dispositivos de cronometragem transformaram civilizações mais de uma vez. Como Lewis Mumford apontou em 1934: “O relógio, não a máquina a vapor, é a máquina-chave da era industrial moderna.” Hoje, é novamente um dispositivo de cronometragem que está transformando nossa civilização: um relógio, não os computadores, é a verdadeira máquina-chave da era da informação moderna. Este relógio é Bitcoin.
Mantendo o Controle das Coisas
“Deixe a criança aprender a contar coisas, obtendo assim a noção de número. Essas coisas são, para o propósito de contagem, consideradas semelhantes e podem ser objetos individuais ou grupos.”
– David Eugene Smith, The Teaching of Elementary Mathematics (1900)
Em termos gerais, existem duas maneiras de controlar as coisas: tokens físicos e livros contábeis. Você pode usar artefatos do mundo real diretamente, por exemplo, dar a alguém uma concha do mar, uma moeda ou alguma outra coisa tangível, ou pode replicar o estado do mundo escrevendo o que aconteceu em um pedaço de papel.
Imagine que você é um pastor e deseja garantir que todo o seu rebanho volte para casa. Você pode colocar uma coleira em cada ovelha e, assim que uma ovelha voltar para casa, basta remover a coleira e pendurá-la no galpão. Se você tiver um cabide para cada coleira, saberá que todas as ovelhas voltaram com segurança assim que todos os cabides forem preenchidos. Claro, você também pode contá-los e manter uma lista. No entanto, você terá que criar uma nova lista sempre que começar a contar e, também, terá que se certificar de não contar uma única ovelha duas vezes (ou nunca).
O dinheiro é essencialmente uma ferramenta para controlar quem deve o quê e a quem. De modo geral, tudo o que temos usado como dinheiro até agora se divide em duas categorias: artefatos físicos e listas informacionais. Ou, para usar uma linguagem mais comum: tokens e livros-razão (ledgers).
É importante perceber a diferença inerente dessas categorias, então deixe-me apontá-la explicitamente: O primeiro método — um token físico — representa diretamente o estado das coisas. O segundo — um livro-razão — reflete indiretamente o estado de coisas. Cada um vem com vantagens e desvantagens. Por exemplo, os tokens são físicos e distribuídos; os livros-razão são informativos e centralizados. Os tokens são intrinsecamente sem segurança; livros-razão não são.
No mundo digital — não importa o quão intensamente os gurus de marketing tentem convencê-lo do contrário — só podemos usar livros-razão. É um reino informacional, não um físico. Mesmo que você chame um certo tipo de informação de “token”, ainda assim é uma informação maleável, escrita em um disco rígido ou em algum outro meio que possa conter informações, efetivamente tornando-as um registro informativo.
A natureza semelhante a um livro-razão de todas as informações digitais é a causa raiz do problema de gasto duplo. A informação nunca representa o estado do mundo diretamente. Além disso, o movimento da informação implica cópia. A informação existe em um lugar, e para “movê-la” é preciso copiá-la para outro lugar e apagá-la na origem. Este problema não existe no reino físico. No domínio físico, podemos realmente mover as coisas de A para B. O domínio informativo não tem essa propriedade. Se você quiser “mover” informações da lista A para a lista B, você deve copiá-las de A para B. Não há outra maneira.
Outra maneira de pensar sobre isso é em termos de exclusividade. Os tokens físicos são compostos únicos de átomos cuja montagem não é facilmente replicável. A informação pura não possui esta propriedade. Se você pode ler as informações, também pode copiá-las perfeitamente. Em termos práticos, segue-se que os tokens físicos são únicos, e os tokens digitais não. Eu até argumentaria que “token digital” é um nome impróprio. Um token pode representar informações secretas, mas nunca representará informações únicas, singulares e não copiáveis.
Essa diferença nas propriedades mostra que realmente não há como “entregar” informações. É impossível passar um token digital como faria com um físico, uma vez que você nunca pode ter certeza se o proprietário original destruiu as informações dele. Os tokens digitais, como todas as informações, só podem ser disseminados, como uma ideia.
“… Se você tem uma maçã e eu tenho uma maçã, e nós trocamos maçãs — cada um de nós acaba com apenas uma maçã. Mas se você e eu temos uma ideia e trocamos ideias — cada um de nós acaba com duas ideias.”
– Charles F. Brannan (1949)
Tokens físicos — o que chamamos de ativos físicos ao portador, ou “dinheiro” — estão livres desse dilema. No mundo real, se você me der uma moeda, sua moeda se foi. Não há duplicação mágica da moeda, e a única maneira de dá-la a mim é entregá-la fisicamente. As leis da física não permitem que você gaste o dobro.
Embora o gasto duplo exista no reino não digital — George Parker, um vigarista que ficou famoso por “gastar duas vezes” a Ponte do Brooklyn e outros pontos de referência vem à mente — ele requer engano elaborado e compradores crédulos. Não é assim no mundo digital.
No mundo digital, como estamos sempre lidando com informações, o gasto duplo é um problema inerente. Como qualquer pessoa que já copiou um arquivo ou usou o recurso de copiar e colar sabe, a informação é algo que você pode copiar perfeitamente e não está vinculada ao meio que a hospeda. Se você tem uma fotografia digital, por exemplo, pode copiá-la um milhão de vezes, armazenar algumas cópias em um pendrive e enviá-la para milhares de pessoas diferentes. Cópias perfeitas são possíveis porque as informações permitem a correção de erros sem falhas, o que elimina a degradação. Além disso, virtualmente não há custo para duplicação e nenhuma maneira de saber o que era o original.
Novamente: quando se trata de informação, copiar é tudo o que existe. Simplesmente não há como mover as informações digitais de A para B. As informações são sempre copiadas de A para B e, se o processo de cópia for bem-sucedido, a cópia original de A é excluída. É por isso que o problema do gasto duplo é tão complicado. Na ausência de uma autoridade central, não há como mover nada de A para B sem confiança. Você sempre deve confiar que o original será excluído. Um efeito colateral natural é que, quando se trata de informação digital, é impossível dizer quantas cópias existem e onde essas cópias podem estar.
Por causa disso, usar “tokens” digitais como dinheiro não pode e nunca funcionará. Como os tokens derivam sua confiabilidade de serem difíceis de reproduzir como resultado de sua construção física única, essa vantagem desaparece no reino digital. No mundo digital, os tokens não são confiáveis. Como resultado da natureza das propriedades intrínsecas da informação, o único formato viável para o dinheiro digital não é um token, mas um livro-razão — o que nos leva ao problema do tempo.
Os Tokens são Atemporais, Os Livros-Razão Não
“Pois as coisas vistas são temporárias, mas as coisas invisíveis são eternas.”
– Paulo de Tarso, Coríntios 4: 18b
Quando se trata de tokens físicos, a hora de uma transação não importa. Ou você tem as moedas no bolso, ou não; você pode gastá-los ou não. O simples ato de posse é o único pré-requisito para gastar. As leis da natureza cuidam do resto. Nesse sentido, os tokens físicos são atemporais e não confiáveis.
Quando se trata de livros-razão, a posse física é deixada de lado. Quem está no controle do livro-razão precisa se certificar de que as coisas estão em ordem. O que de outra forma é determinado pelas leis físicas, ou seja, que você não pode gastar dinheiro que não tem e não pode gastar dinheiro que já gastou anteriormente, tem de ser aplicado por regras criadas pelo homem. São essas regras que governam a operação e manutenção ordenada de um livro-razão, não as leis físicas.
Mover-se das leis físicas para as regras criadas pelo homem é o ponto crucial da questão. As regras criadas pelo homem podem ser distorcidas e quebradas, as leis físicas nem tanto. Por exemplo, você não pode simplesmente “inventar” uma moeda de ouro física. Você tem que desenterrá-lo do solo. Você pode, no entanto, absolutamente inventar uma moeda de ouro no papel. Para fazer isso, basta adicionar uma entrada ao livro-razão e obter algumas moedas. Ou, no caso dos bancos centrais, simplesmente adicione alguns trilhões com algumas teclas de computador. (Pessoas sofisticadas do setor financeiro chamam isso de “Re-hipoteca”, “Banco de Reserva Fracionária” ou “Flexibilização Quantitativa” — mas não se engane, é tudo a mesma coisa: ganhar dinheiro.)
Para manter os livros contábeis e aqueles que os manipulam, auditorias regulares e independentes são necessárias. A capacidade de contabilizar cada entrada em um livro-razão não é um luxo. Os auditores precisam ser capazes de revisar os livros — para trás no tempo — para manter os livros contábeis honestos e funcionando. Sem carimbos de data / hora confiáveis, verificar a consistência interna de um livro-razão é impossível. Um mecanismo para estabelecer uma ordem inequívoca é essencial.
Sem um senso absoluto de tempo, não há como ter uma ordem definida de transação. Sem uma ordem definida de transações, as regras de um livro-razão não podem ser seguidas. De que outra forma você pode ter certeza de quanto dinheiro você realmente tem? De que outra forma você pode ter certeza de que as coisas estão em ordem?
A distinção entre tokens e livros-razão destaca a necessidade de controlar o tempo. No reino físico, as moedas são artefatos atemporais que podem ser trocados sem supervisão. No mundo digital, registro de moedas requer registro de tempo.
Registro de Moeda Centralizado
“Tempo: um grande gravador ou borracha.”
– Yahia Lababidi (n. 1973)
A maneira comum de resolver o problema do gasto duplo — o problema de garantir que uma transferência digital ocorra apenas uma vez — é ter uma lista central de transações. Depois de ter uma lista central de transações, você tem um único livro-razão que pode atuar como a única fonte da verdade. Resolver o problema do gasto duplo é tão fácil quanto examinar a lista e certificar-se de que tudo está somando corretamente. É assim que PayPal, Venmo, Alipay e todos os bancos do mundo — incluindo os bancos centrais — resolvem o problema do duplo gasto: por meio da autoridade central.
“O problema, é claro, é que o sacador não pode verificar se um dos pagadores não fez gasto duplo da moeda. Uma solução comum é introduzir uma autoridade central confiável, ou casa da moeda, que verifica todas as transações em busca de gastos duplos. […] O problema com essa solução é que o destino de todo o sistema monetário depende da empresa que administra a casa da moeda, com cada transação tendo que passar por ela, assim como um banco.”
– Satoshi Nakamoto (2009)
Vale ressaltar que Satoshi não conseguiu tornar as informações não copiáveis. Cada parte do bitcoin — seu código-fonte, o livro-razão, sua chave privada — pode ser copiada. Tudo isso pode ser duplicado e adulterado. No entanto, Satoshi conseguiu construir um sistema que torna as cópias que violam as regras completa e totalmente inúteis. A rede Bitcoin executa uma complexa dança para decidir quais cópias são úteis e quais não são, e é essa dança que traz a escassez para o reino digital. Como em toda dança, uma régua de medição temporal é necessária para ditar o ritmo.
Mesmo um livro-razão centralizado só pode resolver o problema de gasto duplo se tiver uma maneira consistente de controlar o tempo. Você sempre precisa saber quem deu quanto a quem e, o mais importante: quando. No domínio da informação, não há registro de moeda sem registro de data / hora.
“Deve-se enfatizar que a impossibilidade de associar eventos a pontos no tempo em sistemas distribuídos era o problema não resolvido que impedia um livro-razão descentralizado de ser possível, até que Satoshi Nakamoto inventasse uma solução.”
– Gregory Trubetskoy (2018)
Tempo Descentralizado
“O tempo faz todas as coisas acontecerem.”
– Ésquilo (525 aC — 456 aC)
Tempo e ordem têm uma relação muito íntima. Como Leslie Lamport apontou em seu artigo de 1978, Time, Clocks, and the Order of Events in a Distributed System: “O conceito de tempo é fundamental para nossa maneira de pensar. É derivado do conceito mais básico da ordem onde os eventos ocorrem”. Na ausência de um ponto central de coordenação, as noções aparentemente intuitivas de “antes”, “depois” e “simultaneamente” se rompem. Nas palavras de Lamport: “o conceito de ‘acontecer antes’ define uma ordenação parcial invariável dos eventos em um sistema de multiprocessamento distribuído.”
Com outra frase: quem deve ser o responsável pelo tempo se não for permitido colocar alguém no cargo? Como você pode ter um relógio confiável se não há um referencial central?
Você pode pensar que resolver esse problema é fácil porque todos podem usar seu próprio relógio. Isso só funciona se o relógio de todos for preciso e, mais importante, se todos forem honestos. Em um sistema adversário, confiar em relógios individuais seria um desastre. E, devido à relatividade, não funciona consistentemente no espaço.
Como um experimento mental, imagine como você poderia enganar o sistema se todos estivessem encarregados de manter o tempo para si mesmos. Você pode fingir que a transação que está enviando agora é, na verdade, de ontem — ela foi atrasada por algum motivo — assim, você ainda teria todo o dinheiro que gastou hoje. Devido à comunicação assíncrona inerente a todo sistema descentralizado, esse cenário é mais que um experimento de pensamento teórico. As mensagens realmente atrasam, os registros de tempo são imprecisos e, graças aos efeitos relativísticos e ao limite de velocidade natural do nosso universo, é muito menos fácil distinguir a ordem das coisas na ausência de uma autoridade central ou observador.
“Quem está aí? TOC TOC.”
– Uma piada assíncrona
Para ilustrar melhor a impossibilidade do problema, vejamos um exemplo concreto. Imagine que você e sua parceira de negócios tenham acesso à conta bancária de sua empresa. Você faz negócios em todo o mundo, então sua conta bancária está na Suíça, você está em Nova York e sua parceira de negócios está em Sydney. Para você, é 3 de janeiro, e você está desfrutando de uma bela noite de domingo em seu hotel. Para ela, já é segunda-feira de manhã, então ela decide comprar o café da manhã com o cartão de débito de sua conta bancária compartilhada. O custo é de $27. O saldo disponível é de $615. O horário local é 08h21.
Ao mesmo tempo, você está prestes a pagar a sua estadia com outro cartão de débito vinculado à mesma conta bancária. O custo é de $599. O saldo disponível é de $615. O horário local é 17h21.
Então acontece que — exatamente no mesmo momento — vocês dois passam o cartão. O que acontece? (Caros físicos, desculpem meu uso de “o mesmo momento” — ignoraremos os efeitos relativísticos e o fato de que não há tempo absoluto em nosso universo por enquanto. Também ignoraremos que o conceito de eventos síncronos realmente não existe. Bitcoin já é complicado o suficiente!)
O livro-razão central de seu banco provavelmente receberá uma transação antes da outra, portanto, um de vocês terá sorte, o outro nem tanto. Se as transações chegarem no mesmo tique — digamos no mesmo milissegundo — o banco terá que decidir quem vai gastar o dinheiro.
Agora, o que aconteceria se não houvesse banco? Quem decide quem foi o primeiro a passar o cartão? E se não fossem apenas vocês dois, mas centenas ou mesmo milhares de pessoas coordenando? E se você não confiasse nessas pessoas? E se algumas dessas pessoas estiverem tentando trapacear, por exemplo, atrasando o relógio de modo que pareça que gastaram o dinheiro alguns minutos antes?
“Uma ferramenta relacionada ao tempo [é] necessária para estabelecer uma ordenação canônica e impor um histórico único na ausência de qualquer coordenador central.”
– Giacomo Zucco, descobrindo Bitcoin (2019)
Esse problema é exatamente porque todas as tentativas anteriores de dinheiro digital exigiam um registro centralizado. Você sempre teve que confiar em alguém para identificar corretamente a ordem das coisas. Era necessário um grupo centralizado para manter o tempo.
O Bitcoin resolve esse problema reinventando o próprio tempo. Diz não aos segundos e sim aos blocos.
Mantendo o Tempo, Um Bloco de Cada Vez
“A glória do tempo é acalmar os reis em conflito,
Desmascarar a falsidade e trazer a verdade à luz,
carimbar o selo do tempo nas coisas antigas,
despertar pela manhã e sentinela à noite,
prejudicar o malfeitor até que ele acerte”
– William Shakespeare, The Rape of Lucrece (1594)
Todos os relógios dependem de processos periódicos, algo que podemos chamar de “tique”. O tique-taque familiar do relógio de um avô é, em essência, o mesmo que o zumbido atômico-molecular de nossos modernos relógios de quartzo e césio. Algo balança — ou oscila — e simplesmente contamos essas oscilações até que somam um minuto ou um segundo.
Para relógios de pêndulo grandes, essas oscilações são longas e fáceis de ver. Para relógios menores e mais especializados, é necessário equipamento especial. A frequência de um relógio — com que frequência ele faz tique-taque — depende de seu caso de uso.
A maioria dos relógios tem uma frequência fixa. Afinal, queremos saber a hora com precisão. Existem, no entanto, relógios que possuem frequência variável. Um metrônomo, por exemplo, tem uma frequência variável que você pode definir antes de acioná-lo. Enquanto um metrônomo mantém seu ritmo constante depois de definido, o tempo do Bitcoin varia para cada tique porque seu mecanismo interno é probabilístico. O objetivo, no entanto, é o mesmo: manter a música viva, para que a dança possa continuar.
Relógio | Frequência do tique-taque |
---|---|
Relógio do avô | ~0.5 Hz |
Metrônomo | ~0.67 Hz a ~4.67 Hz |
Relógio de quartzo | 32768 Hz |
Relógio atômico de césio-133 | 9,192,631,770 Hz |
Bitcoin | 1 Bloco (0.00000192901 Hz* a ∞ Hz**) |
* primeiro bloco (6 dias)
** carimbos de data / hora entre os blocos podem mostrar um delta negativo
O fato de o Bitcoin ser um relógio está escondido à vista de todos. De fato, Satoshi aponta que a rede Bitcoin como um todo atua como um relógio, ou, em suas palavras: um servidor de registro de data / hora (timestamp) distribuído.
“Neste artigo, propomos uma solução para o problema do gasto duplo usando um servidor de timestamp distribuído ponto a ponto para gerar uma prova computacional da ordem cronológica das transações.”
– Satoshi Nakamoto (2009)
Que o registro de data / hora era o problema raiz a ser resolvido também fica aparente ao examinar a referência no final do white paper do Bitcoin. Do total de oito referências, três são sobre registro de data / hora:
- Como registrar a data e hora de um documento digital por S. Haber, WS Stornetta (1991)
- Melhorando a eficiência e a confiabilidade da marcação de tempo digital por D. Bayer, S. Haber, WS Stornetta (1992)
- Projeto de um serviço de carimbo de data / hora seguro com requisitos mínimos de confiança por H. Massias, XS Avila e J.-J. Quisquater (maio de 1999)
Como Haber e Stornetta delinearam em 1991, o registro de data / hora digital trata de procedimentos computacionalmente práticos que tornam inviável para um usuário — ou adversário, nesse caso — retroceder ou adiantar um documento digital. Ao contrário dos documentos físicos, os documentos digitais são fáceis de adulterar e a mudança não deixa necessariamente nenhum sinal indicativo no próprio meio físico. No mundo digital, falsificações e manipulações podem ser perfeitas.
A natureza maleável da informação torna os documentos digitais de registro de data e hora um processo elaborado e sofisticado. Soluções ingênuas não funcionam. Pegue um documento de texto, por exemplo. Você não pode simplesmente adicionar a data no final do documento, pois todos — incluindo você — podem simplesmente alterar a data no futuro. Você também pode inventar qualquer data em primeiro lugar.
O Tempo é Uma Cadeia Causal
“Em uma visão extrema, o mundo pode ser visto apenas como conexões, nada mais.”
– Tim Berners-Lee, Weaving the Web (1999)
Acertar datas é um problema geral, mesmo no mundo não digital. O que é conhecido no mundo do sequestro como “Autenticação por Jornal” é uma solução geral para o problema de registros de data / hora arbitrários.
Prova de Tempo
Isso funciona porque um jornal é difícil de falsificar e fácil de verificar. É difícil fingir porque a primeira página de hoje se refere aos eventos de ontem, eventos que não poderiam ter sido previstos pelo sequestrador se a foto tivesse sido feita semanas atrás. Por meio desses eventos, a foto prova que o refém ainda estava vivo no dia em que o jornal saiu.
Este método destaca um dos conceitos-chave quando se trata de tempo: causalidade. A seta do tempo descreve a relação causal dos eventos. Sem causalidade, sem tempo. A causalidade também é a razão pela qual as funções criptográficas de hash são tão cruciais quando se trata de registros de data e hora no ciberespaço: elas introduzem uma relação causal. Como é praticamente impossível criar um hash criptográfico válido sem ter o documento em primeiro lugar, uma relação causal entre o documento e o hash é introduzida: os dados em questão existiam primeiro, o hash foi gerado depois. Em outras palavras: sem a irreversibilidade computacional das funções unilaterais, não haveria causalidade no ciberespaço.
A antes de B
Com este bloco de construção causal no lugar, pode-se chegar a esquemas que criam uma cadeia de eventos, ligando causalmente A ao B, ao C e assim por diante. Nesse sentido, o carimbo de data / hora digital seguro nos move de um lugar atemporal no éter (espaço) para o reino da história digital.
“A causalidade fixa os eventos no tempo. Se um evento foi determinado por certos eventos anteriores e determina certos eventos subsequentes, então o evento é imprensado com segurança em seu lugar na história.”
– Bayer, Haber, Stornetta (1992)
Nem é preciso dizer que a causalidade é de extrema importância quando se trata de cálculos econômicos. Uma vez que um livro-razão nada mais é que a personificação de cálculos econômicos de vários participantes cooperantes, a causalidade é essencial para todo livro-razão.
“Precisamos de um sistema para que os participantes concordem em uma única história […]. A solução que propomos começa com um servidor de carimbo de data / hora.”
– Satoshi Nakamoto (2009)
É fascinante que todas as peças do quebra-cabeça que fazem o Bitcoin funcionar já existiam. Já em 1991, Haber e Stornetta introduziram dois esquemas que tornam “difícil ou impossível produzir carimbos de hora falsos”. O primeiro depende de um terceiro confiável; o segundo, mais elaborado esquema de “confiança distribuída”. Os autores até identificaram os problemas inerentes de confiar em uma cadeia causal de eventos e o que seria necessário para reescrever a história. Em suas palavras, “a única falsificação possível é preparar uma cadeia falsa de marcações de tempo, longa o suficiente para exaurir o desafiante mais suspeito que alguém antecipar.” Um vetor de ataque semelhante existe no Bitcoin hoje, na forma de um ataque de 51% (mais sobre isso em um capítulo posterior).
Um ano depois, Bayer, Haber e Stornetta desenvolveram seus trabalhos anteriores e propuseram o uso de árvores em vez de simples listas vinculadas para unir os eventos. O que conhecemos como Merkle Trees hoje são simplesmente estruturas de dados eficientes para criar um hash a partir de vários hashes de forma determinística. Para carimbo de data / hora, isso significa que você pode agrupar com eficiência vários eventos em um “tique”. No mesmo artigo, os autores propõem que o modelo de confiança distribuída introduzido em 1991 poderia ser melhorado com a realização de um “torneio de campeonato mundial” recorrente para determinar um único “vencedor” que publique amplamente o hash resultante em algum lugar público, como um jornal. Soa familiar?
Como veremos, os jornais também são uma excelente maneira de pensar sobre o segundo ingrediente do tempo: a imprevisibilidade.
Causalidade e Imprevisibilidade
“O tempo não é uma realidade [hupostasis], mas um conceito [noêma] ou uma medida [metron] …”
– Antífona, o Sofista, Na Verdade (século III dC)
Embora a causalidade seja essencial, não é suficiente. Também precisamos de imprevisibilidade para o tempo a fluir. No reino físico, observamos processos naturais para descrever o fluxo do tempo. Observamos um aumento geral na entropia e chamamos isso de flecha de tempo. Mesmo que as leis da natureza pareçam ignorar a direção desta flecha na maioria dos casos, certas coisas não podem ser desfeitas, praticamente falando. Você não pode desembaralhar um ovo, como dizem.
Da mesma forma, funções de aumento de entropia são necessárias para estabelecer uma flecha de tempo no reino digital. Assim como é praticamente impossível decodificar um ovo, é praticamente impossível decifrar um hash SHA-256 ou uma assinatura criptográfica.
Sem esse aumento na entropia, poderíamos ir para frente e para trás no tempo à vontade. A sequência de números de Fibonacci, por exemplo, é causal, mas não entrópica. Cada número na sequência é causado pelos dois números anteriores. Nesse sentido, é uma cadeia causal. No entanto, não é útil dizer a hora porque é totalmente previsível. Da mesma forma que um sequestrador não pode simplesmente ficar diante de um calendário que mostra a data atual, não podemos usar processos previsíveis como prova do tempo. Sempre temos que contar com algo que não pode ser previsto com antecedência, como a primeira página do jornal de hoje.
O Bitcoin depende de duas fontes de imprevisibilidade: transações e prova de trabalho. Assim como ninguém pode prever como será o jornal de amanhã, ninguém pode prever como será o próximo bloco de Bitcoin. Você não pode prever quais transações serão incluídas porque você não pode prever quais transações serão transmitidas no futuro. E, mais importante, você não pode prever quem encontrará a solução para o quebra-cabeça da prova de trabalho atual e qual será essa solução.
Em contraste com o jornal do sequestrador, no entanto, a prova de trabalho está fisicamente ligada ao que aconteceu diretamente. Não é apenas o registro de um evento — é o próprio evento. É a exatidão probabilística da prova de trabalho que remove a confiança da equação. A única maneira de encontrar uma prova de trabalho válida é realizar muitas suposições, e realizar uma única suposição leva um pouco de tempo. A soma probabilística dessas suposições é o que constrói a cadeia de tempo que é o Bitcoin.
Ao utilizar a causalidade das cadeias de hash e a imprevisibilidade da prova de trabalho, a rede Bitcoin fornece um mecanismo para estabelecer um histórico indiscutível de eventos testemunhados. Sem causalidade, o que veio antes e o que veio depois é impossível separar. Sem imprevisibilidade, a causalidade não tem sentido.
O que é intuitivamente entendido por todo sequestrador foi explicitamente apontado por Bayer, Haber e Stornetta em 1992: “Para estabelecer que um documento foi criado depois de um determinado momento, é necessário relatar eventos que não poderiam ter sido previstos antes deles terem ocorrido.”
Prova de Publicação
É a combinação de causalidade e imprevisibilidade que permite a criação de um “agora” artificial no reino digital atemporal. Como Bayer, Haber e Stornetta apontam em seu artigo de 1991: “a sequência de clientes solicitando carimbos de data / hora e os hashes que eles enviam não pode ser conhecida com antecedência. Portanto, se incluirmos bits da sequência anterior de solicitações do cliente no certificado assinado, saberemos que o registro de data e hora ocorreu após essas solicitações. […], mas o requisito de incluir bits de documentos anteriores no certificado também pode ser usado para resolver o problema de restringir o tempo na outra direção, porque a empresa de carimbo de data / hora não pode emitir certificados posteriores a menos que tenha o pedido atual em mãos.”
Todas as peças do quebra-cabeça já estavam lá. O que Satoshi conseguiu fazer foi colocá-los juntos de uma forma que remove a “empresa de carimbo de data / hora” da equação.
Prova de Tempo
“Causa latet: vis est notissima.
A causa está oculta, mas o resultado é conhecido.”
– Ovídio, Metamorfoses, IV. 287 (8 dC)
Vamos recapitular: para usar o dinheiro no mundo digital, temos que contar com livros-razão. Para tornar os livros contábeis confiáveis, é necessária uma ordem inequívoca. Para estabelecer a ordem, são necessários carimbos de data / hora. Assim, se queremos ter um dinheiro sem confiança no mundo digital, é preciso remover qualquer entidade que cria e gerencia marcas de tempo e qualquer entidade única a cargo do próprio tempo.
Foi necessário um gênio como Satoshi Nakamoto para perceber a solução: “Para implementar um servidor de carimbo de data / hora distribuído ponto a ponto, precisaremos usar um sistema de prova de trabalho semelhante ao Hashcash de Adam Back.”
Precisamos usar um sistema de prova de trabalho porque precisamos de algo que seja nativo para o mundo digital. Depois de entender que o reino digital é informativo por natureza, a conclusão óbvia é que computação é tudo o que temos. Se o seu mundo é feito de dados, a manipulação de dados é tudo o que existe.
A prova de trabalho funciona em uma configuração ponto a ponto porque não necessita de confiança, e não necessita de confiança porque está desconectada de todas as entradas externas — como as leituras de relógios (ou jornais, nesse caso). Depende de uma coisa e apenas uma coisa: a computação requer trabalho e, em nosso universo, o trabalho requer energia e tempo.
Tempos de Transição
“Eu sei que funciona para mim.
Conforme cruzamos a ponte — a ponte em
chamas — Com as chamas atrás de nós,
Nós lideramos a linha.
É você e eu, baby, contra o mundo.”
– Kate Bush, Burning Bridge (1985)
Sem a prova de trabalho, sempre haveria o problema do Oráculo, porque o universo físico e o universo informacional estão eternamente desconectados. As marcações em sua lista de ovelhas não são suas ovelhas, o mapa não é o território e tudo o que foi escrito no jornal de ontem não é necessariamente o que aconteceu no mundo real. Da mesma maneira, só porque você usa um relógio do mundo real para carimbar data e hora, não significa que essa é realmente a hora.
Resumindo, simplesmente não há como confiar que os dados representam a realidade, exceto se a realidade em questão for inerente aos próprios dados. A coisa brilhante sobre a prova de trabalho ajustada pela dificuldade do Bitcoin é que ele cria sua própria realidade, com seu próprio espaço e tempo.
A prova de trabalho fornece uma conexão direta entre o mundo digital e o físico. Mais profundamente, é a única conexão que pode ser estabelecida sem confiança. O resto sempre dependerá de entradas externas.
A dificuldade de minerar um novo bloco de Bitcoin é ajustada para garantir que a linha tênue entre o tempo do Bitcoin e o nosso permaneça intacto. Como um relógio, a dificuldade de mineração se reajusta a cada 2016 tiques, ou blocos, nesse caso. O objetivo desse reajuste é manter o tempo médio entre os tiques em dez minutos. São esses dez minutos que mantêm uma conexão estável entre os domínios físico e informativo. Consequentemente, um senso de tempo humano é necessário para reajustar os tique-taques do relógio Bitcoin. Um reajuste puramente baseado em blocos não funcionaria, já que estaria completamente desconectado de nosso mundo humano, e todo o propósito do reajuste é impedir que nós, humanos engenhosos, encontremos blocos muito rápido (ou muito lento).
Como Einstein nos mostrou, o tempo não é uma coisa estática. Não existe um tempo universal em que possamos confiar. O tempo é relativo e a simultaneidade não existe. Esse fato por si só torna todos os carimbos de data / hora — especialmente em grandes distâncias — inerentemente não confiáveis, mesmo sem atores adversários. (É por isso que os carimbos de data / hora dos satélites GPS precisam ser ajustados constantemente, a propósito.)
Para o Bitcoin, o fato de nossos carimbos de data / hora humanos serem imprecisos não importa muito. Também não importa que não tenhamos um referencial absoluto em primeiro lugar. Eles só necessitam ser precisos o suficiente para calcular uma média um tanto confiável ao longo dos 2016 blocos. Para garantir isso, o carimbo de data / hora de um bloco só é aceito se atender a dois critérios:
- O registro de tempo (carimbo de data/ hora) deve ser maior que o registro de tempo médio dos 11 blocos anteriores.
- O carimbo de data / hora deve ser menor que o tempo ajustado pela rede, mais duas horas. (O “tempo ajustado pela rede” é simplesmente a mediana dos carimbos de data / hora devolvidos por todos os nós conectados a você.)
Em outras palavras, o ajuste de dificuldade trata de manter um tempo constante, não um nível constante de segurança, dificuldade ou gasto de energia. Isso é engenhoso porque um bom dinheiro tem que ser caro em tempo, não em energia. Vincular dinheiro à energia por si só não é suficiente para produzir escassez absoluta, visto que cada melhoria na geração de energia nos permitiria criar mais dinheiro. O tempo é a única coisa que nunca conseguiremos fazer mais. É o recurso final, como aponta Julian Simon. Isso torna o Bitcoin a forma definitiva de dinheiro, porque sua emissão está diretamente ligada ao último recurso de nosso universo: o tempo.
O ajuste de dificuldade é essencial porque, sem ele, o relógio interno do Bitcoin tenderia a ir cada vez mais rápido à medida que mais mineradores se conectassem à rede ou a eficiência dos dispositivos de mineração aumentasse. Rapidamente nos depararíamos com o problema de coordenação que o Bitcoin se propõe a resolver. Assim que o tempo de bloqueio cair abaixo de um certo limite, digamos, 50 milissegundos, seria impossível concordar com um estado compartilhado, mesmo em teoria. A luz leva cerca de 66 milissegundos para viajar de um lado a outro da Terra. Assim, mesmo que nossos computadores e roteadores fossem perfeitos, estaríamos de volta à estaca zero: dados dois eventos, seria fútil dizer qual evento aconteceu antes e qual evento aconteceu depois. Sem um ajuste periódico dos tiques do Bitcoin, teríamos o problema desesperador de resolver o problema de coordenação mais rápido do que a velocidade da luz. O tempo também está na raiz do problema de instabilidade criptográfica, que foi delineado no Capítulo 1. A criptografia funciona devido a uma assimetria no tempo: leva pouco tempo para construir uma parede criptográfica e muito tempo para quebrá-la — a menos que você tenha uma chave.
Assim, em certo sentido, a prova de trabalho — e o ajuste de dificuldade que a acompanha — retarda artificialmente o tempo, pelo menos da perspectiva da rede Bitcoin. Em outras palavras: o Bitcoin impõe um ritmo interno cuja baixa frequência permite um amplo buffer para a latência das comunicações entre pares. A cada 2016 blocos, o relógio interno do Bitcoin é reajustado, de forma que — em média — apenas um bloco válido será encontrado a cada 10 minutos.
De uma perspectiva externa, o Bitcoin canaliza a bagunça caótica de mensagens assíncronas transmitidas globalmente em um universo paralelo, restrito por suas próprias regras e seu próprio senso de espaço e tempo. As transações no mempool são atemporais do ponto de vista da rede Bitcoin. Somente quando uma transação é incluída em um bloco válido, ela recebe uma hora: o número do bloco em que está incluída.
BitCoin v0.01 ALPHA (2009)
É difícil exagerar o quão elegante é essa solução. Uma vez que você seja capaz de criar sua própria definição de tempo, decifrar o que veio antes e o que veio depois é trivial. Por sua vez, concordar sobre o que aconteceu, em que ordem e, consequentemente, quem deve o quê a quem, torna-se também trivial.
O ajuste de dificuldade garante que os tiques do metrônomo interno do Bitcoin sejam um tanto constantes. É o maestro da orquestra Bitcoin. É o que mantém a música viva.
Mas por que podemos confiar no trabalho em primeiro lugar? A resposta é tripla. Podemos confiar nisso porque a computação requer trabalho, trabalho requer tempo e o trabalho em questão — adivinhar números aleatórios — não pode ser feito de forma eficiente.
Tempo Probabilístico
“O tempo bifurca-se perpetuamente em inúmeros futuros”.
– Jorge Luis Borges, O Jardim dos Caminhos Bifurcados (1941)
Encontrar um nonce válido para um bloco de Bitcoin é um jogo de adivinhação. É muito parecido com lançar um dado, ou jogar uma moeda, ou girar uma roleta. Você está, em essência, tentando encontrar um número aleatório além de astronomicamente grande. Não há progresso para encontrar uma solução. Ou você acerta, ou não.
Cada vez que você joga uma moeda, a probabilidade de dar cara ou coroa é de 50% — mesmo se você jogou vinte vezes antes, e deu cara todas as vezes. Da mesma forma, toda vez que você espera a chegada de um bloco de bitcoin, a chance de ele ser encontrado neste segundo é de aproximadamente 0,16%. Não importa quando o último bloco foi encontrado. O tempo aproximado de espera para o próximo bloco é sempre o mesmo: ~ 10 minutos.
Conclui-se que cada tique-taque individual desse relógio é imprevisível. Em relação aos nossos relógios humanos, esse relógio parece ser espontâneo e impreciso. Isso é irrelevante, como aponta Gregory Trubetskoy: “Não importa que este relógio seja impreciso. O que importa é que é o mesmo relógio para todos e que o estado da cadeia pode ser vinculado inequivocamente aos tique-taques desse relógio.” O relógio do Bitcoin pode ser probabilístico, mas não é ilusório.
“O tempo é uma ilusão, a hora do almoço duplamente.”
– Douglas Adams (1979)
O momento presente, no entanto, pode ser absolutamente uma ilusão no Bitcoin. Como não há autoridade central na rede, podem surgir situações estranhas. Embora improvável, é possível que um bloco válido seja encontrado ao mesmo tempo (novamente: desculpas a todos os físicos), o que fará o relógio avançar em dois lugares diferentes simultaneamente. No entanto, como os dois blocos muito provavelmente serão diferentes em seu conteúdo, eles conterão duas histórias diferentes, ambas igualmente válidas.
Isso é conhecido como divisão da cadeia e é um processo natural do consenso de Nakamoto. Como um bando de pássaros que se divide brevemente em dois apenas para se fundir novamente, os nós na rede Bitcoin acabarão por convergir para uma história compartilhada após algum tempo, graças à natureza probabilística da adivinhação.
O consenso de Nakamoto simplesmente afirma que o histórico correto deve ser encontrado na cadeia mais pesada, ou seja, a cadeia com a maior quantidade de prova de trabalho embutida nela. Assim, se tivermos duas histórias, A e B, alguns mineradores tentarão construir sobre a história A, outros tentarão construir sobre a história B. Assim que um deles encontrar o próximo bloco válido, o outro grupo está programado para aceitar que eles estavam do lado errado da história e mudarão para a corrente mais pesada — a corrente que representa o que realmente aconteceu, por definição. No Bitcoin, a história é verdadeiramente escrita pelos vencedores.
“O beneficiário precisa de uma prova de que, no momento de cada transação, a maioria dos nós concordou que foi a primeira recebida. […] Quando houver várias versões de gasto duplo da mesma transação, uma, e apenas uma, se tornará válida. O recebedor de um pagamento deve esperar cerca de uma hora antes de acreditar que ele é válido. A rede resolverá quaisquer possíveis corridas de gasto duplo até então.”
– Satoshi Nakamoto (2009)
Nesta declaração simples está o segredo do problema de coordenação distribuída. Foi assim que Satoshi resolveu o problema do “pagamento simultâneo” que nossos parceiros de negócios fictícios encontravam anteriormente. Ele resolveu de uma vez por todas, malditos efeitos relativísticos!
Por causa dessa natureza probabilística do relógio do Bitcoin, o momento presente — o que chamamos ponta da corrente — é sempre incerto. O passado — blocos enterrados abaixo da ponta da corrente — é cada vez mais certo.
“Quanto mais completo for o entendimento necessário, mais para trás no tempo se deve voltar.”
– Gordon Clark, A Christian View of Men and Things, p. 58. (1951)
Consequentemente, o relógio do Bitcoin pode retroceder de tempos em tempos, para alguns pares, por um ou dois tiques. Se a ponta da sua corrente — o momento presente — perder para uma ponta da corrente concorrente, seu relógio primeiro retrocederá e depois avançará, substituindo os últimos tique-taques que você pensava que já eram história. Se seu relógio é probabilístico, sua compreensão do passado também deve ser.
“Tick tock tick tock tick — que horas são?
Tique-taque-tique-taque … termina em c619 .
Tem certeza de que está bom? Provavelmente estamos atrasados?
Absolutamente não importa: antes do nove, vem o oito .
O relógio não é exato; às vezes acontece ao contrário.
O tempo exato implica centro; essa é a raiz desta maldição!
No entanto, este relógio continua correndo, tock-tick e tique-taque,
não há lucro em truques; apenas tique-taque e próximo bloco.”
– Uma divertida rima sobre Bitcoin e tempo (2020)
Consequentemente, o relógio do Bitcoin pode retroceder de tempos em tempos, para alguns pares, por um ou dois tiques. Se a ponta da sua corrente — o momento presente — perder para uma ponta da corrente concorrente, seu relógio primeiro retrocederá e depois avançará, substituindo os últimos tique-taques que você pensava que já eram história. Se seu relógio é probabilístico, sua compreensão do passado também deve ser.
Conclusão
“O tempo ainda é um dos grandes mistérios da física, que questiona a própria definição do que é a física.”– Jorge Cham e Daniel Whiteson: Não temos ideia: um guia para o universo desconhecido, pp. 117–118 (2017)
Acompanhar as coisas no domínio informativo implica acompanhar uma sequência de eventos, o que, por sua vez, exige o controle do tempo. Manter o controle do tempo requer concordar com um “agora” — um momento no tempo que conecta eternamente o passado estabelecido com o futuro incerto. No Bitcoin, esse “agora” é a ponta da cadeia de prova de trabalho mais pesada.
Dois blocos de construção são essenciais para a estrutura do tempo: ligações causais e eventos imprevisíveis. Ligações causais são necessárias para definir um passado e eventos imprevisíveis são necessários para construir um futuro. Se a sequência de eventos fosse previsível, seria possível pular para a frente. Se as etapas individuais da sequência não estiverem vinculadas, seria trivial mudar o passado. Devido ao seu senso interno de tempo, é extremamente difícil enganar o Bitcoin. Seria preciso reescrever o passado ou prever o futuro. A cadeia de tempo do Bitcoin impede ambos.
Observar o Bitcoin através das lentes do tempo deve deixar claro que a “cadeia de blocos” — a estrutura de dados que conecta causalmente vários eventos — não é a principal inovação. Não é nem mesmo uma ideia nova, como fica evidente ao estudar a literatura de registros de data/hora do passado.
“A blockchain é uma cadeia de blocos.”– Peter Todd
O que é uma ideia nova — o que Satoshi descobriu — é como concordar independentemente sobre uma história de eventos sem coordenação central. Ele encontrou uma maneira de implementar um esquema de carimbo de data / hora descentralizado que: (a) não exige uma empresa ou servidor de carimbo de data / hora, (b) não exige um jornal ou qualquer outro meio físico como prova, e (c) pode manter os tique-taques aproximadamente constantes, mesmo quando operado em um ambiente de tempo com relógios de CPU cada vez mais rápidos.
A marcação do tempo requer causalidade, imprevisibilidade e coordenação. No Bitcoin, a causalidade é fornecida por funções unilaterais: as funções hash criptográficas e as assinaturas digitais que estão no núcleo do protocolo. A imprevisibilidade é fornecida tanto pelo quebra-cabeça da prova de trabalho quanto pela interação com outros pares: você não pode saber com antecedência o que os outros estão fazendo e não pode saber com antecedência qual será a solução do quebra-cabeça da prova de trabalho. Coordenação é possível graças ao ajuste de dificuldade, o molho mágico que une o tempo do Bitcoin ao nosso. Sem essa ponte entre o domínio físico e o informativo, seria impossível concordar com um horário confiando apenas em dados.
Bitcoin é tempo em mais de uma forma. Suas unidades são tempo armazenado porque são dinheiro, e sua rede é tempo porque é um relógio descentralizado. A batida implacável deste relógio é o que dá origem a todas as propriedades mágicas do Bitcoin. Sem ele, a complexa dança do Bitcoin desmoronaria. Mas com ele, todos na terra têm acesso a algo verdadeiramente maravilhoso: Dinheiro Mágico da Internet.