Kriptoda Hashing Nedir: SHA-256 ve Kriptografik Hash Fonksiyonlarının Açıklaması (2026)

— By Tony Rabbit in Tutorials

Kriptoda Hashing Nedir: SHA-256 ve Kriptografik Hash Fonksiyonlarının Açıklaması (2026)

Kriptoda karma nedir? SHA-256, kriptografik karma işlevleri, çığ etkisi, karma zincirleri ve Bitcoin madenciliğinin nasıl çalıştığına ilişkin eksiksiz kılavuz (2026).

Hashing, tüm kripto endüstrisini bir arada tutan sessiz motordur. Ne zaman bir Bitcoin bloğu çıkarılsa, cüzdanınızla her işlem imzalansa, bir düğüm zincire müdahale edilmediğini doğrulasa, kriptografik karma işlevi işin ağır yükünü üstleniyor. Karma olmadan hiçbir şey olmazdı blockchain, Bitcoin yok, Ethereum yok, merkezi olmayan finans yok. Bütün yığın onsuz çöker.

Hashing her yerde olmasına rağmen kriptoda en yanlış anlaşılan kavramlardan biri olmaya devam ediyor. İnsanlar genellikle bunu şifrelemeyle karıştırır, karmaların tersine çevrilebileceğini varsayar veya SHA-256 matematikten ziyade sihir olarak. Gerçekte, kriptografik karma işlevi çok özel bir matematiksel işlem türüdür: herhangi bir girişi alır ve tersine çevrilmesi, tahmin edilmesi veya kopyalanması fiilen imkansız olan sabit uzunlukta bir çıktı üretir. Bu basit özellik, blockchain'leri değişmez kılan ve Çalışma Kanıtı mümkün.

Bu kılavuzda, hash fonksiyonunun tam olarak ne olduğunu, hash fonksiyonunu kriptografik olarak güvenli kılan altı özelliği, Bitcoin'in neden SHA-256'yı seçtiğini, Ethereum'un Keccak-256'yı nasıl kullandığını, madenciliğin gerçekte nasıl çalıştığını, hash çarpışmalarının neden astronomik olarak olası olmadığını ve kuantum sonrası çağda hash'in geleceğinin nasıl göründüğünü öğreneceksiniz. Sonunda her parayı, her cüzdanı ve her akıllı sözleşmeyi güvenilir kılan matematik katmanını anlayacaksınız.

Visualization of SHA-256 hashing process showing input data being transformed into a fixed-length cryptographic hash output
SHA-256 herhangi bir girişi alır ve 256 bitlik sabit uzunlukta bir karma üretir.

Düz İngilizcede Hash Fonksiyonu Nedir?

Karma işlevi, herhangi bir boyuttaki girdiyi alan, bunu deterministik bir algoritma aracılığıyla çalıştıran ve sabit boyutta bir çıktı üreten matematiksel bir prosedürdür. Bu çıktıya bağlama bağlı olarak karma, özet, sağlama toplamı veya parmak izi adı verilir. Kriptoda genellikle sadece hash deriz. Girdi tek bir harf, bir kitabın tamamı, bir film dosyası veya bir mavi balinanın genomu olabilir. Çıkış her zaman aynı uzunluktadır ve SHA-256 için bu uzunluk 256 bittir, genellikle 64 onaltılık karakter olarak yazılır.

Bir karma fonksiyonunu hayal etmenin en basit yolu, bir kara kutu hayal etmektir. Bir ucundan bir şey düşürüyorsunuz ve diğer ucundan bir dizi harf ve rakam düşüyor. Aynı şeyi tekrar bırakırsanız, her zaman aynı ipi elde edersiniz. Girişin tek bir bitini bile değiştirseniz tamamen farklı bir dize elde edersiniz. Ve kritik olarak, birisi size çıktı dizesini verirse, başlangıçta neyin bırakıldığını anlamanın etkili bir yolu yoktur. İşlev tek yönlüdür. Girdiden çıktıya önemsiz bir şekilde gidebilirsiniz, ancak çıktıdan tekrar girdiye gitmek hesaplama açısından mümkün değildir.

Matematiksel olarak karma işlevi, sonsuz bir giriş alanından (herhangi bir uzunluktaki herhangi bir veri) sonlu bir çıkış alanına (kabaca 256 bitlik bir sayı) kadar deterministik bir haritadır. 10^77 SHA-256 için olası değerler). Girdi uzayı sonsuz ve çıktı uzayı sonlu olduğundan, teorik olarak birden fazla girdinin aynı çıktıyı paylaşması gerekir. Bu paylaşılan çıktılara çarpışmalar denir. İyi bir kriptografik karma işlevi, bu tür çarpışmaları bulmayı, teoride mevcut olsalar bile, neredeyse imkansız hale getirir.

Hashing şifreleme değildir. Bu ayrım neredeyse her yeni başlayanı şaşırtıyor. Şifreleme iki yönlüdür: bir anahtarla şifrelersiniz ve orijinal mesajı kurtarmak için bir anahtarla şifreyi çözersiniz. Karma işlemi tek yönlüdür: Anahtar yoktur, şifre çözme yoktur ve orijinal girdi karmadan kurtarılamaz. Hashing doğrulama, parmak izi alma ve taahhüt içindir. Şifreleme gizlilik ve gizli iletişim içindir. Bir blockchain, şifrelemeden çok daha fazla hash kullanıyor; bu da, kriptonun tamamen gizli kodlarla ilgili olduğunu varsayan birçok yeni gelen kişiyi şaşırtıyor.

Kriptografik Hash Fonksiyonunun 6 Özelliği

