Herkes şu anda Bitcoin hakkında spekülasyon yapmaya hevesli, ancak nadiren Bitcoin teknolojisinin güvenlik sorunlarına dikkat ediyor. Şu anda kullandığınız Bitcoin cüzdanının büyük tehlikeler içerdiğini bilmiyor olabilirsiniz, bu nedenle bu makaleyi bir hatırlatma olarak yazmaya karar verdiniz, aksi takdirde gelecekte birkaç, düzinelerce veya daha fazla Bitcoin kaybedebilirsiniz.
Bitcoin'in UTXO'ya dayandığını biliyoruz. Alice olduğunuzu ve bir Bitcoin cüzdanınız olduğunu varsayalım. Cüzdan bir Bitcoin adresi içerir, adres bir UTXO içerir ve UTXO bir 10BTC bakiyesi içerir. Şimdi 10 BTC'yi Bob'a aktarmak istiyorsunuz (işlem ücretini dikkate almadan), sonra oluşturulan İşlem çok basittir (UTXO'nuzu girdi olarak ve Bob'un adresini çıktı olarak kullanın), aşağıda gösterildiği gibi:
Şimdi durum biraz daha karmaşık hale geliyor. Sadece 5 BTC'yi Bob'a aktarmanız gerekiyor ve İşlem biraz daha karmaşık hale gelecektir (1 giriş hala UTXO'nuza, 2 çıkışa, 1 ise Bobun 5BTC adresine atıfta bulunur. Diğeri kendi adresini 5BTC verdi).
Sonra sorun gelir. Kendinize aktarılan 5 BTC, orijinal adresi mi yoksa yeni oluşturulan adresi mi kullanıyor? Bu, Bitcoin'de şu adı verilen standart bir politikadır: Adresi Değiştir. Şimdi Bitcoin'in neden böyle bir politika belirlediğine bakalım? Bir değişiklik adresi politikası olmadan önce transfer modelimiz şöyleydi:
Kalan tüm BTC'ler gönderen adrese geri aktarılır. Bitcoin'in blok zinciri halka açık olduğundan sorguya açık olduğundan, A'nın ödeme davranışını ve servet durumunu bu şekilde herhangi bir gizlilik olmadan kolayca takip edebilirsiniz. Bu yüzden Bitcoin bir değişiklik adresi politikası (zorunlu değil) getirdi, yeni modda çalışma şekli şöyle:
Her transferin bakiyesi için yeni bir adres oluşturun. Aslında, yukarıdaki şekilde C, A kullanıcısının başka bir adresidir.
Bir İşlemin çıktısında, çıktı sıralanır (indeks) ve her zaman hedef adresi ilk sıraya koymak (indeks 0'dır) işlemin sızmasına neden olur. Gizliliği daha da artırmak için shuffleOutputs (shuffle) işlevi bu temelde eklenecek ve İşlem'deki çıktıların sırasını bozacak ve bunları rasgele düzenleyecektir. Bu tür birkaç transferden sonra, A'nın işlem davranışını takip edemezsiniz.
Bu, yaygın olarak kullanılan mükemmel bir çözümdür. Ancak bu, bugünkü makalemizde de ana bakış açısı olan cüzdanın güvenliği için büyük riskler getiriyor.
Şimdi çoğumuzun Bitcoin cüzdanlarını kullanması için standart adımlar şu şekildedir (çevrimiçi cüzdanları ve borsaları incelemeyin, ek güvenlik sorunları olacaktır):
Bunun güvenli olduğunu düşünüyoruz çünkü cüzdanımı yedekledim. Bilgisayarım hurdaya atılsa ve telefonum kaybolsa bile, yedeklemeyi geri yüklemek için yine de kullanabilirim. Evet bu doğru! Ancak bu sadece transfer işlemini gerçekleştirmezseniz! Bir kez transfer ettiğinizde, cüzdanınız sizin için yeni bir adres oluşturabilir ve bu yeni adres yedeğinize dahil edilmeyebilir!
Cüzdanınızda 100 BTC bulunduğunu ve birden fazla transfer işlemi gerçekleştirdiğinizi ve toplam 50 BTC transfer edildiğini hayal edin. Aniden bir gün cep telefonunuz kayboldu (cüzdan cep telefonunuzda), hızlı bir şekilde yeni bir cep telefonu satın aldınız, yeni bir cüzdan yüklediniz, geri yüklemek için yedeği çıkardınız, ancak cüzdan bakiyesinin 0 olduğunu gördünüz. Kalan 50 BTC'nizin bulunduğu adresi yedeklemediğiniz için, bu, transfer işlemi sırasında oluşturulan yeni bir adrestir!
Aşağıdaki, yazarın mobil cüzdan kullanarak aktarımıdır, kırmızı kutudaki adres, yazarın son yedeğinde olmayan yeni oluşturulmuş bir adrestir.
Burada mümkün diyoruz çünkü farklı cüzdanlar farklı modelleri benimsedi. Mevcut genel model aşağıdaki türlere ayrılmıştır:
Gizlilik sorunlarını umursamıyorsanız (çünkü çoğu kişi işlem davranışının sızmasını önemsemediğinden, adresin kendisi anonim olduğundan, para biriminin güvenliğine daha fazla dikkat ederler), tek bir adresli cüzdan kullanabilirsiniz. Aynısı çevrimiçi cüzdanlar için de geçerlidir. Yazar, işlediği bitcoin ödeme platformunu (bitbill.com) tek adres moduna (biraz genişletilmiş) değiştirdi.Yazar, bitcoinj kullanıyor ve çekirdek kodunda aşağıdaki değişiklikleri yaptı:
log.info ("selection.gathered length:" + selection.gathered.size); for (TransactionOutput output: selection.gathered) {// değişiklik adresi sorunu için Tom @ 2017/2 / 9 tarafından eklendi .if (req.changeAddress == null) {{req.changeAddress = output.getAddressFromP2PKHScript (org.bitcoinj.params.MainNetParams.get);} catch (Exception ex) {} // P2PKHlog.info olmaması durumunda ("Tom'un req.changeAddress düzeltmesi : "+ req.changeAddress);} else {log.info (" req.changeAddress boş değil: "+ req.changeAddress);}}Bitcoin cüzdanları kullanan kullanıcılar için, cüzdan türüne bağlıdır (özellikle şu anda çoğu HD olmayan cüzdanlar kullanan HD olmayan cüzdanlar). Genellikle daha fazla yedekleme gerekir. Unutmayın, aktarım yapmazsanız, aktarımdan hemen sonra yedeklemeniz gerekebilir!
Gönderildiği andaki standart Bitcoin fiyatı Alış fiyatı: 6769,00TL Satış fiyatı: 6663,00TL