DPOS hakkında bilgiler ve çalışma mantığı [Cointurk 10. Projesi]

in #cointurk7 years ago

DQmRR65U9ZYyMTVqtxRV6vu7AXj6GEouURjpEaoeSkHeHM8.png

DPOS (Delegated Proof of Stake) eksik olan sha256 kodlarının olduğu kağıt ve delege edilen kanıt belgesinin analizidir.

Bu yazıda, DPOS'un neden işe yarayıp neden sağlam olduğunu kanıtlayan bir analiz sağlamakta olduğuna bakacağız. Bu açıklamam da, sadece ne olduğu değil aynı zamanda, mutabık kalınan sürecin bir parçası olmayan pek çok yönünden de bahsedeceğim.

Bütün blockchain temelde işlemler ile belirlenen determinist bir devlet makineleridir. Uzlaşı, belirsiz bir işlem sırası üzerinde anlaşma ve geçersiz işlemleri filtreleme sürecine denir. Eşdeğer işlem sıralamasına neden olabilecek birçok farklı fikir birliği algoritmasına sahip ancak DPOS, çoklu blok zincirlerinde yıllarca güvenilir çalışma ile sağlam, güvenli ve verimli olduğunu kanıtladı.

Bütün algoritmalar gibi, blok üreticilerinin çok zarara uğratabilirler. Tüm bloklar deterministik açık kaynaklı makine mantığına göre geçerli olmalıdır.

DPOS Algoritmasının İnceleyelim:

DPOS algoritması iki kısma ayrılmıştır: bir grup blok üreticisinin seçilmesi ve üretim planlaması. Seçim süreci, paydaşların eninde sonunda denetim altına alınmasını sağlar; çünkü paydaşlar, şebekenin düzgün çalışmadığında pay kaybeder. İnsanlar nasıl seçilir, oy birliği ile dakika bazında fikir birliğinin nasıl sağlandığı konusunda çok az etkiye sahiptir. Bu nedenle, bu belge, blok üreticileri seçtikten sonra uzlaşmaya nasıl ulaşıldığına odaklanacaktır.

Bu algoritmayı açıklamaya yardımcı olmak için 3 blok üreticiyi, A, B ve C'yi varsaymak istiyorum. Uzlaşma, tüm vakaları çözmek için 2/3 + 1 gerektirdiğinden, bu basitleştirilmiş model, yapımcının kravat söküğü olarak kabul edildiğini varsayacaktır. Gerçek dünyada 21 veya daha fazla blok üreticisi olacaktır. İşte, genel kural en uzun zincirin kazanmasıdır. Dürüst biri geçerli bir uzun zincir gördüğünde her zaman mevcut çatalından uzun bir zincire geçecektir.

DPOS'un akla gelebilecek ağ koşullarında nasıl çalıştığını örnekle gösterelim. Bu örnekler, DPOS'un niçin sağlam ve kırılması zor olduğunu anlamanıza yardımcı olacaktır.

Normal Operasyon:

Normal operasyonlarda blok üreticileri her 3 saniyede bir blok üretiyorlar. Kimsenin sırrını söylemediğini var sayarsak, bu mümkün olan en uzun zinciri üretir. Bir blok üreticinin, planlandığı zaman diliminden başka herhangi bir zaman aralığında bir blok üretmesi geçersiz sayılır.

DQmUnFg35XqTednrwUiZo7AHX7SHQ7hAUTytA8BLwk64EN7_1680x8400.png

Azınlık Çatalı:

Verilerin 1 / 3'ü zararlı olabilir veya arıza gösterebilir ve bir azınlık çatalı oluşturabilir. Bu durumda, azınlık çatalı her 9 saniyede bir blok üretirken, çoğunluk çatalı her 9 saniyede 2 blok üretir. Bir kez daha dürüst olan çoğunluk 2/3 azınlıktan daha fazla ürün alacaktır.

DQmaXit43FxdSQrn7PshKtJcnTY5SYJb1vSArf26ys34NDF.png

Bağımsız Azınlık İle Çift Üretim:

Azınlık sınırsız sayıda çatal üretmeye çalışabilir, ancak çatalların tamamı çoğunluk zincirinden daha kısadır çünkü azınlık zinciri çoğunluktan daha yavaş büyütmektedir.

DQmXsgRLQhmTVxjte48va1Qe6QePVzXUtmXRS8pjGPzUqGg_1680x8400.png

Bağımsız Bölümünde Çalışanlar:

Ağın parçalanması tamamen mümkündür, bu durumda hiçbir çatal, blok üreticilerinin çoğunluğuna sahip değildir. Bu durumda en uzun zincir en büyük azınlığa düşecektir. Ağ bağlantısı yeniden kurulduğunda küçük azınlıklar doğal olarak en uzun zincire geçer ve açıkça anlaşma sağlanacaktır.

DQmb4UaGGR8nNW5pmtoDE7Z9pvMd1LnKSpdi3utHUWeyfQZ.png

En uzun iki çatalın aynı uzunluğa sahip olduğu 3 çatal olması mümkündür. Bu durumda 3. (küçük çatal) üreticiler ağa tekrar katıldığında kravatları kıracaklar. Tek sayıda üretici var, bu yüzden uzun süredir bir bağ kurmak mümkün değildir. Daha sonra, iki çatalın aynı sayıda üreticiye sahip olmasına rağmen, çatallar farklı uzunlukta patlamalarla büyümek ve bir çatalın diğerini devralmasını sağlayacak şekilde üretim sırasını randomize edecek olan üretici karıştırmayı da ele alacağız.

Bağlı Azınlıktan Çift Üretim:

Bu senaryoya göre azınlık B zaman aralığında iki veya daha fazla alternatif blok üretti. Bir sonraki planlanan imalatçı (C), B. tarafından üretilen alternatiflerden herhangi birini üretmeyi seçebilir. Bu olduğunda, en uzun zincir haline gelecek ve B1'i seçen tüm düğümler çatal taşıyacak. Bir azınlıktaki kötü üreticilerin kaçınılmaz olarak çoğaltmaya çalıştıkları kaç tane alternatif blok olursa olsun, asla bir turdan daha uzun zincirin parçası olmayacaklardır.

DQmXstNcMtg5H6o1a955LZNGwbiCaygQnWzK81yeR8Uirvz_1680x8400.png

Son Tersinir Engelleri:

Ağ parçalanması durumunda, birden fazla çatalın uzun bir süre büyümeye devam etmesi mümkündür. Uzun vadede en uzun zincir kazanacak, ancak gözlemciler, bir blok kesinlikle en hızlı büyüyen zincirin parçası olduğunda kesin bir şekilde bilmek için bir araç gerektiriyor. Bu, blok üreticilerinin 2/3 + 1'i tarafından onay görmek suretiyle belirlenebilir.

Aşağıdaki diyagramda, B bloğu 2/3 + 1 doğrulamasını temsil eden C ve A ile doğrulanmıştır ve bu nedenle üreticilerimizin 2 / 3'ü dürüst olursa diğer zincirlerin artık daha uzun olamayacağını çıkarabiliriz.

DQmWjbpfju5vj1EGBtfLKSGcM4CpHmYppgB9cfev2dFLtyF.png

Bu "kuralın Bitcoin için 6-blok onay kuralına benzer olduğunu unutmayın. Bazı bireyler, iki düğümün farklı son geri döndürülemez bloklarla sonuçlanabileceği bir dizi olayı yapabilir. Bu kenar durum, bir saldırganın iletişim gecikmesinin tamamen kontrol edilmesini ve bu denetimi bir kez değil de iki kez, dakika aralıklarla kullanmasını gerektirir. Eğer böyle olsaydı, en uzun zincirin uzun vadeli kuralı geçerli olur. Böyle bir saldırı olasılığını 0'a yakın ve ekonomik sonuçların o kadar önemsiz olduğuna ve endişe etmeye değmediğine düşünürüz.

Üreticiler Konseyi Eksikliği:

Olası bir şekilde, üreticilerin açık bir yeterlilik oranı olmadığında, azınlığın blok üretmeye devam etmesi mümkündür. Bu bloklarda menfaat sahipleri oylarını değiştiren işlemleri içerebilir. Bu oylar daha sonra yeni bir üretici grubunu seçebilir ve blok üretim katılımını% 100'e geri getirebilir. Bu gerçekleştiğinde, azınlık zinciri, sonunda% 100'den az katılım ile çalışan diğer tüm zincirleri geçecektir.

Bu süreç boyunca tüm gözlemciler, bir zincir% 67 katılım ile ortaya çıkıncaya kadar ağ durumunun değişmediğini bildireceklerdir. Bu koşullar altında işlem yapmayı seçenler, altı onaylamayı kabul etmeyi seçenlere benzer risk alır. Bunu, fikir birliğinin sonunda farklı bir çatal üzerinde yerleşebileceği ihtimalinin biraz olduğu bilgisi ile yaparlar. Uygulamada bu durum, 3 bitkiden daha az bitki teyidi ile blokları kabul etmekten çok daha güvenlidir.