Her hash fonksiyonu kripto için uygun değildir. Bir Python sözlüğünü indekslemek için kullanılan karma işlevi, milyar dolarlık bir blok zincirini güvence altına almak için çok zayıf. Bir karma fonksiyonunun kriptografik olarak güvenli sayılması için altı spesifik özelliği karşılaması gerekir. Bu özelliklerden bir tanesi bile bozulsa, ona bağlı olan güvenlik modelinin tamamı istismar edilebilir.

📊
Deterministik

Aynı giriş her zaman aynı çıkışı üretir. Bugün, bir yıl içinde, Mars'ta "merhaba" hash'i kullanın ve her seferinde tam olarak aynı 256 bit değerini elde edersiniz.

Hızlı Hesaplama

Herhangi bir makul girdinin hash'ini hesaplamak ucuz olmalıdır. Modern bir CPU, madencilik ve doğrulama için gerekli olan saniyede milyonlarca SHA-256 karmasını hesaplayabilir.

🔒
Ön Görüntü Direnci

Bir hash çıktısı verildiğinde, bu hash'i üreten herhangi bir girdiyi bulmak hesaplama açısından mümkün değildir. Bu, verileri gizlemek için karma oluşturmayı faydalı kılan tek yönlü özelliktir.

🛡
İkinci Ön Görüntü Direnci

Bir girdi ve onun karması göz önüne alındığında, aynı karmayı üreten farklı bir girdi bulmak mümkün değildir. Bu, sahte bir belgenin aynı parmak iziyle değiştirilmesine karşı koruma sağlar.

💥
Çarpışma Direnci

Aynı hash'i üreten iki farklı girdiyi bulmak mümkün değildir. İkinci ön görüntü direncinden daha güçlüdür çünkü burada saldırgan her iki girişi de serbestçe seçebilir.

🌊
Çığ Etkisi

Girişin tek bir bitini değiştirmek, ortalama olarak çıkış bitlerinin yarısını değiştirir. Ortaya çıkan karma, orijinalle tamamen ilgisiz görünüyor ve bu da her türlü desen tabanlı saldırıyı ortadan kaldırıyor.

Bu altı özellik birlikte çalışır. Görüntü öncesi direnç ve ikinci görüntü öncesi direnç, halihazırda eşleştirmek istedikleri bir hedef karmasına sahip olan saldırganlara karşı koruma sağlar. Çarpışma direnci, yalnızca aynı değere sahip herhangi iki girişe ihtiyaç duyan saldırganlara karşı koruma sağlar. Çığ etkisi, karmaların girdileri hakkındaki yapısal bilgiyi sızdırmamasını sağlar ve deterministik özellik, tüm ağın bir bloğun geçerli olup olmadığı konusunda hemfikir olmasını sağlayan şeydir.

SHA-256 yirmi yılı aşkın süredir bilinen tüm saldırılara karşı dayanıklıdır. Sürekli araştırmalara rağmen SHA-256'nın bu altı özelliğinden herhangi birini kıracak pratik bir yöntem bulunamadı. Bu geçmiş performans, Bitcoin'in hala onu kullanmasının ana sebebidir ve neden Bitcoin madenciliği yapısal olarak güvenli kalır.

Karma İşlem Hattı: Giriş, İşlev, Çıkış

Belirli algoritmalara dalmadan önce, her karma fonksiyonunun izlediği boru hattını resmetmek yardımcı olur. Üç aşama vardır ve ister bir işlemi, ister bir blok başlığını, bir şifreyi, ister bir video dosyasının tamamını karma hale getiriyor olun, bunlar aynıdır.

GİRİŞ
Herhangi Bir Veri
Baytlar, metinler, dosyalar, bloklar
HASH FONKSİYONU
SHA-256
Deterministik algoritma
ÇIKIŞ
Sabit Hash
256 bit / 64 hex karakter
Tek yönlü: giriş -> çıkış önemsizdir, çıkış -> giriş hesaplama açısından mümkün değildir.

Giriş tam anlamıyla herhangi bir şey olabilir. Shakespeare'in tüm eserleri, köpeğinizin JPEG'i, Linux çekirdeğinin ikili dosyası veya sadece "merhaba" kelimesi. Hash fonksiyonu girdinin ne anlama geldiğiyle ilgilenmez. Girişi bir bayt dizisi olarak ele alır ve bağlamdan bağımsız olarak her baytta aynı algoritmayı çalıştırır.

Karma fonksiyonunun kendisi sabit, genel, deterministik bir algoritmadır. SHA-256, 2001 yılından bu yana NIST tarafından tüm ayrıntılarıyla yayınlanmaktadır. Herkes, herhangi bir dilde uygulayabilir. Algoritma, girişi bloklar halinde işler, bunları bir dizi döndürme, ekleme ve bit bazında işlemler yoluyla karıştırır ve son 256 bitlik özeti üretir. Algoritmada sır yoktur. Güvenlik, nasıl çalıştığını saklamaktan değil, tamamen matematiksel özelliklerden gelir.

Giriş boyutu ne olursa olsun çıkış her zaman tam olarak 256 bittir. Bir baytlık giriş 256 bitlik bir karma üretir. Bir gigabaytlık bir giriş 256 bitlik bir karma üretir. Bu sabit boyutlu özellik, hash'i bu kadar kullanışlı kılan şeydir. blockchain sistemler: Kompakt, saklaması kolay bir tanımlayıcıya kadar her şeyin parmak izini alabilirsiniz.

SHA-256: Bitcoin'in Kullandığı Hash İşlevi

SHA-256, Güvenli Hash Algoritması 256 bit anlamına gelir. Amerika Birleşik Devletleri Ulusal Güvenlik Ajansı (NSA) tarafından tasarlanmış ve SHA-2 ailesinin bir parçası olarak 2001 yılında NIST tarafından yayınlanmıştır. SHA-2 ailesi ayrıca SHA-224, SHA-384, SHA-512 ve birkaç çeşidi içerir. SHA-256, ailenin en yaygın kullanılanıdır ve TLS sertifikalarından Linux paket yöneticilerinden git taahhütlerine ve tabii ki Bitcoin'e kadar her şeyde kullanılır.

