@BitcoinHaber: Bitcoin Cüzdanı Nedir ve Nasıl Çalışır

20 Ağustos 2013 Salı

Bitcoin Cüzdanı Nedir ve Nasıl Çalışır

Soru:

Merhaba,

Bir türlü anlayamadığım bir konu var, bitcoin'de sınırsız sayıda cüzdan oluşturulabiliyor. Ve bu cüzdanlar bir dosyada saklanıyor. Dosyaya erişim yoksa bu cüzdan tekrar oluşturulamıyor, yani aynı cüzdandan 2 tane olamıyor.

Herkes cüzdan oluşturabiliyorsa ve bunu p2p ağında doğruluyorsa, bu cüzdanın tekrar oluşturulması nasıl engelleniyor, sonuçta bu cüzdan p2p ağında açık bir şekilde görülebiliyor.


Cevap

Önce sabırsızlar için kısa cevap: Cüzdanların oluşturulması sırasında ağ tarafından doğrulanması gerekmiyor. Hatta aynı cüzdanın oluşturulması da mümkün ama ihtimali o kadar düşük ki neredeyse imkansız. Geçtiğimiz günlerde Android işletim sistemlerinde bulunan güvenlik açığı bunun mümkün olduğunu bize gösterdi.

Şimdi de uzun cevap:

Bitcoin mimarisini oluşturan temel yapı saklı anahtar kriptolama algoritmasıdır. Basit kripto algoritmaları saklanan metni aynı anahtarla şifreler ve şifrelenmiş metni aynı anahtarla geri döndürebilir.

Örneğin şifrelenmiş metin: ABCDEFGHIJ olsun. Anahtar olarak da 123 seçelim. Kripto algoritmamız da her harfi anahtardaki rakam kadar ilerisindeki harfle değiştirmek olsun. Metni ve anahtarı (tekrarlayarak) altalta yazıyoruz. En alta da şifrelenmiş metni yazıyoruz.

Şifrelenecek metin: ABCDEFGHIJ
Anahtar (tekrarlı): 1231231231
Şifrelenmiş metin: BDFEGIHJLK

Şifreli metni çözme algoritmamız da her harfi anahtardaki sayı kadar geri çekme olsun. En üste şifreli metni ortaya anahtarı (tekrarlı) yazıyoruz ve an alta da şifresini çözdüğümüz orjinal metni.

Şifreli metin: BDFEGIHJLK
Anahtar (tekrarlı): 1231231231
Orjinal metin: ABCDEFGHIJ

Bu basit bir kriptolama algoritmasıydı. Saklı anahtarlı kriptolama sistemlerinde ise 1 yerine 2 adet anahtar bulunur. Bunlardan biri metni şifrelemek için kullanılır ve açık anahtar adı verilir. Diğeri de şifreyi çözmek için kullanılır ve saklı anahtar adı verilir. (Aslında her ikisinin de şifreleme ve şifreyi açma amacıyla kullanıldığı durumlar da vardır ama buna ileride değineceğiz)

Saklı ve açık anahtarlar birbirini tamamlar ve her zaman beraber üretilirler. Bir anahtarı bilmek eşi olan anahtarı tahmin etmek için yeterli değildir. Örnek olarak bir saklı-açık anahtar çifti üretmek için kitabımızdan rastgele bir cümle seçiyoruz:

TÜRK ÖĞÜN ÇALIŞ GÜVEN

Bu cümledeki SESLİ harfleri saklı anahtar, sessiz harfleri ise açık anahtar yapalım

Saklı anahtar: ÜÖÜAIÜE
Açık Anahtar: TRKĞNÇLŞGVN

Gördüğünüz gibi bir anahtardan diğerini elde etmek elinizde deyimler sözlüğü yoksa imkansız. Örneğimizdeki anahtar çifti çift anahtarlı şifreleme algoritması için gerekli koşulları sağlamadığı için geçerli değil. Ama geçerli anahtar çiftlerini bulan matematik denklemleri var.

Bitcoin cüzdanı ve Bitcoin adresi kavramlarını tanımlayalım:

Bitcoin adresi yukarıdaki açık anahtara eşdeğer. Ağ içinde herkesin görmesinde bir sakınca yok, hatta gerekli. Birisinden Bitcoin isterken açık anahtarımızı veriyoruz. Bitcoin ağında kullanılabilen adresler 1 rakamı ile başlıyor ve 27-34 arası harf ve rakamdan oluşuyor.

Bitcoin cüzdanı ise bizim bilgisayarımızda duruyor. Cüzdanda ürettiğimiz tüm adreslere yani açık anahtarlara karşılık birer saklı anahtarımız var. Cüzdanımızda bu anahtarları saklıyoruz.

Birisi bizim adresimize Bitcoin gönderdiğinde ne oluyor?

Bitcoin ağında bizim açık anahtarımızın olduğu bir mesaj yayınlanıyor. Bu sırada aslında bizim cüzdanımıza gelen hiçbirşey yok. Ağa bağlı olmamız bile gerekmiyor. Adrese ne kadar Bitcoin geldiğini herkes görebiliyor. Aynı adrese birden fazla kez Bitcoin da gelebiliyor. Güvenlik sorunu oluşturmasaydı aynı adresi herkese verebilirdik ve sürekli yeni adreslerle uğraşmamız gerekmezdi. Yalnız kimden ne kadar geldiğini takip etmemiz zorlaşırdı.

Cüzdanımıza, ya da başka bir deyişle saklı anahtarımıza ancak adresimize gelen Bitcoinları başka bir adrese transfer etmek istediğimizde ihtiyacımız var. Sistemde bizim adresimizin geçtiği kayıtlar açık anahtarımızla şifreli. Şifreyi açabilecek tek anahtar da cüzdanımızda sakladığımız saklı anahtarımız.

İmzalama

Saklı anahtarımızın bir işlevi daha bulunuyor. Bu da imzalama işlevi. Saklı anahtarımızla imzaladığımız bir belgenin bizden çıktığını, daha doğrusu açık anahtarın sahibinden çıktığını ispatlamak çok kolay.

Cüzdanımızdaki Bitcoinu başka bir adrese göndermek için de imzalama fonksiyonunu kullanıyoruz. İşlemi saklı anahtarımızla imzalıyoruz ve Bitcoin ağına salıyoruz.

Peki bu işlemin bizden çıktığını doğrulama işlemini kim yapıyor? Tabii ki emektar Bitcoin madencileri...

bitkoyun.com