«

Hash Nedir? Bitcoin SHA-256 Algoritması Nasıl Çalışır?

Bitcoin (BTC) gibi kripto para birimleri başta olmak üzere teknolojinin pek çok alanında hash algoritmalarından faydalanıyor. Bazen şifreleme bazen de veri bütünlüğünün kontrolü amacıyla kullanılan hash yapılarını bu yazımızda mercek altına aldık. Hazırladığımız yazıda hashing algoritması, SHA-256, MD5, özet fonksiyon gibi terimleri açıklayacağız. Bitcoin’de kullanılan hash algoritmasının detaylarını yazımızda bulabileceksiniz.

Hash nedir?

Girilen veriyi, sabit uzunlukta çıktıya dönüştüren matematiksel işleme hash denir. Bu işlemin amaçlarından biri, verinin gizlenmesidir. Söz gelimi, web sitelerine üye olurken yazılan şifreler hash’e dönüştürülerek veri tabanına yazılır. Bu sayede veri tabanını inceleyen kişi kullanıcının şifresini bilemez.

Bir diğer kullanım amacı ise verinin güvenli özetinin oluşturulmasıdır. Girdi verisi ne kadar uzun olursa olsun çıktı daima aynı uzunlukta olacağından, hash kodu özet amaçlı saklanabilir.

Hash algoritmaları oluşturulurken şu dört unsura önem verilir:

  • Girdi özetini hesaplamak kolay olmalı
  • Özet verisinden girdiyi bulmak çok zor olmalı
  • Girdi verisi değişirse özet de değişmeli
  • Farklı girdilerden aynı özetin oluşma ihtimali çok düşük olmalı

MD5 hash algoritması örneği

MD5 hash algoritması örneği. Girdi ne olursa olsun, çıktı daima 32 karakter uzunluğundadır.

Elektronik imza uygulamalarında hash algoritmalarından ve özetleme fonksiyonlarından sıklıkla yararlanılır.

Örnek vermek gerekirse, yüzlerce sayfa uzunluğundaki roman taslağına ait hash verisi, kısa bir satır uzunluğunda olur. Taslak üzerinde değişiklik yapılıp yapılmadığını anlamak için tüm yazıyı kontrol etmek yerine, hash koduna bakmak yeterli olacaktır.

Bitcoin’de kullanılan SHA-256 algoritması nedir?

SHA (Secure Hash Algorithm – Güvenli Hash Algoritması); ABD Ulusal Güvenlik Ajansı (National Security Agency – NSA) tarafından geliştirilen hash algoritmaları serisinin adıdır.

Bu standart 1993 yılında SHA-0 ile kullanılmaya başlanmış, 1995 yılında geliştirilen SHA-1 ile performansı artırılmıştır. Tespit edilen çeşitli güvenlik açıklarının ardından 2004 yılında SHA-2 standardı geliştirilmiştir. SHA-2 standardı; SHA-224, SHA-256, SHA-384 ve SHA-512 gibi alt kümelere sahiptir.

İlginizi çekebilir: Bitcoin nedir? Tarihçesi, özellikleri, artıları ve eksileri

Bitcoin ağında SHA-256 adı verilen hash algoritması kullanılır. SHA-256 standardı; girdi verisi bir harften de ibaret olsa, yüzlerce sayfalık roman uzunluğunda da olsa daima on altılık sayı sisteminde 64 karakterlik çıktı sunar. Çalışan bir örneğini görmek için buradaki linki kullanabilirsiniz.

Blockchain üzerinde SHA-256 algoritmasının kullanımı

Bitcoin ağında; kullanıcılar arasında gerçekleştirilen güncel işlemleri içeren blok bilgisi, blok numarası, “nonce” değeri ve önceki bloka ait hash kodu bir araya getirilerek SHA-256 standardına uygun biçimde hash koduna dönüştürülür.

Örneğin bu yazı hazırlanırken Bitcoin ağında oluşturulan 629.334 numaralı blok içindeki 2.684 transfer işlemine ait hash kodu şu şekildeydi:

“0000000000000000000bfc7df45983354cc12847745459a0e4c834f77ddb4c9b”

Görüldüğü üzere 2 bin 600’den fazla işlem bilgisi, sadece 64 karakterlik özet çıktıya dönüştürülüyor. Böylece blok içinde herhangi bir değişikliğe karşı tüm veriyi incelemek yerine sadece bu özet veri ile kontrol yapmak mümkün oluyor.

İlginizi çekebilir: Blockhain teknolojisi nasıl çalışır? Yeni başlayanlar için rehber

Bitcoin ağındaki bloklar, kendilerinden önceki bloka ait hash kodlarını içerirler. Dolayısıyla blok içindeki verilerde oynama yapıldığında hash kodu da faklılaşacağından geriye dönük değişiklik hemen anlaşılacaktır.

SHA-256 hash algoritması hacklenebilir mi?

Girdi verisinden hash çıktısı üretmek kolay olsa da, hash verisinden girdiyi bulmak matematiksel açıdan imkansıza yakındır.

Çıktı kullanılarak girdi verisi bulunamaz ama “brute force” ismi verilen, sırayla her karakteri tek tek deneme yöntemiyle basit verileri bulmak mümkün.

İnternet üzerinde hash kodlarını çözmek üzere faaliyet gösteren pek çok web sitesi yer alıyor. Bu sitelerde, kullanıcıların sisteme girdikleri veriler ve bunların hash algoritmalarındaki karşılıkları kaydediliyor. Bu şekilde veri tabanında milyonlarca veri birikiyor. Eğer eldeki hash kodu basit bir veriye aitse bunun çözülmesi ihtimal dahilinde.

Google üzerinde yapılacak basit bir arama ile çıkan md5hashing.net web sitesinde verilerin çeşitli algoritmalarla hash koduna dönüştürülmesi sağlanıyor. Eğer “Store Result (Sonucu Arşivle)” seçeneği işaretliyse, yaptığınız arama veri tabanına kaydediliyor. Elde edilen hash kodu herhangi bir kullanıcı tarafından “Decrypt (Şifre çöz)” alanına girilirse, artık sistemde kayıtlı olduğundan sonucu bulunacaktır.

Yukarıda örneğini verdiğimiz, “Bitcoin”e ait SHA-256 formatındaki hash kodunu sisteme girdiğimizde, başka bir kullanıcı bu veriyi daha önce sisteme kaydettiği için karşılığının bulunduğunu görüyoruz.

Kısacası, birkaç karakterden oluşan, kısa verilerin hash kodlarını bahsini ettiğimiz deneme yanılma yöntemleriyle bulmak mümkün. Yani bir web sitesinde üye olurken şifrenizi “123456” şeklinde yaparsanız bunun SHA-256 formatındaki karşılığı şu olacaktır:

“8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92”

Yukarıdaki kodu Google’da arattığınızda bunun “123456” verisine ait olduğunu bulmanız çocuk oyuncağı.

Google 123456 SHA-256 hash arama

Kaynak: Google

Gelgelelim Bitcoin ağında olduğu gibi, içinde binlerce transfer işleminin yer aldığı blok verisinin dönüştürüldüğü hash kodunu geri çevirmek şu anki teknoloji ile imkansızdır. Ancak geleceğin ne getireceğini bilemeyiz.

Bir Cevap Yaz

Ahmet Uraz Hakkında

avatar

Ahmet Uraz

Ahmet Uraz , Ankara Üniversitesi son sınıf öğrencisidir. Uzun süredir kripto sektöründe bulunmaktadır. Haberkoin.com'un daimi editörlerindendir. Tüm soru ve önerileriniz için ahmet@haberkoin.com adresine mail atabilirsiniz.

Bir Cevap Yaz

E-Posta adresiniz paylaşılmayacaktır. Doldurulması zorunlu alanlar işaretlenmiştir *