Tento článek představí technickou implementaci rychlé a silné konzistence v síti DFINITY. Klíčová slova jsou: prahová skupina, prahové relé, pravděpodobnostní konsensus slotu pro kartu a prahové relé.

Úvod do pozadí

DFINITY využívá mechanismus konsenzu PoS. Účast v síti vyžaduje určitou výši vkladu (tj. tokeny DFINITY) jako vklad. Všechny uzly jsou si rovny a jediný způsob, jak zvýšit návratnost, je přidat do sítě více uzlů. Je třeba zdůraznit, že vklady pro všechny uzly DFINITY jsou stejné a za placení více vkladů nebudou žádné další výhody.

Část výhod PoS spočívá v tom, že platforma zná všechny uzly, takže platforma může volat uzly k provedení určitých funkcí a očekávat, že tyto uzly budou online. Pokud je volaný uzel offline, může uzel ztratit část vkladu.

Protože víme, kdo se na síti podílí, a za předpokladu, že téměř všechny uzly jsou online, můžeme náhodně přidělovat úkoly uzlům a být si relativně jisti, že tyto úkoly budou dokončeny. To je také základ DFINITY.

prahová skupina

Výbor

Threshold group je velmi důležitým konceptem v celém procesu generování konsensu DFINITY. Prahové skupiny nám umožňují vyhnout se situaci, kdy máme pouze jednoho rozhodovatele, a jsou jádrem DFINITY. V síti je kdykoli aktivní skupina prahových skupin. Každá prahová skupina je náhodně vzorkována ze všech uzlů připojených k síti a uzel může být zahrnut do více prahových skupin současně.

Všechny uzly prahové skupiny spolupracují na vytvoření náhodnosti v každém kole je vybrána nová prahová skupina ze skupiny prahových skupin.

Prahová skupina je předem náhodně vybrána a vložena do skupiny. Jak je znázorněno na obrázku níže, během časového období 1 je vybrána prahová skupina pro časové období 2. Na konci časového období 1 se prahová skupina tohoto časového období rozpustí a prahová skupina časového období 2 začne fungovat. Stejný proces se opakuje do nekonečna.

prahové relé

Prahové relé

Náhodnost DFINITY je generována náhodnou funkcí ověřitelnou prahovým relé. Představte si, že hrajete poker – musíte být schopni ověřit, že dealer nemůže předvídat nebo manipulovat s kartami, které vyjdou z balíčku. To je důvod, proč mícháte na veřejnosti. Shuffling je ověřitelná náhodná funkce pro síť nedůvěryhodných uzlů – hráčů pokeru.

K vytvoření prahových relé používáme prahové šifrování. Nejprve se však podívejme na šifrování veřejného klíče. Představte si, že máte dva klíče od dveří, jeden na zamknutí dveří a druhý na otevření dveří. Klíč od svých dveří můžete dát komukoli, koho zajímá, jestli někdo jiný může zamknout vaše dveře? Důležité je, že dveře můžete otevřít pouze vy.

Digitální podpisy v kryptografii s veřejným klíčem jsou v zásadě podobné, ale abstraktnější. Máte dva klíče, jeden může podepsat kus dat a druhý lze použít k ověření podpisu. Je dobré, když ostatní mohou ověřit váš podpis na kusu dat, za předpokladu, že jste jediný, kdo může podpis vytvořit. Odtud pochází „kryptografie s veřejným klíčem a soukromým klíčem“. Podpisový klíč musí být soukromý.

Prahové šifrování je v zásadě stejný princip, až na jeden rozdíl: u prahového šifrování se soukromý klíč neboli podpisový klíč rozdělí na více sdílených složek (sdílení) a každé sdílení lze použít k vytvoření podpisu. Jakmile se agreguje prahová část podílů podpisů, vytvoří kompletní digitální podpis, který lze ověřit pomocí veřejného klíče.

Pokud není dostatečný podíl akcií k vytvoření úplného digitálního podpisu, nelze jej ověřit. Při samotné implementaci DFINITY nám stačí, aby agregační poměr dosáhl většiny (51 %). Zde potřebujeme vědět: každá prahová skupina má veřejný klíč a každý člen skupiny má podíl na soukromém klíči.

Následuje proces prahového podpisu. Skvělou vlastností prahových podpisů je, že bez ohledu na to, které podpisy jsou agregovány k vytvoření úplného podpisu, výsledný podpis je stejný.

Pak skončíme s hromadou digitálních podpisů, což je skvělý zdroj náhodnosti, pokud nikdo předem neví, co v nich je. Tento podpis později použijeme jako náhodný maják.

Jak se tedy generují náhodné majáky? Začneme zdrojem náhodnosti, použijeme jej k výběru prahové skupiny a členové prahové skupiny podepíší náhodnost (používá se k výběru prahové skupiny).

Tento prahový podpis (pamatujte, že potřebujeme pouze 51% práh a žádný člen prahové skupiny zde nemá žádný vliv na podpis), se používá k výběru další prahové skupiny. Tento proces pokračuje donekonečna.

