Bitcoin Nasıl Çalışır

2008 yılında günümüzde hala kim olduğu bilinmeyen Satoshi Nagamoto bir paper yayınlıyor. Bu paperda Satoshi, bankalara ihtiyaç duyulmadan merkeziyetsiz  para transferi yapılması için bir platform oluşturuyor. 2009 yılında hayata geçen Bitcoin nasıl çalışıyor?

Bankaların bizlerin için uyguladığı en önemli rol, bizler para transferi yaptığımız zaman, biliriz ki bu transferi yapılan para, belirttiğimiz hesaba gönderilecektir. Ama  Bitcoin’de  güvenmenize gerek olmaması lazım. Buna “Trustless” deniyor”. Yani biz bir transaction gönderdiğimiz zaman kimseye güvenmemiz lazım. Eğer matematiksel olarak bu transaction’ın imzalandığını ve karşı tarafa geçtiğini  ispatlayabiliyorsak, parayı gönderdiğimiz  platforma güvenmek zorunda değiliz.  Sistem şöyle çalışıyor. Örneğin  Bitcoin’in kodlarının bulunduğu github.com üzerinden indirip  wallet’ı çalıştırdığınız zaman birer “Node” haline geliyorsunuz (Node=bir iletişim ağının, üzerinde ki her bir nokta).Node şunu yapıyor. Network’e giriş yaptıkdan sonra  kendisine PEER denilen eşler arıyor. Kendisi ile iletişim kuran eşlere bağlanıyor. Bu Nodeler aynı zamanda başka Nodeler ile de bağlantı kuruyor.

Node1

Diyelim ki A kişisinden B kişisine  bir para gönderelim. Yani transaction oluşturuyoruz (kısaca tx). Node bağlı olduğu PEER larına transaction’ı bildiriyor ve bu nodelerdede bunun kopyası oluşuyor. İşlem henüz gerçekleşmiyor. Biz bunu yapacağımızın duyurusunu yapıyoruz.

Node2

Miner’lar transaction hash bulmaya çalışırlar. Hash fonksiyonları aldıkları girdinin boyutundan bağımsız olarak belirli (örneğin 20 bayt) uzunluğa sahip bir çıktı üretirler. Üretilen çıktı verilen girdiye özeldir. Aynı girdi ile sürekli aynı çıktı oluşur ve iki farklı girdinin çıktısı ile birbiriyle aynı olamaz. Kriptografik Hash fonksiyonunun çıktısı “message digest”, “hash”, “checksum” ve “digital fingerprint” olarak adlandırılabilir. Bir hash fonksiyonun  en basit anlamada aşağıdaki gibidir.
f(x)=y   (her x değeri için y değeri üretilir)f(a)≠y    (eğer A değerini  verirsek y yi elde edemeyiz. Y’yi elde etmenin tek sağlayan şey, ona doğru x’I vermek)

Yani  f(5)=4 elde ediyorsak  f(6)=7 elde etmeliyiz. Eğer f(6)=4 değerini elde ediyorsak o zaman bu doğru bir hash fonksiyonu değildir. Diyelimki bizim elimizde Account mevcut. Account’un adresi 1AqBcFD6CC olsun. Bir de Account hesabını kullanmak istiyorsak bir de Private key’e ihtiyaç duyarız. Eğer bitcoin yatırım yapıyorsanız herhangi bir borsada, buradaki Borsa sizin adınıza bu Private keyi kendileri tutuyor. Avrupa’da bu private keyi tutuyorsanız banka statüsündesiniz. Yani banka lisansı almanız gerekir.

Node3

Yukarıda Tx isimli bir transaction oluşturuyoruz. Bunun içinde A’dan B’ye 5 BTC transferi yapıyoruz. Bu transaction  f(p,t)   isimli fonksiyona giriyor (p=private key, t=transaction). Bunun sonucunda bize “imza” (signature)  oluşturuyor. Bu imzanın doğruluğunu ispatlamak için  transition,imza ve  account  kullanılıyor. Yani  f(t,s,a) fonksiyonu.  Böylece bu işlemin benden çıkıp çıkmadığını garantisini  private key ile veririz. İmzalar tek yönlü çalışır.
Eğer Private keyimizi bir başkası ile paylaşırsak adeta o paylaştığımız kişiye kasamızın şifresini veriyoruz. Bundan dolayı Private key’inizi kimse ile paylaşmayın.

Leave a Reply

Site Footer