Blok zinciri
Çalışma > Düzen bütünlüğü

İşlem zincirinde ve dijital imzasında bile, tüm işlemlerin düzeninin ne olduğunu açıklamanın bir yolu yoktur. Bu, sistemi aşağıdaki saldırıya karşı savunmasız hale getirir:
Eve, Alice'den aldığı bir geçmiş işlemden faydalanarak Bob'a para gönderebilir. Bunu, kararını verdikleri ürün veya hizmeti ona cevap olarak gönderecek olan Bob'un defterine gönderebilir. Ürünü veya hizmeti aldıktan sonra, o aynı işlemi bir daha Alice'den harcayabilir, bu kez kendi hesabına gönderir. Şimdi bu yeni ödemeyi ağın geri kalanına yayınlamaya başlıyorsa, bu işlemi önce yaptığını iddia ederek, daha önce hangi işlemin gerçekleştiğini ağın geri kalanı için bir yolu yoktur. Şebekenin Eve 'ye ödenmesini kabul etmesi halinde, Eve 'den Bob'a harcanan para, zaten harcanmış bir işleme gönderme yaptığı için geçersiz hale gelir.
Bu tür bir saldırıyı önlemek için, işlemlerin düzenini önlemenin bir yolu olmalı. Blok zincirinin içeriye girdiği yer burasıdır. Blok zincir işlemlerinde, aynı anda olduğu düşünülen bloklar halinde gruplanır. Blokların zinciri daha sonra işlemlerin bir kronolojisi sağlar.
Zincire yeni bir blok eklemek için aşağıdaki problemi çözmek gerekiyor.
Son derece düzensiz bir şekilde iki girdiye dayalı bir sayı hesaplayan bir f fonksiyonu olsun. Ayrıca bir blok b içeriğini kaldırabilecek bir hash fonksiyonu h düşünün. Şimdi öyle bir numara bulun ki
f(n,h(b))<esikdegeri,
eşiğin böyle bir şekilde seçildiği durumlarda, ağın doğru bir sayı bulmak için tipik olarak yaklaşık 10 dakika kadar sürdüğü görülecektir.
Ağdaki bir taraf bir çözüm bulduğunda, önceki bloğun bulunan çözümüyle birlikte zincire eklemek istediği bloğu yayınlar. Ağın geri kalanı bu çözümü doğrular ve bloğu ekler. Zincirdeki çok sayıda dal, ağın bir kısmının izole edilmiş olabileceğinden kaynaklanabilir. Bu durumda tarafların her biri, ağdaki taraflar mevcut en uzun zinciri seçecek ve sadece bu dalda daha fazla çalışacaktır.
Eve tarafından uygulanan hileli taktik şu anda üç farklı şekilde önlenebilir:
Bir bloğun içeriği, yeni işlemlerin yanı sıra önceki bloğun hash değeri ve önceki çözümden oluşur. Bu, bir bloğu değiştirmenin, bundan sonra gelen tüm blokların hash değerini değiştirdiği anlamına gelir.
Ağın geri kalanı tarafından sadece en uzun zincir kabul edilir.
Bir bloğun çözümünü hesaplamak çok zaman ve kaynak tüketir.
Eve'nin, zincirde 6 blok derinlikte duran bir bloğu değiştirmek istediğini varsayalım. İlk madde nedeniyle bir sonraki 5 bloğun yeniden hesaplanması gerekecektir. Ayrıca, ikinci madde nedeniyle, ağın geri kalanıyla, şimdiye kadar üretilen tüm topluluğunkinden daha fazla blok üretene yetişmek zorunda kalacak. Son olarak üçüncü madde nedeniyle bu mümkün değildir.
Blok zinciri, bir blok eklemeyi gereken iş miktarı ile güvence altına alınmıştır.Bir sonraki bloğu eklemek için yarışan çok sayıda katılımcı olduğundan, bir parti uzun bir süre boyunca diğer tüm partileri geride bırakamaz. Bu, zincirde daha derin olan blokların çok güvenli olduğu anlamına gelir.
Bir blok zincirinin etkili olabilmesi için, bir tarafın göreceli olarak çok daha fazla bilgi işlem gücü elde etmesi ve bu zincirin kendisinin üzerindeki etkisinin önüne geçerek, birçok katılımcının olması gerekir.Bu amaçla, insanların çözümleri hesaplamaları ve yeni bloklar eklemeleri için bir teşvik oluşturması gerekir. Bitcoin'de bu, şu anda bir miktar bitcoin ile bir blok ekleyen partiyi ödüllendirerek çözülüyor.
Biri blok zincirine katıldığı zaman, ilk adım tüm defterin bütünlüğünü indirip doğrulamaktır.
Tüm açık anahtarlar kodlanmış mesajla uyuşuyor mu?
Tüm işlemler geçmiş işlemlere referans veriyor mu?
Her blok önceki bloğa bir çözüm sağlıyor mu?
Bu yapıldıktan sonra, yukarıdaki üç kurala uyduğuna emin olmak için sadece her yeni bloğun doğrulanması gerekir.