Náhodné třídění - Pravděpodobnostní konsensus slotu pro kartu

Pravděpodobnostní konsensus slotu

Protože protokol obsahuje seznam všech uzlů připojených k síti, může tento seznam a náhodné signály použít jako vstup a výstup náhodně uspořádaného seznamu. Toto náhodné třídění je třeba provádět na základě pravděpodobnostního konsensu slotu pro kartu.

Má se za to, že nejvyšší uzel má vyšší prioritu (hodnocení). Priorita ovlivňuje pravděpodobnost přidání bloku do řetězce. Čím vyšší priorita, tím větší pravděpodobnost.

Uzly to mohou dělat samy a upřednostňovat bloky před jejich vytvořením a vysíláním. To šetří výpočetní a síťové zdroje, protože v praxi může vytvářet a vysílat bloky pouze několik (např. pět) uzlů.

Blokové podepisování

V síti DFINITY hraje roli při podepisování bloků i vytváření náhodných prahových skupin.

Každý člen prahové skupiny se řídí stejnými pravidly: obdrží blok, a pokud je blok neplatný, je vyřazen. Pokud je platná, zkontroluje se její priorita.

Pokud je priorita nižší než blok, který obdrželi dříve, zahodí jej. Pokud je priorita vyšší, podepíší ji pomocí sdílení soukromého klíče a poté odvysílají sdílení bloků a podpisů.

Jakmile blok shromáždí potřebný počet sdílených podpisů pro vygenerování úplného a ověřitelného podpisu, je považován za „notářsky ověřený“ a blok je přidán do řetězce.

Následuje celý proces generování bloku:

Efektivní potvrzení blokování DFINITY

Na základě použití náhodných funkcí ověřitelných prahovým relé je doba potvrzení bloku sítě DFINITY pouze dva bloky, doba potvrzení může být až 2,5 sekundy a objem zpracování transakce za sekundu je přibližně 50. Obecně platí, že rychlost potvrzování bloků je skutečně velmi rychlá a musíme také vidět, jakou obrovskou roli v ní hraje VRF.

Jak vytvořit prahovou skupinu

1) Noví klienti připojující se k síti jsou náhodně přiřazeni do různých skupin pomocí algoritmu VRF.

2) Inicializujte parametry prahové skupiny (včetně velikosti skupiny, prahové hodnoty atd.).

3) Po dokončení inicializace je veřejný klíč úspěšně vytvořené skupiny zaregistrován v síti.

4) Vytváření prahových skupin je odděleno od obchodního procesu blockchainu, takže může být prováděno paralelně, jak je znázorněno na obrázku, současně vytváříme červené a zelené skupiny.

5) Nově přidané prahové skupiny a klienti (nebo těžaři) musí počkat 2 cykly EPOCH, než mohou být aktivováni.

Jak vybrat vhodnou délku epochy: Aby byla zajištěna správnost, musí epocha obsahovat více bloků než řetězová vidlice. Protože však odlehčený klient ukládá pouze informace o hlavičce bloku klíčových snímků, z důvodů efektivity je třeba definovat epochu co nejdéle, například jeden týden.

Pravděpodobnostní slot protokolem zaručené generování bloků a vyhýbání se vidlicím

Zavedení protokolu pravděpodobnostního slotu do struktury prahového podpisu zajišťuje, že těžaři v síti vždy produkují bloky na optimálním hlavním řetězci. Současně v kombinaci s algoritmem VRF dosahuje vysoké konzistence a efektivní doby potvrzování bloků.

Proces generování bloku pro každou výšku h je následující:

1) Seřaďte procesy aktuální skupiny prahových hodnot výšky pomocí algoritmu VRF.

2) Rozdělte setříděné procesy do různých slotů a označte je jako prioritní objednávky v rámci systému.

3) Ohodnoťte procesy v různých slotech a označte váhy.

4) DFINITY také zavádí mechanismus založený na timeoutu, to znamená, jak dlouho čekat na první vybraný proces, pokud se blok nevyrobí, další proces provede výrobu bloku.

Jak je znázorněno na obrázku, kompletní proces výroby bloku: ① Náhodné řazení ② Seskupení (slot) ④ Vyberte proces s nejvyšším skóre pro zabalení bloku a jeho vysílání; nejvyšší skóre znovu a znovu řetěz.

zbývající problémy

Prostřednictvím struktury prahového relé a protokolu pravděpodobnostního slotu lze dosáhnout efektivního generování bloků a extrémně nízké pravděpodobnosti událostí řetězové vidlice. Stále se však budeme setkávat s útoky, o které se v síti pokoušejí zákeřní aktéři, jako jsou následující dvě situace:

1) Sobecký těžařský útok: Zlomyslní protivníci budou selektivně zadržovat vytěžené bloky a postupně je uvolňovat, čímž získají výhodu kontroly transakcí ve srovnání s poctivými uzly, sobecké těžařské útoky zároveň zvyšují potvrzení potřebné k dosažení konečného čísla konzistence.