Satoshi Nakamoto, 2008 yılında Bitcoin için SHA-256'yı seçti. O zamanlar bu zaten üzerinde iyi çalışılmış, olgun ve yaygın olarak güvenilen bir algoritmaydı. SHA-256, çarpışma saldırılarına karşı yaklaşık 128 bitlik bir güvenlik düzeyi sağlayan 256 bitlik bir çıktı üretir. Bu, klasik bilgisayarlarla yapılabilecek herhangi bir saldırıya karşı koruma sağlamak için fazlasıyla yeterli bir güvenliktir ve muhtemelen donanım geliştikçe bile önümüzdeki birkaç on yıl boyunca dayanmaya yetecektir.

Bitcoin içerisinde SHA-256 birçok yerde kullanılmaktadır. Blok başlığına hash işlemi uygulanarak şu sonuç elde edilir: block hash, her bloğun kriptografik tanımlayıcısıdır. İşlem kimlikleri SHA-256 karmalarıdır. Bitcoin adresleri genel anahtarın karma işlemini içerir. Ve Blok başlığındaki merkle root , bloktaki her işlemde SHA-256 kullanılarak hesaplanır. Toplamda, Bitcoin ağında her saniye milyarlarca SHA-256 işlemi gerçekleşiyor.

Bitcoin ayrıca çift SHA-256 adı verilen ve genellikle SHA-256d olarak yazılan özel bir yapıyı kullanır. Bu, girdinin bir kez karma haline getirildiği ve ardından elde edilen karmanın yeniden karma haline getirildiği anlamına gelir. Bunun nedeni kısmen tarihsel, kısmen de savunmaya yöneliktir. Çift karma, SHA-256 gibi tek geçişli Merkle Damgard karmalarını etkileyen bir saldırı sınıfı olan uzunluk uzatma saldırılarına karşı küçük bir koruma sağlar. Uygun yapıya sahip SHA-256 pratikte savunmasız olmasa da Satoshi, kemer ve askı güvenliği olarak çift karmayı ekledi.

"Merhaba" dizesi için örnek bir SHA-256 karma değeri şuna benzer: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824. Bu dize 64 onaltılık karakter uzunluğundadır ve 256 biti kodlar. Görünür bir model olmadığına, girişe dair hiçbir ipucu olmadığına ve okuyabileceğiniz "merhaba" sıkıştırması olmadığına dikkat edin. Çıktı tamamen deterministik olmasına rağmen rastgele görünüyor.

Bitcoin mining rigs computing billions of SHA-256 hashes per second to secure the blockchain network
Bitcoin madencilik donanımı saniyede trilyonlarca SHA-256 karma değerini hesaplar.

Hashing Bitcoin Madenciliğine Nasıl Güç Verir?

Madencilik, yeni Bitcoin bloklarının zincire eklendiği süreçtir. Madenciliğin temelinde tek ve tekrarlayan bir görev vardır: SHA-256 ile hashlendiğinde belirli bir sayısal değerin altında çıktı üreten bir girdi bulmak target. Kısayol yok. Madenciler, geçerli sayılacak kadar düşük bir hash üreten bir girdi bulmayı umarak, saniyede trilyonlarca girdi üzerinden kaba kuvvetle ilerlemek zorundadır.

Karma işlemi uygulanan giriş blok başlığıdır. Bir Bitcoin blok başlığı, önceki blok karmasını, bloktaki tüm işlemlerin merkle kökünü, bir zaman damgasını, mevcut zorluk hedefini ve 32 bitlik bir kodu içeren 80 bayttır. nonce. Nonce dışındaki her şey, belirli bir blok için esasen sabittir. Madencinin görevi, nonce'ı değiştirmeye devam etmek, ortaya çıkan 80 baytlık başlığa hash uygulamak, çıktının hedefi karşılayıp karşılamadığını kontrol etmek ve eğer değilse nonce'ı tekrar değiştirmektir. Tekrarlamak. Sonsuza kadar.

SHA-256 çığ etkisine sahip olduğundan, nonce'ı bir bit değiştirmek tamamen farklı bir karma üretir. Belirli bir nonce'ın geçerli bir karma oluşturup oluşturmadığını bilmenin tek yolu, karma değerini gerçekten hesaplamaktır. İleriye atlayan akıllı bir matematik yoktur. veren şey bu Çalışma Kanıtı güvenliği: sahte madencilik yapamazsınız, bunu yalnızca zor yoldan yapabilirsiniz.

Hedef, madencilik bulmacasının ne kadar zor olduğunu kontrol eder. Bitcoin, ortalama blok süresini on dakikada tutmak için hedefi her 2.016 blokta (yaklaşık iki hafta) ayarlar. Madenciler blokları çok hızlı buluyorsa hedef düşer ve zorluk artar. Çok yavaşlarsa hedef yükselir ve zorluk azalır. difficulty hedeften elde edilen insan dostu bir sayıdır. 2026'da, Bitcoin'in zorluğu yüz trilyonlara ulaşacak ve ağın toplam hashrate'i saniyede 500 exahash'ı aşacak, bu da madencilerin toplu olarak her saniyede 5 ve ardından 20 sıfır hash denediği anlamına geliyor.

Bu sürecin tamamı kılavuzumuzda ayrıntılı olarak anlatılmıştır. kripto madenciliği, ancak can alıcı nokta şudur: karma bulmacadır. Bitcoin, şifreleme anlamında kriptografiyle değil, başında yeterli sayıda sıfır bulunan bir SHA-256 karmasını bulmanın tam hesaplama maliyetiyle güvence altına alınır. Bu maliyet, %51 saldırı sağlıklı bir ağda ekonomik olarak engelleyici.

