Blockchain’in güvenirliği ve bütünlüğü, çift harcamaların kabul edildiği veya kayıt altına alındığı herhangi bir hileli veri veya işlem şansı olmamasından kaynaklanmaktadır. Blockchain teknolojisinin arkasında yatan güvenilirliğin en önemli parçası ise “Hashing” işlemidir.
Hashing, herhangi bir uzunluktaki bir girdiyi alarak onu bir dizi matematik algoritma ile şifreli bir çıktı haline dönüştürme işlemine verilen isimdir. Örneğin Bitcoin, SHA-256 isimli bir algoritma kullanıyor.
Hashing ile Veri Güvenliğini Sağlama
Hashing sayesinde verilerin güvenliği önemli ölçüde arttırılabilir. Hash’e bakarak verileri çözmeye çalışan bir kişi, şifrelenmiş bilginin uzunluğunu bile çözemeyecektir. Kriptografik bir hash fonksiyonunun kayda değer olması için birkaç önemli özelliğe sahip olması gerekir. Bu özellikler;
Farklı girdiler ile aynı hash değeri elde edilmemeli:
Bu özellik oldukça önemli. Eğer farklı girdiler ile aynı hash değerini elde edebiliyor olsaydık, girdilerin gerçekliğini takip etmek imkansız olurdu.
Aynı girdi her zaman aynı hash değerini üretecektir:
Bu özellik tıpkı bir önceki özelliğe benzer şekilde oldukça önemli.
Girilen herhangi bir girdi için hızlı bir şekilde hash değeri üretilmeli:
Sistem, verimli bir şekilde çalışmalı ve değer vermeli.
Hash değerine bakarak girdiyi belirlemek imkansız olmalı:
Bu özellik verilerin güvenliğinin sağlanması için en önemli özelliklerden bir tanesi.
Girdide oluşan en ufak bir değişiklik bile hash değerini tamamen değiştirmeli:
Bu özellik aynı zamanda oldukça önemli bir güvenlik meselesi. En ufak bir değişiklik ile sadece küçük bir değişim oluşuyorsa, girdinin ne olduğunu çözmek oldukça kolay olacaktır. Fakat hashing algoritması ne kadar iyi ve karmaşık olursa, girdiyi değiştirmenin etkisi de o kadar büyük olacaktır. Böylece en ufak bir değişiklikte bile hash tamamen değişecektir.
Hashing, verilerin hedeflenen alıcı tarafından görülmeden önce kurcalanmadığını belirterek güvence altına alır. Dolayısıyla hassas bilgiler içeren bir dosyayı indirdiyseniz bunu bir hashing algoritması ile çalıştırabilir, bu verilerin hash değerlerini hesaplayabilir ve verileri size gönderen kişi tarafından gösterilenler ile karşılaştırabilirsiniz. Eğer hash değerleri eşleşir ise dosyanın alınmadan önce değiştirilmediğinden emin olabilirsiniz.
Blockchain ve Hashing
Blockchain’i blockchain yapan en önemli unsurlardan bir tanesi hashing işlemidir. Zincirdeki her bir blokta yer alan girdiler aslında her şeyi temsil eder. Bu yüzden bu noktaya kadar her bir işlem, eklenen yeni veriler ile birleştirilir. Dememiz şu ki, çıktılar, bir blok zincirinde meydana gelen önceki tüm işlemlere dayanır ve dolayısıyla onlar ile birlikte şekillenir.
Bahsettiğimiz üzere girdinin herhangi bir kısmındaki en küçük bir değişiklik, çıktıda büyük bir değişikliğe yol açmaktadır. Bu da blockchain teknolojisinin reddedilemez güvencesidir. Önceden bir blok zincirde olan herhangi bir kaydı değiştirmek tüm hash değerlerini değiştirecek ve onları yanlış ve eskimiş hale getirecektir. Blockchain’in şeffaf yapısı göz önüne alındığında bu imkansız bir hale geliyor.
Genesis bloğu olarak bilinen ve blockchain’in ilk bloğu olan bu blok bir araya getirildiğinde ve onaylandığında benzersiz bir hash değeri meydana getirir. Bu hash değeri ve işlenen tüm yeni işlemler, daha sonra zincirdeki bir sonraki satırda kullanılan yepyeni bir hash değeri için girdi olarak kullanılır. Bu da her bloğun bir önceki bloğuna onun hash değeri yoluyla geri dönebilmesi anlıma geliyor. Böylece ağdaki nodelar (düğüm) hash değerlerinin ne olması gerektiği konusunda fikir birliğine vardığı sürece işlemler güvenli bir şekilde eklenebilir.