Aelf Teknik Konuşmalar - Konsensüs ve Standart Yorumlama / Bölüm 1
Blockchain konsensüsü-merkezi olmayan konsensüs
Bir blockchain sistemi çoğunlukla dağıtılmış bir sistemdir, ancak geleneksel olarak dağıtılmış sistemlerden farklıdır. Geleneksel dağıtılmış sistemlerin iki temel önemi vardır:
1. Trafik arttığında, dağıtılmış sistemler dikey veya yatay bölünmeyi takiben belirlenmiş iş senaryolarını desteklemek için birden fazla makine kullanabilir ve böylece sistemin genel kapasitesini artırabilir.
2. Bir işletme kritik olduğunda, tek hata noktalarını ortadan kaldırmak ve devamlı sistem kullanılabilirliğini artırmak çok önemlidir.
Bir blockchain sisteminin iş senaryosu genel bir dağıtılmış sisteminki kadar karmaşık olduğunda yukarıdaki hususlar kesinlikle gereklidir. Ancak blockchain sisteminin değerlendirilmesinin nedeni, genellikle Bizans sorunu olarak adlandırılan kötü amaçlı düğümler durumunda veri tutarlılığı sorununu çözebilmesidir.
Genel olarak, blockchain dünyasında merkezi bir sunucu yoktur. Topluluk üyeleri ve kullanıcılardan oluşan bir P2P ağından oluşur. Ağdaki herhangi bir bireysel düğüme doğrudan güvenilemez ve kötü amaçlı bir düğüm olabileceği düşünülmelidir. Ancak, tamamen dağıtılmış bir sistemde güvene gerek yoktur. Bu aynı zamanda Bizans generaller sorununun merkezi bir liderlik olmadığı varsayımı ile de tutarlıdır. Örneğin, generallerin belirli bir şehre saldırması gerektiğinde, tüm generallerin başka herhangi bir generalin önerdiği saldırı süresi konusunda fikir birliğine varması gerekir. Yani soru şudur ki, generaller tarafından kararlaştırılan saldırı süresi aynı değilse, hatta bazı generaller hain hâle geldiyse, generaller nasıl bir konsensüse ulaşabilir?
Benzer şekilde, blockchain sisteminin P2P ağında tüm düğümler belirli bir işlem üzerinde nasıl bir konsensüse ulaşabilir? Başka bir deyişle, düğümün ilgili veri tabanı bu işleme dayanarak nasıl değiştirilebilir?
Bizans generalleri sorunu ile ilgili 1982 tarihli makalede Leslie Lamport, generaller arasındaki hainler 1/3'ten az olduğunda etkili bir algoritmanın var olduğunu kanıtladı. Hainlerin ne kadar kötü niyetli olursa olsun, sadık generaller her zaman bir anlaşmaya varabilir. Yine de çok fazla hain varsa, tutarlılık garantisi yoktur.
Blok zincir P2P ağında, kötü niyetli düğümlerin sayısının 1/3'ü geçemeyeceğini varsayarsak, aksi takdirde blok zinciri sisteminin istikrarlı ve güvenli bir temel elde edemediğini düşüneceğiz. Buradan en zorlu sorun, kimin verilerinin bir blockchain sistemindeki son fikir birliğine, kötü niyetli düğümlerin sayısının 1/3'ten daha fazla olmamak üzere, ulaşabileceğini seçmektir.
Başka bir bakış açısı: Bir düğüm sağladığı verilerin blok zinciri sistemi boyunca bir fikir birliğine ulaşmasını nasıl sağlayabilir? Blockchain sisteminin geri kalanını sağlanan verileri kabul etmeye ikna etmek için kanıt sağlaması gerekir.
Bu nedenle, bir blockchain sisteminde standart bir konsensüs arayüzünün nasıl tasarlanacağını tartışmaya başlıyoruz.
Arayüz tasarım standardı ve konsensüs (fikir birliği)
Blockchain konsensüs sürecini basitleştirdik:
• A düğümü, P2P ağına yayın yapmak için bir blok hazırlar.
• Bloğu aldıktan sonra P2P ağının diğer düğümleri, bir dizi doğrulama kontrolünden sonra bloğu yerel en uzun zincire koyup koymayacağınıza karar verir.
• Blockchain sistemindeki düğümlerin üçte ikisinden fazlası yerel bir blok yüksekliğine karşılık gelen blok karma değeri ile tutarlıysa, blok zincirinin blok yüksekliği üzerinde bir anlaşmaya varmış olduğu sonucuna varabiliriz.
A düğümünün ve blok zincirinin diğer düğümlerinin tüm konsensüs sürecini tamamlamasına yardımcı olmak için bir hizmet gerekiyorsa, iki tür hizmet mevcut olmalıdır:
• Blockchain dünyasında bir genel/halka açık anahtar kullanmak, A'nın benzersiz kimliğini belirleyebilir. A hiçbir şey bilmiyorsa, A'ya herhangi bir zamanda blok oluşturmaya çalışıp çalışamayacağını ve bir sorgu başlattığında oluşturduğu blokların diğer düğümler tarafından nasıl kabul edilebilir hale getirilebileceğini söylemek gerekir.
• A dışındaki diğer düğümler ağdan bir blok yayını aldığında, tüm açık kaynak düğümler aracılığıyla bir kod tutarlı hizmet uygulayarak bloğun yasal olup olmadığını doğrularlar.
Bir düğüm, bloğun doğrulanması yoluyla bloğun yasal olduğunu biliyorsa, düğümün A tarafından oluşturulan blok üzerinde bir konsensüse ulaştığı söylenir. Tüm düğümlerin doğrulama hizmeti aynı mantığı kullandığından, blockchain ağındaki tüm düğümler bloğun geçerliliğine karşı aynı tutuma sahip olacaktır. Son olarak, daha uzun zincirlerin ortaya çıkması olmadan, bu bloğun bu blockchain P2P ağındaki en uzun zincire eklenmesi konusunda son bir anlaşmaya varılması da öngörülebilir.
Aelf konsensüs genel arayüz standardı
Şimdi, “Arayüz tasarım standardı ve konsensüs” içinde listelenen iki hizmet türüne dayanarak, Aelf konsensüsünün genel arayüzünü tasarlamaya başlıyoruz.
Her şeyden önce, iki tür konsensüsle ilgili hizmetin, diğer bir deyişle blok üretimi ile ilgili talimatları talep eden ve yeni bloğu doğrulayan, salt okunur arayüzler olduğu ve çağrının kendisinin blockchain ağının hesap defteri bilgilerini değiştirmesi gerekmediği açık olmalıdır.
İkincisi, bu arayüzlere aslında Aelf ana zincir kodu denir. Bu nedenle, arayüz tasarımının Aelf ana zincir kodundaki üretim ve doğrulama bloklarının mantığını takip etmesi gerekir. Tabii ki, ana zincir kodunda bile bu arayüzler, konsensüs hizmetlerinde tek tek görünür.
Bir sonraki bölümde iki tür arayüzü tartışacağız.
KAYNAK: https://medium.com/aelfblockchain/a...and-standard-interpretation-pt-1-4cb6d3e5c612