Bloklar Nasıl Birbirine Bağlanır: Hash Zinciri

Blockchain kelimesi gerçek anlamdadır. Bu bir blok zinciridir ve zincir karmalarla bir arada tutulur. Her blokta adı verilen bir alan bulunur prev_block_hash, önceki bloğun başlığının SHA-256 karmasıdır. Bu tek tasarım seçeneği, blok zincirlere meşhur değişmezliğini kazandırır.

Bir saldırganın 800.000 bloğundaki bir işlemi değiştirmek istediğini varsayalım. İşlemin değiştirilmesi o bloğun merkle kökünü değiştirir. Merkle kökünün değiştirilmesi blok başlığını değiştirir. Blok başlığını değiştirmek blok karmasını değiştirir. Ancak 800.001 bloğu, 800.000 bloğunun orijinal karmasını prev_block_hash alanında saklar. Artık 800.001 bloğu geçersiz çünkü prev_block_hash'ı artık değiştirilen 800.000 bloğunun gerçek karmasıyla eşleşmiyor.

800.001 bloğunu düzeltmek için saldırganın onu yeniden kazması gerekir. Ancak bu, blok karmasını değiştirir, bu da 800.002 numaralı bloğu kırar, 800.003 numaralı bloğu kırar ve bu şekilde zincirin ucuna kadar devam eder. Tarihi yeniden yazmak için, dürüst ağ orijinal zincirin üstünde yeni bloklar kazmaya devam ederken, saldırganın değiştirilen noktadan itibaren her blok için tüm madencilik işlerini yeniden yapması gerekir. Dürüst ağ saldırgandan daha fazla hash oranına sahip olduğu sürece saldırgan asla yetişemez.

Hash zincirinin dehası bu. Birisi onu koruyor diye bir blockchain değişmez değildir. Değiştirilemez çünkü yeniden yazmak, tüm dürüst ağın gerçek zamanlı olarak yaptığından daha fazla SHA-256 çalışmasının yeniden yapılmasını gerektirecektir. Zincir bir bloğu aşarak ne kadar uzun süre büyürse, o bloğu yeniden yazmak o kadar pahalı olur. Bu nedenle Bitcoin işlemleri, yaklaşık bir saatlik birikmiş iş kanıtını temsil eden yaklaşık altı onaydan sonra nihai kabul edilir.

Merkle Ağaçları ve İşlem Hashing'i

Her Bitcoin bloğunun içinde işlemler başlıkta düz bir liste olarak saklanmaz. Bunlar, Merkle ağacı adı verilen ikili bir karma ağacı kullanılarak hesaplanan, merkle kökü adı verilen tek bir karmada özetlenir. Bu, 32 baytlık küçük bir değerin aynı anda binlerce işlemi gerçekleştirmesine olanak tanıyan güzel bir karma uygulamasıdır.

Merkle ağacı, her işlemin hashinglenmesi, ardından bu hashlerin çiftlerinin hashinglenmesi, ardından bu ana hashlerin çiftlerinin hashinglenmesi ve tek bir kök kalana kadar bu şekilde devam edilmesiyle oluşturulur. Bloktaki herhangi bir işlem değişirse merkle kökü değişir. Merkle kökü değişirse blok karması değişir. Yani sadece merkle kökünü blok başlığında saklayarak, bloktaki her bir işlemi kriptografik olarak taahhüt etmiş olursunuz.

Merkle ağaçlarının bir diğer büyük faydası ise etkili ispatlardır. Belirli bir işlemin bir bloğa dahil olduğunu kanıtlamak için tüm işlemleri indirmenize gerek yoktur. Yalnızca işlemin kendisine ve işlemden köke giden yol boyunca küçük bir kardeş karma kümesine ihtiyacınız var. Buna Merkle kanıtı denir ve hafif istemcileri mümkün kılan da budur. Konuyla ilgili özel bir eğitimimiz var Merkle ağaçları Daha derine inmek istiyorsanız, ancak asıl fikir, karma işleminin muazzam bir veri kümesini tek bir parmak izine sıkıştırmanıza olanak tanırken, yine de bu verinin ayrı ayrı parçalarını verimli bir şekilde kanıtlayabilmenizdir.

Ethereum'un Hash Fonksiyonu: Keccak-256 ve SHA-3

Bitcoin SHA-256'yı kullanır. Ethereum, adı verilen farklı bir karma işlevi seçti. Keccak-256. Buradaki adlandırma biraz karışık ve birçok geliştiricinin kafasını karıştırıyor. Keccak, 2012'de NIST SHA-3 yarışmasını kazanan algoritmaydı. Daha sonra NIST, 2015'te SHA-3 olarak standartlaştırmadan önce dolgu şemasında küçük değişiklikler yaptı. Ancak Ethereum, NIST SHA-3'ü tamamlamadan önce orijinal Keccak sürümüne kilitlendi. Yani Ethereum'un Keccak-256'sı SHA3-256'ya benzer ancak aynı değildir ve ikisi aynı girdi için farklı çıktılar üretir.

Ethereum neden SHA-256 yerine Keccak'ı seçti? Ethereum 2015 yılında piyasaya sürüldüğünde Keccak, NIST tarafından önerilen yeni standarttı ve yeni nesil kriptografik hash fonksiyonları olarak kabul ediliyordu. Sünger yapısı adı verilen, SHA-2'ye karşı teorik olarak mümkün olan uzunluk uzatma saldırılarına ve diğer zayıflıklara karşı bağışık olacak şekilde tasarlanmış, temelde farklı bir iç yapı kullanır. SHA-256 pratikte gayet iyi performans gösterse de Ethereum daha yeni tasarıma karar verdi.

