O ideal seria nunca precisarmos anotar as 24 palavras geradas aleatoriamente de uma wallet BIP39 e guardar na memória.
Quem tem memória fotografica não teria nenhuma preocupação.Mas não é o caso da maioria.
Imagige uma situação em que você precisa fugir de um lugar por causa de uma guerra, desastre, incêndio, e perde tudo. Ou atravessa uma fronteira e tem seus bens confiscados. Ou pior , tem seus emails e arquivos da nuvem confiscados e suas chaves estão lá guardadas
Podemos usar algumas propriedades do número Pi (π) aquela famosa relação entre o comprimento e diâmetro de um circulo.
π = 3,1415926...
A primeira propriedade é que seus digitos decimais (matissa) são infinitos, já que ele é um número irracional.
Outra propriedade é que esses digitos não tem um padrão de repetição e são uma boa fonte de números aleatórios, como atestam esses artigos:
https://blogs.sas.com/content/iml/2015/03/12/digits-of-pi.htmlhttps://arxiv.org/pdf/1411.3911.pdfhttps://www.purdue.edu/uns/html4ever/2005/050426.Fischbach.pi.htmlAs palavras seed do BIP39 são compostas de 2048 palavras em inglês que são indexadas , ou seja cada palavra tem um número que varia de 1 a 2048.
Aqui tem a relação das palavras e seu índice:
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txtA proposta é basicamente escolher uma posição do dígito de pi e a cada 4 digitos seguintes procurar um número que se encaixe entre os intervalos do índice ou seja, os dígitos tem que estar entre 0001 e 2048 para ser válido, caso contrario descarte e passe para a proxima busca.
Nesse exemplo eu usei o
https://www.angio.net/pi/bigpi.cgi e baixei os primeiros 500 digitos do Pi a partir da posição 1 para usar como exemplo. Na prática devemos usar uma posição que só você saiba. Essa posição seria a senha secreta que vai gerar a seed do BIP39.
Nesse site de busca de digitos de Pi basta escolher a quantidade de digitos para ser baixada e a posição a partir da qual os digitos serão baixados. Depois basta clicar no Show Pi.
Abaixo estão os primeiros 500 digitos a partir da posição 1, lembrando que é apenas um exemplo e não deve ser usado na prática, escolha outra posição que só você saiba.
1415926535897932384626433832795028841971693993751058209749445923078164062862089
9862803482534211706798214808651328230664709384460955058223172535940812848111745
028410270193852110555964462294895493038196
Vamos dividir essa maçaroca de digitos em grupos de 4 digitos e verificar se estão entre o intervalo de 0001 e 2048, se sim. vamos procurar na tabela do índice do BIP39 as palavras correspondentes. Se o digito estiver fora do intervalo, descartamos e vamos pra proxima busca, até complermos 23 palavras, a palavra de número 24 não pode ser escolhida, deve ser calculada a partir das 23 palavras anteriores,isso será feito na etapa posterior.
O motivo de termos baixados 500 digitos é que nem todos os grupos de 4 digitos se encaixam no intervalo, assim temos que ter uma boa quantidade para fazer a busca, em alguns casos precisamos baixar 1000 digitos para conseguir atingir o objetivo.
1415 palavra 1: radio
9265
3589
7932
3846
2643
3832
7950
2884
1971 palavra 2: wagon
6939
9375
1058 palavra 3: loud
2097
4944
5923
0781 palavra 4: ghost
6406
2862
0899 palavra 5: icon
8628
0348 palavra 6: clock
2534
2117
0679 palavra 7:feel
8214
8086
5132
8230
6647
0938 palavra 8:inside
4460
9550
5822
3172
5359
4081
2848
1117 palavra 9: merit
4502
8410
2701
9385
2110
5559
6446
2294
8954
9303
8196
4428
8109
7566
5933
4461
2847
5648
2337
8678
3165
2712
0190 palavra 10: bless
9145
6485
6692
3460
3486
1045 palavra 11: little
4326
6482
1339 palavra 12: point
3607
2602
4914
1273 palavra 13: page
3460
3724
5870
0660 palavra 14: fame
6315
5881
7488
1520 palavra 15:sadness
4326
9209
6282
9254
0917 palavra 16:income
1536 palavra 17:say
4367
8925
9036
0011 palavra 18:access
3305
3054
8820
4665
2138
4146
9519
4151
1609 palavra 19:simple
4330
5727
0365 palavra 20:collect
7595
9195
3092
1861 palavra 21: trigger
1738 palavra 22:summer
1932 palavra:23: vapor
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer vapor
Temos as 23 palavras da seed, ainda falta a palavra 24 que é o check sum e é calculado a partir as outras 23 palavras.
Essa é a parte mais chata do processo. Das 2048 palavras do BIP39, só 8 podem validar essa sequência de 23 palavras. Para descobrir quais são essas palavras precisamos usar um programa escrito em Python disponivel aqui:
https://github.com/jonathancross/jc-docs/blob/master/BIP39_Seed_Phrase_Checksum.pyUsando esse programa descobrimos as 8 palavras que podem completar a nossa sequencia acima, são elas em ordem alfabetica:
cabin crowd expand hurt nation random slow total
Outro método para quem não sabe usar o Pyton seria usar o gerador do BIP 39 do Ian Coleman
https://iancoleman.io/bip39/ e procurar por força bruta uma das 8 palavras para validar a sequência, preenchendo com as 23 palavras conhecidas e buscando a palavra 24, na teoria teriamos 256 tentativas para encontra uma das 8 palavras, ou 2048 tentativas para achar todas as 8, lembrando que temos que usar a lista oficial de palavra do BIP39..
Finalizando nossa relação de possiveis seeds:
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer vapor cabin
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor crowd
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor expand
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor hurt
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor nation
fadio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor random
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor slow
radio wagon loud ghost icon clock feel inside merit bless little point page fame sadness income say access simple collect trigger summer
vapor total
Verifiquei essas 8 carteiras no Trust Wallet e nenhuma delas tem algum saldo.
O segredo desse método é escolher uma posição inicial do digito do número Pi que só você consiga guardar na memoria.
Datas do seu nascimento não seria recomendado.
Lembrando que o site que gera os digitos do número Pi guarda 200 milhões de digitos , ou seja a posição escolhida teria que estar entre 1 e 199999000, deixando uma margen confortável de digitos disponiveis para uso.
Outro método para deixar mais aleatório o método, seria o de inverter a sequência de palavras, embaralhar a sequencia, ou pular os digitos seguindo uma ordem que só você saiba e logicamente consiga lembrar, existem inúmeras variações.
Lembrando que mesmo que alguem tenha as 23 palavras, mas se não souber a correta sequencia, vai ser dificil abrir a carteira e sacar as criptos, lembrando que temos o fatorial de 23 como as possiveis combinações, ou 25.852.016.738.884.976.640.000 possibilidades.
Para finalizar deixei 31415 satoshis, justamente o valor de pi, no endereço abaixo, hoje vale quase 7 dólares.
bc1q5ww05r83qlxw3at6xt8pkn0znel3t77f9sxqhh
https://www.blockchain.com/btc/address/bc1q5ww05r83qlxw3at6xt8pkn0znel3t77f9sxqhhEsse endereço foi gerado usando esse metodo , usei a data de nascimento do físico Albert Einstein, que, concidẽncia ou não , nasceu no famoso dia do Pi, ou seja 14 de março . Usei o formato americano para a data de nascimento do Einstein: 3141879
Usando essa data e usando a primeira palavra em ordem alfabética para o check sum da palavra 24, descubra os seeds da carteira e saque seus satoshis.
Vou estar monitorando no Trust wallet essa conta.
Boa sorte!