İçeriğe geçin
buybitcoinsmart

Sözlük / Adresler ve anahtarlar

HD cüzdan

Diğer adları: HD protokolü, Hiyerarşik deterministik cüzdan, BIP32.

HD cüzdan nedir?
Bir HD cüzdan, ihtiyaç duyacağı tüm anahtarları tek bir rastgele tohumdan üretir ve bunları BIP-32 standardının 2012'de belirlediği ebeveyn ile çocuk ağacı biçiminde düzenler.

Tanımlandığı belge: BIP-32.

Bir tohum bir ana anahtar üretir, ana anahtar dalları üretir ve dallar kullandığınız her adresi üretir. BIP-32'ye 11 Şubat 2012'de numara verildi ve bugün dağıtılan neredeyse her donanım, mobil ve masaüstü cüzdan buna uyar. Bir karttaki on iki kelimenin, on yıldır kullandığınız bir cüzdanı geri getirebilmesinin nedeni budur.

Nasıl çalışır

Bir HD cüzdan, anahtarlı bir hash'i tekrar tekrar çalıştırarak tek bir sayıyı bir hiyerarşiye dönüştürür. Tohum, sabit "Bitcoin seed" anahtar dizesiyle HMAC-SHA512'ye girer ve 64 bayt üretir: soldaki 32 bayt ana özel anahtar, sağdaki 32 bayt ise ana zincir kodu olur. Bu çift, altındaki her şeyin köküdür.

Sonraki her adım bir anahtarı, zincir kodunu ve bir dizin numarasını alır, bunları aynı şekilde hash'ler ve kendi zincir kodu olan bir alt anahtar verir. Her düğümün 4.294.967.296 olası alt öğesi vardır ve bunlar iki yarıya ayrılır: 2.147.483.648 altındaki dizinler normaldir ve yalnızca genel taraftan hesaplanabilir; bu çizgideki ve üstündeki dizinler ise sertleştirilmiştir ve özel anahtar gerektirir. Adımı tekrarlamak bir ağaç kurar ve bu ağaçtaki bir konum türetme yolu olarak yazılır.

Tasarımı değerli kılan şey belirlenimliliktir. Aynı tohum, herhangi bir doğru uygulamaya verildiğinde sonsuza kadar tam olarak aynı anahtarları aynı sırayla üretir. Hiçbir anahtar saklanmaz, yalnızca yeniden hesaplanır; yedeğin her ödeme aldığınızda büyüyen bir dosya değil bir cümle olmasının nedeni budur.

Kelimeler ayrı bir katmandır ve iki katmanı karıştırmak kurtarma sorunlarının çoğuna yol açar. BIP-39, 2.048 kelimelik bir listeden alınan ifadenin tohum haline nasıl geldiğini tanımlar: ifade, "mnemonic" dizesi ve isteğe bağlı bir parola (passphrase) ile tuzlanarak HMAC-SHA512 aracılığıyla 2.048 iterasyon boyunca PBKDF2 üzerinden uzatılır. BIP-32 kelimeler hakkında hiçbir şey bilmez, BIP-39 ise ağaçlar hakkında hiçbir şey bilmez. İkisini bir gelenek birleştirir; iki cüzdanın sizin ifadeniz üzerinde anlaşıp adresleriniz üzerinde anlaşmaması bu yüzden mümkündür.

Bitcoin Core, 0.16.0 sürümünden beri yalnızca hiyerarşik belirlenimli cüzdanlar oluşturur. Bundan önce bir cüzdan, birbiriyle ilgisiz rastgele anahtarlardan oluşan bir havuz tutardı ve havuz yedeğin kapsadığının ötesine geçtiği anda yedek geçersiz hale gelirdi.

Bitcoin satın alırken bu neden önemli

Cüzdan kurulumu sırasında yazdığınız ifade, satın alacağınız her coini koruyan tek şeydir ve ağaç yapısı bu tespiti doğru kılan şeydir.

Bir kez yedek alın ve yedek eksiksiz kalır. Yüz yeni adrese yapılan yüz borsa çekimi, hepsi tek bir kökün alt soylarıdır; dolayısıyla sonradan yaptığınız hiçbir şey korumanız gereken şeyi büyütmez. Bu, ilk istemcinin çıkışından bu yana Bitcoin saklamadaki en büyük pratik iyileşmedir ve aynı zamanda bir kez fotoğrafı çekilen bir kurtarma ifadesinin kalıcı olarak ele geçirilmiş olmasının nedenidir: fotoğraf, henüz satın almadığınız coinleri de kapsar.

Taşınabilirlik ikinci kazançtır ve beraberinde bir tuzak getirir. Bir Trezor veya Ledger cihazına yazılan ifade Sparrow, Electrum veya BlueWallet içine geri yüklenir, çünkü hepsi aynı standardı uygular. Tuzak rotadadır. BIP-44 1 ile başlayan adresler üretir, BIP-49 3 üretir, BIP-84 bc1q üretir ve BIP-86 bc1p üretir; hepsi aynı kelimelerden. Varsayılan olarak farklı bir amaç kullanan bir yazılıma geri yüklerseniz bakiye sıfır görünür, coinler ise başka bir dalda el değmeden durur. Yedeğin yanına türetme yolunu yazıp başka hiçbir şey yazmamak bu paniği önler.