Keccak-256 Ethereum genelinde kullanılmaktadır. Ethereum adreslerini genel anahtarlardan hesaplar, işlem karmaları üretir, hesap durumunu saklayan Patricia merkle ağacına güç verir ve Ethereum Sanal Makinesinin içinde, KECCAK256 geliştiricilerin yazarken çağırdığı opcode akıllı sözleşmeler. Solidity'de fonksiyon keccak256() olay konusu hesaplamasından anahtar türetmeyi eşleştirmeye kadar her yerde kullanılır.

Çevrimiçi bir SHA-3 hesaplayıcıyla bir dizenin hashini yaparsanız ve bunu Ethereum'un ürettiğiyle karşılaştırırsanız, farklı sonuçlar elde edersiniz. SHA3-256 değil, Keccak-256 uygulamasını kullandığınızdan emin olun. Bu, yeni Solidity geliştiricileri ve Ethereum entegratörleri için sürekli bir hata kaynağıdır.

Cüzdan Adresleri için Hashing

Kriptoda karma işleminin güvenlik açısından en kritik kullanımlarından biri, cüzdan adreslerinin türetilmesidir. Yeni bir cüzdan oluşturduğunuzda yazılımınız bir özel anahtar, eliptik eğri kriptografisini kullanarak bundan bir genel anahtar türetir ve ardından adresinizi oluşturmak için bu genel anahtarı hashler.

Bitcoin'de adres oluşturma hattı şuna benzer. 65 baytlık genel anahtar, SHA-256 ile karma hale getirilerek 32 baytlık bir ara değer üretilir. Bu değer daha sonra RIPEMD-160 ile tekrar karma hale getirilerek 20 baytlık bir değer üretilir. Bir sürüm baytı eklenir, 4 baytlık bir sağlama toplamı (başka bir çift SHA-256'dan türetilmiş) eklenir ve her şey Base58Check ile başlayan tanıdık dizeye kodlanır. 1, 3, veya Bitcoin alırken kopyalayıp yapıştırdığınız bc1 .

Ethereum'da süreç daha basittir ancak kavramsal olarak aynıdır. 64 baytlık genel anahtar, Keccak-256 ile karma hale getirilerek 32 baytlık bir özet üretilir. Bu özetin son 20 baytı Ethereum adresiniz olur ve ön eki şu şekilde olur: 0x. Yani şöyle bir adres gördüğünüzde 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045, genel anahtarın kesik Keccak-256 karmasına bakıyorsunuz.

Neden doğrudan adres olarak kullanmak yerine genel anahtarı karma işlemine tabi tutalım ki? Üç neden. İlk olarak karma işlemi, adresi 65 bayttan 20 bayta kısaltır; bu da kopyalanması, yapıştırılması ve görüntülenmesi çok daha kolaydır. İkincisi, karma, eliptik eğri kriptografisinde gelecekte bir kusur bulunması durumunda bir koruma katmanı ekler: Birisi genel anahtardan özel bir anahtar türetebilse bile, yine de 20 baytlık bir karmanın arkasındaki genel anahtarı bulması gerekir ki bu da başlı başına zor bir sorundur. Üçüncüsü, karma işlemi, adres formatını temeldeki anahtar şifrelemesinden ayırır ve protokolün, adres uyumluluğunu bozmadan imza şemalarını değiştirmesine olanak tanır.

Çığ Etkisi: Çalışılmış Bir Örnek

Çığ etkisi, girişin tek bir bitinin çevrilmesinin, çıkış bitlerinin kabaca yarısını karıştırması özelliğidir. Bunu somutlaştırmak için hemen hemen aynı olan iki mesaja ve bunların ürettiği SHA-256 karmalarına bakalım. Girişlerin tam olarak bir karakter farklılık gösterdiğine, ancak çıkışların hiçbir görünür deseni paylaşmadığına dikkat edin.

GİRİŞ 1
The quick brown fox jumps over the lazy dog
SHA-256 ÇIKIŞ 1
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
GİRİŞ 2 (bir karakter değiştirildi)
The quick brown fox jumps over the lazy dog.
SHA-256 ÇIKIŞ 2
ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c
Tek bir nokta eklemek yaklaşık 256 bitin 128'ini çevirdi. Çıktılar tamamen ilgisiz görünüyor.

Bu nedenle kısmi karmaları ipucu olarak kullanamazsınız. Birisi size SHA-256 hash'inin ilk 10 karakterini gösterirse, bu size hash'in geri kalanı hakkında aslında sıfır bilgi verir. Her bit bağımsızdır. Çığ etkisi aynı zamanda madencilerin artımlı çalışamamasının da nedenidir: "neredeyse iyi" bir şeyi bulup onu hafifçe ayarlamanın bir yolu yoktur. Her bir nonce ya geçerli ya da geçersizdir ve bunu bilmenin tek yolu tam karmayı hesaplamaktır.

Güvenlik açısından bakıldığında çığ etkisi, hash'i aynı tutarken verilerin sahtesini yapmayı imkansız kılan şeydir. Zinciri kırmadan bir işlemde tek bir dolar tutarını değiştirmek mi istiyorsunuz? Yapamazsın. Yeni işlem çok farklı bir değere sahip olacak, merkle kökü değişecek, blok hash'i değişecek ve ondan sonraki tüm zincir geçersiz hale gelecektir.

Hash Çarpışmaları ve Neden Etkin Olarak İmkansızlar

Karma çarpışma, iki farklı girişin aynı karma çıktıyı üretmesidir. Çünkü SHA-256 sonsuz bir giriş alanını sonlu bir çıkış alanına eşler. 2^256 Olası değerler, çarpışmaların matematiksel olarak mevcut olması gerekir. Sorun bunların var olup olmadığı değil, herhangi birinin bulup bulamayacağıdır.