2) Žádné sázky: Zlomyslný protivník musí mít jen to štěstí, že je vybrán jako řada 0 slotů (tj. s nejvyšší prioritou), pak může kdykoli hlasovat na všech vidlích a vytvářet vidličky od výšky h a dále implementovat opakované útoky.

DFINITY Network navrhuje řešení:

Stěžejní myšlenkou je zavedení notáře a podpis notáře musí existovat v aktuální výšce. Tímto způsobem, pokud se vydání bloku zpozdí, podpis notáře nebude získán a blok bude považován za neplatný.

Proces výroby bloku v notářském režimu

Abychom vyřešili dvě potenciální hrozby, zavedli jsme notáře, aby prováděli podpisy na blocích a analyzovali princip generování bloků:

1) Poté, co aktuální výška h obdrží prahovou hodnotu předchozí skupiny, členové skupiny spustí své vlastní časovače a shromažďují informace o transakcích během BLOCK_TIME (neprovádí se žádné zpracování. Poznámka: DFINITY se nespoléhá na striktní synchronizaci hodin).

2) Během čekání na BLOCK_TIME protokol pravděpodobnostního slotu vyhodnotí proces a vybere zabalený proces.

3) BLOCK_TIME, tj. po uplynutí 5s čekací doby, po druhém posouzení: ① Zda byl ohodnocen řetězec s nejvyšším skóre ② Ověřte, zda je blok platný a je vybrán slot jako odpovědný proces balení ③ Notář ověří blok, proces odešle shard podepsaný prahovou skupinou bloku.

Kdy bude podepisování ukončeno? Jakmile je dosaženo prahu a je zkombinován skupinový podpis aktuální výšky, fragment podpisu aktuální výšky již nebude podepsán.

Některé shrnující body:

1) Za normálního síťového provozu, pokud je BLOCK_TIME nastaven dostatečně velký s ohledem na synchronizaci sítě, bude každý člen skupiny upřednostňovat pouze řetězec s nejvyšším skóre.

2) Notářská skupina bude certifikovat pouze bloky představující řetězec s nejvyšším skóre.

3) Tato metoda může zabránit vidličkám a rychle dosáhnout konečné konzistence.

Vyřešte stejný problém se skóre

Proces ve slotu 0 ovládaný zlomyslným protivníkem může vysílat velké množství různých verzí svých bloků do DOSu. Přestože bude tento škodlivý proces rychle vyhozen ze sítě kvůli byzantskému chování, jak tomu zabránit, než k němu dojde?

Řešení: Pokud proces najde blok se stejným nejvyšším skóre, přepošle jej pouze uzlům, které dosud stejné skóre nezjistily. Pokud člen skupiny najde blok se stejným nejvyšším skóre, podepisování se neprovede, ale začne podepisovat další blok s nejvyšším skóre z jiného slotu.

shrnutí

Prostřednictvím celkového architektonického návrhu poskytuje síť DFINITY schopnost efektivně vyrábět bloky, které bude sítí ignorováno a potrestáno notářem.

V ideálním světě potřebuje síť DFINITY pouze 2 bloky a prahové skupinové relé k dosažení konečné konzistence, což je obrovská výhoda pro konkurenční blockchainové platformy. Když je BLOCK_TIME nastaveno na 5 sekund, průměrná doba potvrzení je pouze 7,5 sekundy.

Měděná verze DFINITY má zjevné výkonnostní výhody oproti blockchainovým technologiím první generace (Bitcoin) a druhé generace (Ethereum), pokud jde o dobu generování bloku, dobu potvrzení transakce a spotřebu paliva.

otázka

Otázka: Prahová skupina časového období 2 je vybrána během časového období 1. Budou v tomto případě členové prahové skupiny časového období 2 zranitelní vůči útokům DDOS?

Odpověď: Odpověď je ne. Protože v DFINITY jsou tito členové skryti, platforma tyto členy vybrala, ale nikdo neví, kdo to je.

Problém: Problémy s komunikací jsou úzkým hrdlem při vytváření klíčů BLS. DFINITYKolik uzlů je v prahové skupině? Jak tento problém zlepšit?

Odpověď: V prahové skupině je 400 uzlů. Komunikace jsou drahé, ale ne natolik, aby to byl problém, který musíme vyřešit.

Otázka: Co mám dělat, když člen prahové skupiny odhalí svůj soukromý klíč?

Odpověď: Protože potřebujeme určitý práh (51 %) sdílených soukromých klíčů, abychom dosáhli konsensu, na úniku jedné akcie nezáleží.

Otázka: Kolik uzlů je vybráno pro zahájení bloků?

Odpověď: Odpověď je 0. Každý uzel může být vybrán pro zahájení bloku. Konkrétní pravděpodobnost je určena předchozím algoritmem náhodného třídění. Čím vyšší priorita, tím vyšší pravděpodobnost. Pokud je inicializován blok, je ve skutečnosti implementováno asi 5 uzlů.

Obsah IC, na kterém vám záleží

Technologický pokrok |. Informace o projektu |

Sbírejte a sledujte kanál IC Binance

Zůstaňte v obraze s nejnovějšími informacemi