Blockchain, yaşadığımız dönemin yükselen teknolojilerindendir. Bu nedenle hakkında merak edilen birçok konu vardır. Blockchain hakkında en çok merak edilen konulardan birisi ise blockchain teknolojisinin nasıl çalıştığıdır. Bu yazımızda blockchain teknolojisinin çalışma prensibi hakkında derinlemesine bir inceleme sunmaktayız.
Blockchain Teknolojisi Nedir?
Blockchain, kriptografi kullanılarak belli bir değer biçilen veri veya varlıkların transfer edilmesini ve depolanmasını sağlayan dağıtık veri tabanı sistemidir. Günümüzde çokça kullanılan merkezi veri tabanları gibi değildir. Eski veriler üzerinde değişiklik yapılamaz. Daha detaylı öğrenmek için sitemizde bulunan Blockchain Nedir? başlıklı yazımıza göz atabilirsiniz.
Blockchain Teknolojisi Nasıl Çalışır?
Blokchain teknolojisinin çalışmasını genel örnek olarak verilen Bitcoin blockchaini üzerinden anlatacağız. Bu çalışma modeli bitcoin blokchaini özelinde olmasına rağmen diğer blockchain projeleri de bazı noktaları geliştirerek kendi blockchainlerini oluşturduklarından dolayı iyi bir başlangıç noktası olacaktır.
Temel olarak blockchainlerin çalışma prensibini 3 adımda anlatabiliriz. Bunlar ;
- Kullanıcılar tarafından işlemlerin yapılması,
- İşlemlerin Madenciler Tarafından Onaylanıp Ağa Bildirilmesi,
- İşlemlerin Bloklar Halinde Blockchaine Eklenmesidir.
1- Kullancılar Tarafından İşlemlerin Oluşturulması
Bitcoin blokchaini üzerinde kullanıcılar birbirleri arasında bitcoin transferlerini aracısız bir şekilde yapabilirler fakat bu transferleri kolay bir şekilde yapmak ve değerli varlıklarını depolamak için cüzdan uygulamalarına ihtiyaçları vardır. Kullanılan cüzdan uygulamaları sayesinde kullanıcılar public ve private olmak üzere 2 adet adres elde eder. Public adresler gerçek hayatta kişilerin iban numaraları olarak düşünülebilir. Bu adresler sayesinde kullanıcılar birbirleri arasında değerli varlık alışverişini sağlayabilirler. Private adresler ise mobil bankacılık şifreleri gibi düşünülebilir. Bu adres sayesinde kullanıcılar kişisel cüzdanlarına erişim sağlayabilirler. Public adreslerinin paylaşılmasında hiçbir sorun olmamasına rağmen private adreslerin paylaşılması durumunda kullanıcılar kötü niyetli kişiler tarafından tüm mal varlıklarını kaybedebilirler.
Herhangi bir kripto cüzdanına sahip olan kişiler kendi aralarında bitcoin transferlerini yapabilir haldedir. Bu transferi yaparken göndericinin sadece göndereceği kişinin public adresini ve göndereceği miktarı ilgili alanlara yazması yeterli olacaktır. Gerekli alanların doldurulmasının ardından kullanıcı tarafından onaylanan işlem, arka planda cüzdan uygulaması tarafından blockchain ağına kullanıcı tarafından girilen bilgileri cüzdan uygulaması tarafından arka planda oluşturulan kriptografik bir imza ile birlikte işlem havuzuna gönderilir. Bu kriptografik imza kullanıcının yaptığı işlem ile private anahtarının belirli metotlar ile harmanlanmasından oluşur. Bu sayede sistem ve onaylayıcılar bu işlemin gönderici tarafından yapıldığını anlayarak işlemi onaylamak için işlemlere başlarlar.
2- İşlemlerin Madenciler Tarafından Onaylanıp Ağa Bildirilmesi
1.adımımızda kullanıcılar tarafından işlemler yapıldı ve bu işlemler cüzdanlar aracılığıyla işlem havuzunu gönderilmişti. Bu aşamada ise doğrulayıcılar yada daha yaygın kullanılan tabirle madenciler işlemlerin doğruluğunu 2 adet yöntem ile kontrol ederler.
Bu yöntemlerden birincisi kullanıcının yapmak istediği transferindeki bitcoinlerin daha önceden harcanmış mı yani çifte harcama yapılıyor mu onu kontrol etmektir. Tabi ki bunu normal bir şekilde yapmak sistem için uzun bir zaman kaybına neden olacağından işlemin doğrulanma zamanınını bir hayli arttıracaktır. Bu doğrulama işlemini kısaltmak için “Merkle root” adında bir yöntem kullanılmaktadır. Bu yöntemde her işlemin hashi alınarak sisteme kaydedilir. Sisteme yeni bir işlem geldiğinde o işleminde hashi alınır ve bu hash ile daha önceki hashlerden herhnagi birinin aynı olup olmadığına bakılır. Eğer aynı değilse çifte harcama olmadığına karar verilerek 2. doğrulama yöntemine geçilir.
İkinci yöntemde işlemdeki imzanın doğru olup olmadığına bakılır. Bunun içinde madenciler bir fonksiyon içerisinde göndericinin public adresini, işlemi ve imzayı koyarlar. Eğer girilen bilgilerde bir uyuşmamazlık varsa sonuç olarak ‘true’ değeri döner. Bu değer sayesinde göndericinin gerçek kişi olduğu madenci tarafından kabul edilir ve işlemin zincire eklenmesi için bir sonraki adıma geçmesine izin verilir.
3- İşlemlerin Bloklar Halinde Blockchaine Eklenmesi
Bu aşamada artık işlemler madenciler tarafından blokların içine koyulur. Blok yapısına baktığımızda ise boyut olarak önceden belirlenmiş ve aşağıdaki örnekte olduğu gibi içerisinde aşağıdaki isimlerde bilgiler içermektedir. Bunlar;
- İlgili Bloğun Oluşturulduğuna Dair Zaman Damgası
- Bir Önceki Bloğun Hash Değeri
- Blok İçerisine Eklenen İşlemler
- Bloğa Özel Olan Nonce Değeri
- Bloğun Hash Değeridir
Blok Zaman Damgası
Bloğun ne zaman doğrulandığını gösteren bilgidir. Bu bilgi sayesinde herkes ilgili bloğun ne zaman doğrulandığını görebilir.
Bir Önceki Bloğun Hash Değeri
Bir önceki bloğun hash değerini bir sonraki bloğa ekleyerek başka birinin sonradan gelip o bloğu değiştirmesinin önüne geçilir. Bu sayede blockchainin değiştirilemez bir veritabanı olma özelliği sağlanmış olur.
Blok İçerisine Eklenen İşlemler
İşlem havuzuna gelen işlemler madenciler tarafından en çok transfer ücreti veren işlem öncelikli olmak üzere sırayla bloğa eklenir. Eklenecek işlem sayısı bloğun boyutuna göre değişmektedir. Bitcoin ağında bu boyut 1Mb ’dır.
Bloğa Özel Olan Nonce Değeri
İngilizce açılımı number used only once olan nonce değeri aslında ağ tarafından ilk hangi madencinin bloğu doğruladığını bilmek amacıyla kullanılır. Bu sayı değeri doğrudan bloğun hash değerini etkiler. Bu değer sayesinde madenciler ağ tarafından istenilen hash çıktısına ulaşmaya çalışırlar.
Bloğun Hash Değeri
Bloğu içerisine yazılan bütün bilgilerin özet çıktısı olarak tanımlanabilir. Bunu bulmak için çeşitli algoritmalar kullanılmaktadır. Bitcoin ağında Sha-256 algoritması kullanılır.
Yukarıdaki bilgileri içeren bloğumuz ağın o anki zorluğuna bağlı olarak istenilen hash çıktısına uygun bir çıktı elde etmek için ağa bağlı bütün madenciler tarafından doğrulanmaya çalışılır. Bu işlem sırasında uygun hash değerini sağlayacak nonce değeri için madenciler sürekli denemeler yaparlar. Uygun nonce değerini dolayısıylada uygun hash çıktısına ilk ulaşan cihaz bloğu blockchaine eklemek için ağa bildirir. Ağ tarafından kontrol edilen hash değerinde eğer bir sorun yoksa ilgili blok blockchaine madenci tarafından eklenir. Madencinin bloğu doğrulamasından dolayı blok ödülü ve işlem ücretleri madencinin hesabına geçer.
![blockchain çalışma prensibi](https://digicentralized.com/wp-content/uploads/2022/12/blockchain-calisma-prensipleri-1024x683.png)
Hatırlatma olarak yukarıdaki olay örgüsü Proof of Work (PoW) Mutabakat algoritması için geçerlidir. PoW hakkında daha detaylı bilgi almak için Proof of Work Nedir? başlıklı yazımıza bakabilirsiniz.
Özet
Blockchain teknolojisi üzerinde yıllarca çalışmanın sonucunda ortaya çıkmış bir teknolojidir. Çalışma sistemi olarak kullanıcı tarafından oldukça basit görünmesine rağmen bu sistem arka planda merkle root, kriptografik işlem imzası gibi birçok karmaşık işlemi yaparak çalışmaktadır. Bu gibi birçok karmaşık işlem adımına sahip olduğundan dolayı oldukça güvenlikli ve açık bir yapıya sahip olabilmek
En son gelişmelerden haberdar olmak için Digicentralized Twitter ve Instagram hesaplarını takip edebilirsiniz.