Numara 2^256 o kadar büyüktür ki sezgilere meydan okur. kabaca 1.16 x 10^77. Gözlemlenebilir evren etrafında içerir 10^80 atomlar. Tahmini bir miktar var 10^24 evrendeki yıldızlar. Yani 256 bitlik bir karma alanı, gözlemlenebilir evrendeki her atomun önemsiz olmayan bir kesiriyle karşılaştırılabilir.

Doğum günü paradoksu sayesinde, N bitlik çıktıya sahip bir karma fonksiyonunda rastgele bir çarpışmayı bulmak yaklaşık 10 dakika sürer. 2^(N/2) ortalama işlemler. SHA-256 için bu şu anlama gelir: 2^128 işlemleri. Şu anda saniyede yaklaşık 5 exahash yapan Dünya üzerindeki her Bitcoin madencisi, madencilik yerine kendilerini bir SHA-256 çarpışması bulmaya adasa bile, bir tane bulmak evrenin şu anki yaşının milyarlarca katı zaman alacaktır.

Daha dramatik bir şekilde ifade edersek: Yaklaşık beş milyar yıl sonra Güneş'in yakıtı bitecek ve bir kırmızı deve dönüşecek. Evrenin kendisi de 10 üzeri 100 yıl içinde ısı ölümü yaşayabilir. Bu olayların her ikisi de, herhangi birinin mevcut teknolojiyle SHA-256'yı kaba kuvvetle çarpmasından çok önce gerçekleşecek. Kriptografların bir özelliğin "hesaplama açısından olanaksız" olduğunu söylerken kastettiği şey budur. Kesin matematiksel anlamda imkansız değil, sadece hayal edebileceğimiz herhangi bir fiziksel zaman ölçeğinde imkansız.

SHA-256'nın öncüsü olan SHA-1, 2017 yılında Google'ın SHAttered projesinin yıllar süren araştırma ve büyük bilgi işlem yatırımından sonra ilk pratik SHA-1 çarpışmasını üretmesiyle çarpışma saldırılarına maruz kaldı. SHA-256'nın çok daha büyük bir güvenlik marjı vardır ve aynı saldırı hattına karşı savunmasız olduğuna inanılmamaktadır. Temel bir matematiksel atılım ortaya çıkmadığı sürece SHA-256 onlarca yıl boyunca güvenli kalmalıdır.

Comparison of different cryptographic hash functions used in blockchain ecosystems including SHA-256 Keccak-256 and Blake3
Farklı blok zincirleri, her biri değiş tokuş içeren farklı karma işlevleri seçer.

SHA-256 vs Keccak-256 vs Blake3 vs RIPEMD-160

SHA-256, kriptoda kullanılan tek kriptografik karma işlevi değildir. Farklı blok zincirleri ve protokoller hıza, güvenlik marjlarına, donanım uyumluluğuna ve tasarım felsefesine göre farklı işlevler seçer. İşte kripto kullanıcıları için en alakalı dört tanesinin yan yana karşılaştırması.

BITCOIN
SHA-256
Çıkış: 256 bit
Ailesi: SHA-2 (Merkle-Damgard)
Yıl: 2001 (NIST)

Blok karma, madencilik, adreslerde kullanılır (RIPEMD-160 ile). Kriptoda en çok test edilmiş hash. Bitcoin madenciliği ASIC'leri SHA-256'ya özgüdür.