Boşluk sınırı (gap limit) bilinmesi gereken üçüncü şeydir. Geri yüklenen bir cüzdan, BIP-44 kapsamında 20 kullanılmamış adres boyunca ileriye doğru tarar ve sonra aramayı bırakır. Hiç yedeklemediğiniz bir cüzdanda Alma düğmesine kırk kez basıp son adresi kullanmak, boş bakiye bildiren bir geri yükleme üretmenin güvenilir bir yoludur.

m/84'/0'/0'/0/0 yolunu birer birer okumak

Bir türetme yolu posta adresi gibi çalışır ve her düzeyde daralır. Standart yerel SegWit yolunu soldan sağa okuyun.

  • m, tohumunuzdan türetilen ana anahtardır.
  • 84', bc1q ile başlayan yerel SegWit adresleri üreten BIP-84 amacını seçer. Kesme işareti düzeyi sertleştirilmiş olarak işaretler.
  • 0' coin türüdür ve 0 Bitcoin ana ağını (mainnet) belirtir. Test ağı 1' olurdu.
  • 0' hesaptır, dolayısıyla bir işletme için ayrı bir hesap 1' olurdu.
  • 0 zincirdir: verdiğiniz adresler için 0, para üstü için 1.
  • 0 adres dizinidir ve alınan her ödemeyle bir artar.

İlk üç düzey sertleştirilmiştir, son ikisi değildir; bu bilerek böyledir. Bu ayrım, hesap düzeyinde bir genişletilmiş genel anahtarın yalnızca izleme amaçlı bir cüzdana aktarılabilmesini sağlar; bu cüzdan daha sonra para alma ve para üstü adresleri üretebilir, ancak hiçbir zaman kardeş bir hesaba erişemez veya ana anahtara doğru geri tırmanamaz.

HD cüzdan vs kurtarma ifadesi

HD cüzdan bir türetme şemasıdır; kurtarma ifadesi ise başladığı sayıyı yazmanın bir yoludur. BIP-32 ağacı tanımlar ve 128 ile 512 bit arasındaki her tohumu kabul eder, 256 bit önerir. BIP-39 kelimeleri tanımlar. Electrum kendi uyumsuz ifade biçimini sunar ve yine de tamamen hiyerarşik belirlenimlidir; bu da iki katmanın gerçekten bağımsız olduğunu gösterir. Bu ayrım, bir yazılım BIP-39 kurtarmayı desteklediğini söylediğinde önemlidir: bu, kelimelerinizi okuma hakkında bir sözdür, sonrasında hangi dala bakacağı hakkında değil.

HD cüzdan vs türetme yolu

HD cüzdan ağaçtır; türetme yolu ise bu ağaçtan geçen bir rotadır. İnsanlar bir cüzdanı sanki bir ürün kategorisiymiş gibi “bir BIP-84 cüzdanı” diye tanımlar, oysa herhangi bir BIP-32 cüzdanı herhangi bir yolu izleyebilir ve güncel yazılımların çoğu tek bir tohumdan farklı amaçlara sahip birkaç hesabı rahatlıkla gösterir. Yolu, yedeğin yanına yazdığınız bir koordinat olarak görün, kurmuş olduğunuz uygulamanın bir özelliği olarak değil.

Karıştırılmaması gerekenler

Sık sorulan sorular

HD cüzdanımın oluşturduğu her adresi yedeklemem gerekir mi?

Hayır. Her adres aynı tohumdan sabit bir hesaplamayla türetilir, dolayısıyla kurtarma ifadesi henüz kullanmadığınız adresleri de kapsar. Türetme yolunu ifadeyle birlikte kaydedin, yedek eksiksiz olur.

Kurtarma ifademi geri yükledim ama bakiye sıfır. Nerede yanlış gitti?

Neredeyse her zaman neden türetme yolu ya da boşluk sınırıdır. Aynı kelimeler BIP-44, BIP-49, BIP-84 ve BIP-86 kapsamında farklı adresler üretir ve geri yüklenen bir cüzdan 20 kullanılmamış adresten sonra taramayı durdurur. Bir şeyin kaybolduğunu varsaymadan önce diğer amaçları deneyin ve boşluk sınırını yükseltin.

HD cüzdan, anahtarları tek tek üretmekten daha az güvenli midir?

Hayır, ve genellikle daha güvenlidir. Her anahtar yine 128 ile 256 bit arasında entropiden gelir ve tek bir yedek en yaygın hatayı ortadan kaldırır: sonradan kullandığınız bir anahtarı içermeyen eski bir yedek.

İki cüzdan uygulaması aynı HD cüzdanı paylaşabilir mi?

Evet. Aynı ifadeyi ikisine de içe aktarın ve aynı türetme yolunu ayarlayın; ikisi de aynı adresleri türetir ve aynı bakiyeleri görür. İkisinden aynı anda imzalamak çakışan işlemler üretebilir, bu yüzden birini birincil olarak kabul edin.

Sıradaki okuma

İlgili terimler

Daha fazlası: Adresler ve anahtarlar

Bu sayfayı İngilizce okuyun