Üreticilerin Çoğunluğunun Yolsuzluğu:

Üreticilerin çoğunluğu bozulduysa, sınırsız sayıda çatal üretebilir ve bunların her biri 2/3 çoğunluk onayıyla ilerlemektedir. Bu durumda son geri çevrilemez blok algoritması en uzun zincir algoritmasına döner. En uzun zincir, kalan dürüst düğümlerin azınlık tarafından kararlaştırılacak olan en büyük çoğunluğun onayladığı zincir olacaktır. Bu tür davranışlar uzun sürmeyecekti, çünkü paydaşlar sonunda bu üreticilerin yerini alacaktı.

DQmZvNhkNbLLmvFQZEDhiXrCkmdEHm4q5tmL5Jo7ngJFWJG_1680x8400.png

Kira Tutarı Olarak İşlemler (TaPoS):

Kullanıcılar bir işlemi imzaladığında, blokçunun durumuyla ilgili belirli bir varsayım altında bunu yapar. Bu varsayım, yeni blokların algılanışlarına dayanır. En uzun zincir üzerinde uzlaşı değişirse, imzalayan kişinin işlemi kabul ettiklerinde sahip olduğu varsayımları geçersiz kılabilir.

TaPoS ile tüm işlemler yeni bir blok karması içerir ve bu blok zincir geçmişinde yoksa geçersiz sayılırlar. Artık bir çatalda bir işlemi imzalayan herkes, işlemi geçersiz bulur ve ana çataya geçemez.

Bu işlemin bir yan etkisi, alternatif zincirler oluşturmaya çalışan uzun mesafeli saldırılara karşı güvenliktir. Bireysel paydaşlar, işlem yaptıkları her seferinde doğrudan blok zincirini onaylarlar. Zamanla tüm bloklar tüm paydaşlar tarafından teyit edilir ve bu, dövülmüş zincirde kopyalanamayan bir şeydir.

Deterministik Üretici Karıştırma:

Tüm örneklerde, blok üreticilerinin round-robin planlamasını gösterdik. Gerçekte, blok üreticileri seti her N blokta karıştırılır, burada N üreticilerin sayısıdır. Bu rastgele oluşturma, blok üreticisi B'nin her zaman blok üreticisi A'yı görmezden gelmemesini ve aynı üreticilerin sayımlarının birden fazla çatalı olduğu durumlarda bağların koptuğunu garantiler.

Sonuç Olarak:

Görevli Proof of Steake, akla gelebilecek her doğal şebeke bozulması altında sağlamdır ve üreticilerin büyük bir azınlığının yolsuzluklarına karşı bile güvenlidir. Bazı rakip algoritmaların aksine, üreticilerin çoğunun başarısız olması durumunda DPOS çalışmaya devam edebilir. Bu süreç boyunca topluluk% 100 katılımı sürdürene kadar başarısız üreticilerin yerini alması için oy kullanabilir. Böyle yüksek ve çeşitli başarısızlık koşulları altında sağlam olan başka bir fikir birliği algoritması olmadığını biliyorum.

Sonuçta, DPOS, blok üreticilerini seçmek ve düğümlerin yüksek kaliteli ve benzersiz bireyler olduklarını doğrulamak için seçilen algoritmalardan önemli bir güvenlik elde eder. Onay oyu kullanma süreci kullanılarak, oylama gücünün% 50'sine sahip birisi bile tek başına bir üretici bile seçemez. DPOS, sağlam ağ bağlantılarıyla dürüst düğümlerin% 100 katılımının nominal durumunun performansını optimize etmek üzere tasarlanmıştır. Bu, DPOS'a işlemlerinizi yalnızca% 1.59 saniyede% 99.9 kesinlik ile doğrulama gücünü verirken, iyileştirmek için önemsiz olan zarif, algılanabilir bir şekilde azaltılıyor.

Kötü şebeke koşullarına sahip dürüst olmayan düğümlerin nominal bir durumu için diğer uzlaşma algoritmaları tasarlanır. Alternatif tasarımların nihai sonucu, daha yavaş performans, daha yüksek gecikme, yüksek iletişim yükü ve tamamen devre dışı kalan düğümlerin% 33'ünde başarısız olan ağlardır.

BitShares'de 3 yıl başarılı bir çalışma ve bir yıl Steem ile her türlü ağ koşulları ve yazılım hatalarını yaşamıştır. DPOS bu ortama başarıyla geçti ve diğer blok zincirlerden daha fazla işlem gerçekleştirirken fikir birliği sağlama becerisini gösterdi.