ETHEREUM
Keccak-256
Çıkış: 256 bit
Ailesi: Keccak (sünger)
Yıl: 2012 (SHA-3'ü kazandı)

Adresler, tx karmaları, EVM işlem kodu için kullanılır. NIST öncesi ince ayar sürümü. SHA3-256'dan farklıdır. Boy uzatma saldırılarına karşı dayanıklıdır.

MODERN PROTOKOLLER
Blake3
Çıkış: değişken (256+ bit)
Ailesi: Blake (Merkle ağacı)
Yıl: 2020

Son derece hızlı, paralelleştirilebilir. Bazı L2'ler, ZK toplamaları ve modern protokoller tarafından kullanılır. Yazılımda genellikle SHA-256'dan 5-10 kat daha hızlıdır.

BITCOIN ADRESLERİ
RIPEMD-160
Çıkış: 160 bit
Ailesi: RIPEMD
Yıl: 1996

Bitcoin genel anahtar karmalarını 256 bit'ten 160 bit'e düşürmek için kullanılır. Daha küçük, daha eski ama SHA-256 ile eşleştirildiğinde yine de güvenli kabul ediliyor.

Diğer dikkat çekenler arasında Litecoin ve Dogecoin tarafından SHA-256'ya göre hafızanın daha dayanıklı olması için kullanılan Scrypt yer alıyor. Zcash tarafından kullanılan Equihash da hafıza açısından zorlayıcıdır. Cardano, Blake3'ün öncülü olan Blake2b'yi kullanıyor. Monero, CPU dostu ve ASIC'e dayanıklı olacak şekilde tasarlanmış RandomX'i kullanıyor. Tasarım seçimi neredeyse her zaman hız, güvenlik ve donanım adaleti arasında bir dengeyi içerir.

Hashing için Diğer Kripto Kullanım Durumları

Hashing sadece madencilik ve adresler için değildir. Kripto yığını boyunca düzinelerce ince ve önemli şekilde kullanılır. Bir kez aramaya başladığınızda, her yerde karmalar bulursunuz.

Hashed Zaman Kilitli Sözleşmeler (HTLC'ler): Lightning Network'e ve atomik takaslara güç veren mekanizma, bir hash'in ön görüntüsünü ortaya çıkarmaya dayanıyor. Alice fonları bir hash ile kilitler, Bob ise yalnızca ön görüntüyü açıklayarak bunları talep edebilir. Bu, iki tarafın birbirlerine güvenmeden zincirler arasında atomik olarak varlık alışverişi yapmasına olanak tanır.

Merkle Kanıtları: Hafif cüzdanlar, toplamalar ve zincirler arası köprülerin tümü, bir işlemin bloğun tamamını indirmeden bir bloğa dahil edildiğini doğrulamak için Merkle kanıtlarını kullanır. Doğrulayıcının yalnızca işleme, birkaç kardeş karma değerine ve merkle köküne ihtiyacı vardır. Kanıt küçüktür, doğrulanması hızlıdır ve kriptografik olarak sağlamdır.

Şifre Taahhütleri: Bir protokolün bir değeri açıklamadan taahhüt etmesi gerektiğinde, karma araç kullanılır. Alice yayınlıyor sha256(password) zincirde ve daha sonra şifreyi açıklayarak bildiğini kanıtlıyor. Bu, NFT darphanelerinde, zincir üstü oyunlarda ve merkezi olmayan rastgelelik işaretçilerinde kullanılan taahhüt-açıklama şemalarının temelidir.

İçerik Adresleme: IPFS, içeriği adreslemek için karmaları kullanır. IPFS'deki bir dosyanın URL'si tam anlamıyla o dosyanın karmasıdır. İçerik değişirse adres değişir. Bu, aldığınız şeyin orijinal olarak yayınlanmış olduğunu ve sessizce tahrifat olasılığının bulunmadığını garanti eder.

Dijital İmzalar: Bir işlemi imzaladığınızda doğrudan işlemin tamamını imzalamış olmazsınız. İşlemin karmasını imzalarsınız. Bu daha verimlidir ve imza şemalarına yönelik belirli matematiksel saldırıları önler. Her blockchaindeki her imza, aslında bir karmanın imzasıdır.

Deterministik Cüzdanlar: Tek bir kaynak ifadeden birden fazla adres türetmeye yönelik BIP32 standardı, karma tabanlı bir mesaj kimlik doğrulama kodu olan HMAC-SHA512'ye dayanır. Hiyerarşik deterministik cüzdan ekosisteminin tamamı yinelenen karma işlemine dayanır.

Sıfır Bilgi Kanıtları: Plonk ve Stark gibi modern ZK sistemleri, Fiat-Shamir dönüşümlerinde karma işlevlerini rastgele kahinler olarak kullanır. Hashing, etkileşimli kanıt sistemlerini etkileşimli olmayan sistemlere dönüştürür; bu da zincir üstü ZK kanıtlarını pratik hale getirir.

Limitler ve Hashing'in Geleceği

SHA-256 yirmi yılı aşkın bir süredir güçlü bir performans sergiliyor ve hiçbir kırılma belirtisi göstermiyor. Ancak kriptografi asla yerinde durmaz. Kriptoda karma işleminin geleceğini üç ana gelişme şekillendiriyor.

İlki kuantum sonrası sorudur. Grover'ın algoritmasını çalıştıran yeterince büyük bir kuantum bilgisayar, N-bitlik bir karmanın kaba kuvvet aramasını kabaca hızlandırabilir 2^(N/2) işlemleri. SHA-256 için bu, çarpışmalara karşı güvenlik seviyesini 128 bitten 128 bit'e ve görüntü öncesi saldırılara karşı 256 bitten 128 bit'e düşürür. 128 bitlik güvenlik hala çok güçlü kabul ediliyor, bu nedenle SHA-256, çok daha savunmasız olan eliptik eğri imzalarının aksine, öngörülebilir gelecekte kuantum rakiplerine karşı güvenli olmaya devam edecek.

Kripto için en büyük endişe hash fonksiyonları değil imza şemalarıdır. Hem Bitcoin hem de Ethereum'un dayandığı ECDSA ve Schnorr imzaları, Shor'un algoritması yoluyla kuantum saldırılarına karşı savunmasızdır. Pek çok protokol artık kuantum sonrası gelecek için kafes tabanlı ve karma tabanlı imzaları araştırıyor. SPHINCS+ gibi hash tabanlı imzalar özellikle ilgi çekicidir çünkü bunlar yalnızca temeldeki hash fonksiyonunun güvenliğine dayanır ve halihazırda kriptonun çoğunu güvence altına alan aynı ilkelden yararlanır.

İkinci gelişme ise daha yeni, daha hızlı hash fonksiyonlarının yükselişidir. Özellikle Blake3 son derece hızlıdır, paralelleştirilebilir ve modern çok çekirdekli donanımlara çok uygundur. Bazı yeni zincirler, ZK toplamaları ve veri kullanılabilirliği katmanları, performans nedenleriyle SHA-256 yerine Blake3'ü benimsemiştir. SHA-256, Bitcoin uyumluluğu ve ASIC dostu madencilik için baskın olmaya devam edecek ancak diğer katmanlar çeşitleniyor.

Üçüncü gelişme, karma işleminin sıfır bilgi kriptografisi ile daha derin entegrasyonudur. Poseidon ve Rescue gibi ZK dostu karma işlevleri, ZK kanıt sistemleri tarafından kullanılan aritmetik devrelerde verimli olacak şekilde özel olarak tasarlanmıştır. Ham yazılımda SHA-256'dan daha yavaştırlar ancak sıfır bilgiyle kanıtlamak çok daha hızlıdır. ZK toplamaları ve ZK uygulamaları büyüdükçe, daha fazla zincirin SHA-256 ve Keccak-256'nın yanı sıra ZK dostu karmaları benimsemesini bekliyoruz.

Sıkça Sorulan Sorular

SHA-256 2026'da hala güvenli mi?

Evet. Dünya çapındaki kriptograflar tarafından yirmi yılı aşkın süredir yapılan yoğun incelemelere rağmen, SHA-256'ya karşı pratik bir saldırı bulunamadı. En iyi bilinen çarpışma saldırıları, yaklaşık 2^128 işlem gerektirir; bu, herhangi bir klasik veya yakın vadeli kuantum bilgisayarın başarabileceğinin çok ötesindedir. SHA-256'nın en azından önümüzdeki birkaç on yıl boyunca güvenli olduğu düşünülüyor.

Karma ve şifreleme arasındaki fark nedir?

Hashing tek yönlüdür ve sabit uzunlukta bir çıktı üretir. Orijinal girdiyi karmadan kurtarmanın hiçbir anahtarı veya yolu yoktur. Şifreleme iki yönlüdür: Bir mesajı bir anahtarla şifrelersiniz ve daha sonra orijinali kurtarmak için bir anahtarla (veya ilgili bir anahtarla) şifresini çözersiniz. Karma, parmak izi alma ve doğrulama için kullanılır. Şifreleme gizlilik ve gizli iletişim için kullanılır.

Can a hash be reversed?

SHA-256 gibi bir şifreleme karma işlevi için değildir. Görüntü öncesi direnç özelliği, bir hash çıktısı verildiğinde onu üreten bir girdiyi bulmanın etkili bir yolunun olmadığı anlamına gelir. Tek genel yöntem, SHA-256 için ortalama olarak yaklaşık 2^256 işlem gerektiren kaba kuvvettir. Bu, herhangi bir klasik bilgisayar için hesaplama açısından mümkün değildir.

Why is SHA-256 used in Bitcoin?

Satoshi Nakamoto 2008 yılında Bitcoin'i tasarladığında, SHA-256 zaten NIST tarafından yayınlanan olgun ve iyi çalışılmış bir standarttı. Bilinen hiçbir zayıflığı olmayan güçlü bir 256 bitlik çıktı sağladı, yazılımda uygulanması verimliydi ve daha sonra ASIC donanımında uygulanması çok verimli olacaktı. SHA-256, kendisine yapılan her saldırıya karşı direnmeye devam ederek Satoshi'nin seçimini doğruladı.

What is a hash collision?

İki farklı giriş aynı hash çıktısını ürettiğinde karma çarpışması meydana gelir. Hash fonksiyonları sonsuz bir giriş alanını sonlu bir çıkış alanına eşlediğinden, çarpışmaların matematiksel olarak mevcut olması gerekir. SHA-256 için bir çarpışma bulmanın ortalama olarak yaklaşık 2^128 işlem gerektireceği tahmin edilmektedir ve bu şu anda hesaplama açısından olanaksız olarak kabul edilmektedir. MD5 ve SHA-1 gibi daha eski hash fonksiyonlarının pratik çarpışmaları görülmüştür, bu nedenle artık güvenlik amacıyla kullanılmamaktadırlar.

Is Keccak-256 the same as SHA-3?

Hayır, çok yakından ilişkili olmalarına rağmen. Keccak, 2012'de NIST SHA-3 yarışmasını kazandı, ancak NIST, 2015'te SHA-3'ü tamamlamadan önce dolgu şemasında biraz değişiklik yaptı. Ethereum, değişiklikten önce orijinal Keccak sürümüne kilitlendi, bu nedenle Ethereum'un Keccak-256'sı, aynı giriş için SHA3-256'dan farklı çıktılar üretiyor. Bu, Ethereum geliştiricileri için yaygın bir hata kaynağıdır.

Are hashes random?

Hayır, karmalar tamamen deterministiktir. The same input always produces the same output. Ancak çıktı, görünür bir desene sahip olmaması anlamında rastgele görünüyor ve girdiyi biraz değiştirmek bile görünüşte ilgisiz bir çıktı üretiyor (çığ etkisi). Bu sözde rastgelelik, karmaları pek çok kriptografik uygulama için yararlı kılan şeydir.

Sonuç

Hashing, tüm kripto endüstrisini mümkün kılan sessiz, temel ilkeldir. Her işlem, her blok, her adres, her imza, her Merkle kanıtı, işini yapan bir kriptografik karma fonksiyonuna dayanır. SHA-256 secures Bitcoin. Keccak-256 secures Ethereum. Blake3, RIPEMD-160, Poseidon ve diğerleri ekosistemde uzmanlaşmış roller üstleniyor. Kriptografik hash fonksiyonunun altı özelliği (determinizm, hız, ön görüntü direnci, ikinci ön görüntü direnci, çarpışma direnci ve çığ etkisi), blok zincirlere değişmezliğini veren, madenciliği maliyetli kılan ve cüzdan adreslerini paylaşılması güvenli kılan şeydir.

Kripto kullanıcıları için iyi haber şu ki, yığının bu katmanı ezici bir çoğunlukla savaşta test edilmiş durumda. SHA-256 yirmi yılı aşkın bir süredir saldırılara karşı dayanıklıdır ve hala güvenlik marjları o kadar büyüktür ki, onu kırmak güneş sistemimizde mevcut olandan daha fazla enerji gerektirecektir. Endüstri kuantum sonrası kriptografiye, ZK dostu kanıtlara ve yeni yüksek performanslı tasarımlara doğru geliştikçe, karma da uyum sağlamaya devam edecek. Ancak temel anlayış aynı kalıyor: Herhangi bir verinin küçük, deterministik, tek yönlü parmak izi, dağıtılmış güven için şimdiye kadar icat edilen en güçlü şifreleme aracıdır.

Bir dahaki sefere ile başlayan uzun bir altıgen dizisi gördüğünüzde 0x Bir blockchain kaşifinde bunun tam olarak ne olduğunu ve neden önemli olduğunu bileceksiniz. A 256-bit hash is not just a number. Arkasındaki verilere dokunulmadığı, zincirin yeniden yazılmadığı ve kullandığınız güvenilmez sistemin tam da iddia ettiği şeyi yaptığının matematiksel vaadi.