Solidus'ta Kesinlik Nasıl İşler (HotStuff BFT)
Solidus gezgininin blok listesini açın ve en üstteki bloğa tıklayın; ayrıntı sayfasında Status alanı Finalized okur. Bu, bir teknik belgede iddia edilmiş, tasarıma gömülü bir özellik değil; şu anda, bir yabancı için, gerçek bir blok ayrıntı sayfasında gösterilen bir alandır. Bu sayfa o sözcüğün gerçekte neyi belgelediğini açıklar, çünkü "kesinleşti" belirli ve kontrol edilebilir bir şey ifade eder, yalnızca "yeterince eskidi, muhtemelen sorun yok" değil.
Bunu her şeyden önce açıkça söyleyin, çünkü bu sayfanın geri kalanı doğrulayabileceğiniz bir iddiadır ve doğrulayabileceğiniz bir iddia, kendi aşamasını baştan belirten bir projeden geldiğinde daha değerlidir.
Belirlenimci kesinlik, birikmiş güven değil
Bitcoin gibi iş ispatı zincirleri bir bloğu kazıldığı anda kesinleştirmez; olasılıksal kesinlik sunarlar. Bir blok, üstüne başka bloklar yığıldıkça güvenlileşir, ama ilkesel olarak yeterince uzun rakip bir zincir onu hâlâ yerinden edebilir; "altı onay", ne kadar beklemenin yeterince güvenli sayıldığına dair bir gelenektir, katı bir garanti değil. Solidus'un uzlaşması farklı çalışır: doğrulayıcı komitesinin nitelikli çoğunluğu bir bloğu yeterli tur boyunca sertifikaladıktan sonra o blok kesindir, nokta; başka onay gerekmez, ona iliştirilmiş bir "muhtemelen" yoktur.
O garantinin ardındaki mekanizma bir yeter sayı sertifikaları (QC) zinciridir; komitenin nitelikli çoğunluğunun belirli bir bloğa oy verdiğine dair derli toplu ve toplanmış kanıtlar. Listenin en üstündeki blok kendi QC verisini taşır: bir blok özeti, bir uzlaşma turu ve onu sertifikalayan toplanmış imza. Kesinlik, olaydan sonraki ayrı bir oy değildir. Üstünde yeterli sayıda başka QC oluştuktan sonra bir bloğun ulaştığı duruma verdiğiniz addır. İş ispatından ayrımın tamamı tek cümlede budur: blokların birikmesini beklemek yerine zincir, sertifikaların zincirlenmesini bekler.
HotStuff ve HotStuff-2, doğru atfedilmiş
Bunun ardındaki uzlaşma ailesi HotStuff'tır; 2019'da Maofan Yin, Dahlia Malkhi, Michael Reiter, Guy Golan Gueta ve Ittai Abraham tarafından "HotStuff: BFT Consensus in the Lens of Blockchain" ile tanıtılmıştır. Lider tabanlı, ardışık düzenli tasarımı, doğrulayıcıdan doğrulayıcıya iletişimi komite boyutunda doğrusal tutar; PBFT gibi eski BFT protokollerinin kareli yükü yerine. Meta'nın LibraBFT/DiemBFT'si ve sonrasında Aptos dahil üretim sistemlerinin ardındaki uzlaşma ailesi olmasının sebebi budur. Aynı fikrin sadeleştirilmiş iki aşamalı bir varyantı olan HotStuff-2, 2023'te Dahlia Malkhi ve Kartik Nayak tarafından tarif edilmiştir.
Solidus iki protokolü de tasarlamadı. solidus-consensus, HotStuff ailesinin sıfırdan yazılmış bir Rust uygulamasıdır; Diem'in, Aptos'un ya da başka bir istemcinin kod tabanının çatalı değil.
Hangi sürümün gerçekte çalıştığı konusunda kesinlik önemlidir. Ayrı bir HotStuff-2 (2 zincirli) çekirdeği inşa edildi ve TLA+ ile sınırlı model kontrolünden geçirildi, 963,033 durum incelendi, sıfır güvenlik ihlali bulundu; ama o çalışma yalnızca tek bir Apple M4 makinede yerel geri döngü üzerinden kıyaslandı, açık ağa dağıtılmadı ve coğrafi olarak dağıtık hiçbir ölçümü mevcut değil. Canlı zincir bugün 3 zincirli HotStuff çalıştırıyor; HotStuff-2 test edilmiş mühendislik işidir, henüz çalışan şey değil.
Oy veren komite
En az yanlış okuma payı bırakarak belirtilmeye değer kısım budur. Yirmi bir değil. Yüz değil. Dört, kurum içinde çalıştırılıyor, ki bugün HotStuff kesinliğini canlı gözlemlemeyi mümkün kılan da tam olarak budur ve aynı zamanda bunun neden henüz protokolün düşmanca, bağımsız işletilen ölçekte kanıtı olmadığının sebebidir.
Protokolün hedef tasarımı 21-of-100 bir komitedir; 100'e kadar kayıtlı doğrulayıcıdan oluşan bir havuzdan doğrulanabilir rastgele fonksiyonla seçilir. O sayı, kodun doğru inşa edildiği bir şartnameyi tarif eder: dağıtılmamıştır ve o boyutta VRF ile seçilmiş bir komite hiç çalışmamıştır. Dört ekip işletimli imzayı toplayan bir yeter sayı sertifikası ile yirmi bir bağımsız işletimli imzayı toplayan biri matematiksel olarak aynı şeyi kanıtlar, ama yalnızca birincisi gerçekten oldu. Dördü yirmi bire yuvarlamak ya da şartnameyi canlıymış gibi tarif etmek, bugün çalışanı yanlış aktarırdı; bu sayfa bunun yerine daha küçük ve gerçek sayıyı belirtir.
Kesinlik dayanan bir tarafa ne kazandırır
Bunun bir uzlaşma ders kitabının dışında önem taşımasının sebebi: bir blok kesinleştikten sonra, içine demirlenmiş her şeyin (bir DID kaydı, bir kimlik bilgisi durumu güncellemesi) geri alınmayacağı garanti edilir. Zincir üstü bir iddiayı bir kez kontrol etmeyi, bir zamanlayıcıyla yeniden teyit etmeniz gereken bir şey yerine anlamlı kılan şey budur. Bir DID ya da bir iptal durumu arayan dayanan bir taraf, cevabın muhtemelen değişmeyeceğine güvenmiyordur; "bir kez kontrol edildi" ile "doğru"yu aynı ifade yapan belirli özellik belirlenimci kesinliktir.
Sırada nereye
Bir dürüstlük notu: gezgin arayüzünün blok listesi şu anda, yükseklikleri canlı RPC'yle uyuşmayan tohumlanmış demo verisi gösteriyor (mühendisliğe bildirilmiş, bilinen bir ürün boşluğu), dolayısıyla herhangi bir belirli yüksekliğe demirlenmeyin. /blocks sayfasını açın, en üstte hangi blok duruyorsa onu seçin ve ayrıntı sayfasını açın: Status alanı Finalized okuyacaktır ve Round ile özet alanları, bu sayfa için kurgulanmış değil şu anda var olan bir blok üzerinde, yukarıda tarif edilen aynı QC zinciri makinesidir. Bu sayfanın zaten bildiğinizi varsaydığı dört alan, yani yükseklik, öneren, işlem sayısı ve gaz için, bu sayfanın devraldığı sayfa olan bir Solidus bloğu nasıl okunur sayfasına bakın.

