São dez horas, você espera cinco, e são três. Não quinze. Ninguém acha isso estranho, ninguém precisou aprender uma regra nova, e todo mundo faz essa conta desde criança. É exatamente a aritmética em que o Bitcoin opera, do primeiro ao último cálculo, e ela tem nome: aritmética modular.
Um corpo finito é um conjunto com uma quantidade finita de elementos dentro do qual as quatro operações funcionam e nunca produzem nada de fora. No caso do Bitcoin, os elementos são os números inteiros de zero até p menos um, e a regra é simples: faça a conta como sempre fez e fique com o resto da divisão por p.

Somar, subtrair e multiplicar não têm mistério. Num corpo de módulo 7, cinco mais quatro dá dois, porque nove dividido por sete deixa resto dois. Três vezes cinco dá um, porque quinze deixa resto um. Subtrair é somar o oposto: menos três é o mesmo que quatro, já que três mais quatro fecham o relógio inteiro.
A divisão é que exige uma ideia nova, e é a ideia mais importante da aula. Não existe vírgula num corpo finito, então dividir por a não pode significar partir em pedaços. Significa multiplicar pelo inverso de a — o número que, multiplicado por a, dá exatamente um. No módulo 7, o inverso de três é cinco, porque quinze deixa resto um. Dividir por três, ali, é multiplicar por cinco.
Agora a pergunta que dá a resposta ao título: por que p precisa ser primo? Porque só assim todo elemento tem inverso. Experimente num relógio de módulo doze: o número quatro, multiplicado por qualquer coisa, só produz múltiplos de quatro, e nenhum deles deixa resto um. O quatro não tem inverso, a divisão por quatro é impossível, e o conjunto deixa de ser um corpo. Isso acontece com todo número que compartilhe um divisor com o módulo — e um módulo primo não compartilha divisor com ninguém abaixo dele.

Calcular o inverso na prática se faz de dois jeitos. O pequeno teorema de Fermat, de 1640, garante que a elevado a p menos um deixa resto um; então a elevado a p menos dois é o inverso, e uma exponenciação resolve. Mais rápido ainda é o algoritmo de Euclides estendido, uma sequência de divisões que os gregos já conheciam e que devolve o inverso em poucos passos. Toda carteira do mundo roda um dos dois, milhares de vezes por segundo, sem que ninguém repare.
O p do Bitcoin é este: 2 elevado a 256, menos 2 elevado a 32, menos 977. Um número primo com setenta e oito algarismos decimais. A escolha não é decorativa — ele foi posto rente a uma potência de dois de propósito, porque reduzir um número módulo algo tão próximo de 2^256 se faz com deslocamentos e somas, sem divisão nenhuma. É a diferença entre uma operação cara e uma barata, repetida bilhões de vezes.

Um último cuidado, que evita uma confusão frequente daqui para a frente. Existem dois números grandes na história, e eles são diferentes. O p é o tamanho do corpo, o relógio em que as coordenadas dos pontos vivem. Existe também o n, a quantidade de pontos que o gerador alcança, e é ele o relógio em que as chaves privadas e os números de uma assinatura vivem. Os dois são primos, os dois têm 256 bits, e os dois estão bem próximos um do outro — mas confundi-los produz contas que parecem certas e resultados que não fecham.
Com o relógio montado, falta pôr a curva em cima dele. Na próxima aula, y² = x³ + 7, os pontos que satisfazem essa equação e a regra que soma dois deles para produzir um terceiro.