Çeviri fikrimiz, veya daha yerinde bir deyimle, kodlamamız, uzun ve anlamsız karakterler dizisini anlamlı kelimelere dönüştürdü. Bu nasıl mümkün?

Bunu adım adım inceleyelim. Kökeninde, anahtar asıl olarak şuna benzer: 0011100000111000110001011110001001110001001001111111110000000000101101000000010101111110001101101101101001001111110000010100111100011001000000010000101101000101111100110101101101101001100001111101110011101000111101001101111111111000101111101111101001111101111010111111000100111101001000001001001000111111111111111000001001000000

Neden sadece sıfırlar ve birler? Bilgisayarların anladığı dil bu olduğu için. İkili sayı sistemi. Bir şey ya açık ya da kapalı. Birler ve sıfırlar. Fakat şunun ne kadar uzun olduğuna bir bak (kız da öyle demişti -editorun notu). Bu 256 haneli bir sayı! Bir anahtarı sadece 0 veya 1 gibi iki farklı karakter kullanarak ifade etmeye çalışırsan böyle olur.

Bunu biz insanların okuması ve doğrulaması için biraz daha kısaltabiliriz. Aynı anahtarı sıkıştırmak için sadece iki karakterden çok daha fazlasını kullanabiliriz. Mesela 58 tane karakter:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Buna Base58 denir. Bu 58 farklı karakterin oluşturduğu bir kümedir. Bu kümedeki karakterler birbirlerinden yeterli derecede farklı gözükerek yazım hatalarının kolayca tespit edilmesini sağlamak için seçilmiştir. Örneğin, kullandığın yazı fontuna göre değişerek, bir 1 veya l neredeyse aynı gözükür. Bu sebeple Base58 içerisinde küçük l’yi bulamazsın, bu kümede yoktur. Bu gibi görünüşü benzer çiftler oluşturan karakterlerden birisi atılarak bu Base58 kümesi elde edilmiştir.

O halde elimizdeki ikili sayı sistemiyle yazilmiş olan anahtarımızı Base58 ile yazılacak üzere çevirelim:

378bc5e22fc9fc02b41af8dd943e794f70576634b6223f3eba7ea76efe2c4400

Bu oldukça iyi, çok daha kısa. Ancak yine de gözle farklılıkları tespit etmek, veya el yazısı ile yedeklemesini yapmak için yeterince iyi değil. Bunlar hala 64 tane anlamsız karakterler dizisi. Bunları tekrar daha da sıkıştırabilseydik nasıl olurdu? Mesela 25 kelimeden (biz insanlara anlamlı gelen kelimelerden) oluştan bir dizi? Böylelikle kolayca yazıp, okuyup hataları fark edebildiğimiz bir kodlama elimizde olurdu. Bu iyi bir fikir.

O halde hepimizin üzerinde anlaştığı bir sözlüğe ihtiyacımız var, ve ardından anahtarımızı tekrar sıkıştırabiliriz:

nouns older lids rodent pumpkins railway wiggle mailed hoax waking evenings nocturnal oozed buckets germs gearbox gauze neon update axis macro syndrome madness magically rodent

İşte böyle, işte başlıyoruz. İlk bakışta bu daha uzun gelebilir, fakat şimdi 64 farklı “şey” yerine, sadece 25 tanesiyle baş etmek zorundayız. Ve hataları fark etmek çok daha kolay. El yazın oldukça kötü olsa bile, yazılan şeyin evenings olduğunu ve evonings olmadığını kolayca kestirebiliriz.

Buna anımsatıcı tohum dememizin sebebi bu. Anımsatıcı bir şeyin daha kolay hatırlanabilmesine işaret eder. Şimdi elimizde ezberlemesi daha kolay olan tohumlar var, ve bunları kolayca bilgisayar dilindeki anahtarlara çevirip bizim güzel sanal paramizin sahipliğini kanıtlayabiliriz.

Artık insanların birbilerine para gönderebilmeleri için adresler üretebiliriz.

◄ Önceki / Sonraki ►