
konsensusÚčel tohoto dokumentu: vysvětlete verzi Chiaova konsensuálního algoritmu verze 1.1
Cílové publikum: technické publikum obeznámené s blockchainem, ale ne s Proofs of Space (PoS), Proofs of Time / Verifiable Delay Functions (VDF) a Chia.
Pokud s bitcoiny / blockchainem začínáte, přečtěte si nejprve tuto učebnici: Vysvětlen konsensus sítě Bitcoin a ChiawwCryptoměnové technologie.
Prosím požádat otázky na keybase, abychom mohli vylepšit tento dokument!
Motivace
The Algoritmus Chia Consensus si klade za cíl vytvořit ekologickou, bezpečnou a decentralizovanou alternativu k důkazu o práci a důkazu o sázce.
Důkaz práce (PoW) kryptoměny spalují obrovské množství elektřiny. Navíc mají tendenci se centralizovat kvůli koncentraci výroby a vlastnictví hardwaru a koncentraci levné energie, čímž je PoW nepřístupný běžným uživatelům a náchylný k různým útokům.
Důkaz o vkladu má mnoho podob, každá s vlastními klady a zápory. Některé běžné slabiny jsou: koncentrovaná kontrola fondů prostřednictvím burz; koncentrace delegování; spoléhání se na kontrolní stanoviště a subjektivitu (požadavek pravidelného online připojení); nepřístupnost běžným uživatelům; riziko sekání; předpoklady synchronizace hodin, síťové předpokladya další bezpečnostní předpoklady.
Zavedení
Decentralizované konsensuální algoritmy vyžadují odolnost Sybil se zdrojem, který je kryptograficky ověřitelný a vzácný (ne nekonečný). V předchozích blockchainových systémech byly omezenými zdroji výpočetní výkon a sázka. Důkaz vesmíru je alternativou, která se mnohem blíží původnímu ideálu bitcoinu „jeden cpu jeden hlas“ tím, že jako omezený zdroj využívá úložnou kapacitu. Za example, někdo, kdo ukládá 500GiB, má 5 „hlasů“, někdo, kdo uchovává 100GiB, má 1 „hlas“, Kde hlasováníe odkazuje na šanci vyhrát a ověřit blok, nikoli skutečné hlasování o řetězci. Používání pouze storážní kapacita však není bezpečná. Jeden další kryptografická skládačka slouží k zabezpečení tohoto systému: jmenovitě ověřitelná funkce zpoždění, což je a kryptografických důkaz, že uplynul skutečný čas. Spravedlivý systém lze vytvořit kombinací důkazů o prostoru a čase. V takovém systému uživatelé ukládají náhodně–prohlížení dat na jejich pevných discích po určitou dobu a jejich šance na výhru Chia je úměrná jejich přidělenému prostoru. Takový systém se navíc rozšiřuje na miliardy účastníků podobným způsobem jako doklad o pracovní loterii. K připojení nejsou potřeba žádné prostředky, speciální hardware, registrace ani povolení, pouze pevný disk. A systém je zcela transparentní a deterministický - kdokoli si může efektivně a objektivně ověřit, který řetězec je kanonický.
Důkazy o vesmíru
Důkaz vesmírného protokolu je ten, ve kterém:
- ověřovatel může poslat výzvu poskytovateli a
- poskytovatel může ověřovateli prokázat, že si v danou přesnou dobu rezervuje konkrétní množství úložného prostoru.
Důkaz vesmírného protokolu má tři složky: vykreslování, dokazování / hospodaření a ověřování. Podrobnosti zde.

Obrázek 1: Nejprve tester „vykreslí“ nebo přidělí část místa na disku (1). Poté se testovací „farmaří“ reakcí na výzvy pomocí důkazů o vesmíru (2,3,4). Ověřovatel zkontroluje, zda je důkaz pro danou výzvu platný.
Vykreslování je proces, při kterém prover, kterého označujeme jako farmáře, inicializuje určité množství prostoru. Farmářem může být jakákoli osoba, která má na svém notebooku k dispozici minimálně 100 GiB k rezervaci, nebo podnik připravený přidělit velký objem nevyužitého úložného prostoru. Neexistuje žádná horní hranice. Vykreslování trvá řádově hodiny nebo dny a provádí se pouze jednou. Inicializovaný prostor je obsazen a file zvaná zápletka. Velikosti vykreslování jsou určeny parametrem ak, kde mezera = 780 * k * pow(2, k – 10), s minimem k 32 (101.4 GiB). Jako Chia 1.0, kolem lze vytvořit graf k32 šest hodin s rychlým komoditním strojem a 24 hodiny s pomalým strojem využívajícím jedno jádro CPU a několik GB paměti. Existují příležitosti pro obrovské zrychlení. Konstrukce PosSpace je založena na Beyond Sakra chlape [NIKDY nestahujte], ale je vnořeno 6krát a obsahuje další heuristiky, aby to bylo praktické.
Výsledkem je zápletka file to může být, napřample, 100 GiB. The file obsahuje sedm tabulek s náhodně vypadajícími daty. Každá tabulka má 2^k záznamů. Každá položka v tabulce i obsahuje dva ukazatele na tabulku i-1 (předchozí tabulka). Nakonec každá položka tabulky 1 obsahuje dvojici celých čísel 0 a 2 ^ k, nazývané „hodnoty x“. Důkazem prostoru je sbírka 64 hodnot x, které mají určitý matematický vztah.
Ve výše uvedeném diagramu, jakmile to Prover má inicializováno 100 GiB, jsou připraveni přijmout výzvu a vytvořit důkaz. Jednou z atraktivních vlastností tohoto schématu je, že je neinteraktivní: žádná registrace nebo k vytvoření grafu je vyžadováno online připojení. Nic nezasáhne blockchain, dokud nezískáte odměnu, podobně jako PoW.
Zemědělství je proces, kterým zemědělec dostává sled výzev, aby prokázal, že legitimně odložil definované množství úložiště. V reakci na každou výzvu farmář zkontroluje jejich pozemky, vygeneruje důkaz a předloží jakékoli vítězný důkazy do sítě k ověření.
Každá iterace tohoto procesu je vyhledávání v tabulce. A vyhledávání bere 256 bit výzvu jako vstup a výstup jako důkaz. Zemědělec na výzvu odpovídá čtení dvojice hodnot v tabulka 7. Ty ukazují na dva záznamy v tabulce 6 atd. Nakonec farmář načte celý strom hodnot x. To vyžaduje jedno čtení pro tabulku 7, dvě pro tabulku 6, čtyři pro tabulku 5 atd. Celý proces by trval přibližně 640 ms, za předpokladu pomalého HDD s časem hledání 10 ms. Množství načtených dat je malé a nezávisí na velikosti grafu.
Jelikož většina důkazů generovaných tímto procesem není dostatečně dobrá (jak je uvedeno níže) k odeslání do sítě k ověření, můžeme tento proces optimalizovat pouze kontrola jedné větve stromu, což má za následek dvě hodnoty x, v závislosti na výzvě. Pak jsme takto vygenerované hodnoty x zařadili do 256bitového řetězce, abychom zjistili, zda je důkaz dobrý. Hašování těchto hodnot x nám dává řetězec kvality, náhodnou hodnotu 256 bitů. To je kombinováno s obtížností a velikostí pozemku, aby se vygeneroval požadovaný_iterací. Pokud je požadováno_iterací je menší než určité číslo (můžeme se dostat do blockchainu), pak vyhledáme celý PoSpace. Vyhledání jedné větve vyžaduje pouze přibližně 7 vyhledávání disku a čtení nebo přibližně 70 ms na pomalém pevném disku.
Obrázek 2: Struktura pozemku file. 64 červených hodnot x představuje důkaz, 2 zelené hodnoty x představují kvalitu. 
Další optimalizací je diskvalifikace určitého podílu (napřample 511/512) grafy způsobilosti pro každou výzvu. Toto se označuje jako filtr plotru. Napřample, což vyžaduje, aby hash výzvy a plot_id začínal na 9 nuly. To bolí všechny stejně (s výjimkou přemisťování útočníků), a je to proto spravedlivé. Díky tomu hospodaření nevyžaduje téměř žádné zdroje a velmi málo disku se načte každých pár minut. Uživatelé Chia úspěšně chovali více úložišť PiB na jediném Raspberry Pi. Předpokládáme, že farmáři vždy používají HDD, protože jsou levné a není důvod používat SSD, protože rychlost není pro zemědělství relevantní. SSD / RAM lze však použít pro rychlejší vykreslování.
Klíč vykreslení je soukromý klíč, který je uložen v grafu file. ID grafu je generováno hashováním veřejného klíče plotru a veřejný klíč bazénu. Vytvoření bloku s důkazem prostoru vyžaduje podepsání pomocí klíče vykreslení i klíče fondu. Po vytvoření grafu se proto fond nemusí změnit. V praxi je klíčem spiknutí 2/2 BLS agregovaný veřejný klíč mezi místním klíčem uloženým na spiknutí a klíčem uloženým farmářským softwarem. Z důvodu bezpečnosti a efektivity může zemědělec provozovat centralizovaný server pomocí tohoto klíče a podpisového schématu. Server může být připojen k mnoha sklízecím strojům, které ukládají grafy. Zemědělství vyžaduje klíč farmáře a místní klíč, ale nevyžaduje klíč fondu, protože podpis fondu lze uložit do mezipaměti a znovu použít pro mnoho bloků.
Ověřování: Poté, co zemědělec úspěšně vytvořil důkaz prostoru, může být důkaz ověřen provedením několika hashů a porovnáním hodnot x v důkazu. Připomeňme, že důkazem je seznam 64 hodnot x, kde každá hodnota x má délku k bitů. Pro k32 je to 256 bytů, a je tedy velmi kompaktní. Ověření je velmi rychlé, ale ne dost rychlé na to, aby bylo možné ověřit jeho spolehlivost na etherea (něco, co by umožňovalo důvěryhodné převody mezi řetězci), protože vyžaduje operace blake3 a chacha8.
Důkazy času
Doklad o čase nebo Vvyléčitelný Delay Function, je důkaz, že sekvenční funkce byla provedena několikrát.
Ověřitelný: to znamená, že po provedení výpočtu (což vyžaduje čas) může tester vytvořit velmi malý důkaz ve velmi krátké době a ověřovatel může ověřit tento důkaz bez nutnosti opakovat celý výpočet.
Zpoždění: to znamená, že tester ve skutečnosti strávil skutečné množství času (i když nevíme přesně kolik) výpočtem funkce.
Funkce: to znamená, že je to deterministické: výpočet VDF na vstupu x vždy přináší stejný výsledek y.
Klíčové slovo je zde „sekvenční“, jako mnohokrát hashování: hash (hash (hash (a))) atd. To znamená, že prover nemůže na rozdíl od bitcoinu / proof of work jen koupit více strojů, aby šly rychleji. Proto můžeme předpokládat, že výpočet VDF vyžaduje skutečný čas (nástěnné hodiny). Konstrukce, kterou používáme, je opakované kvadratury. Prokazatel musí x T krát postavit výzvu. To vyžaduje čas ϴ (T). Prover musí také vytvořit důkaz, že to bylo provedeno správně.
Obrázek 3: Ověřovatel (blockchain) odešle výzvu proverovi (timelordovi) a prover vypočítá výstup a důkaz. 
Ačkoli následující podrobnosti nejsou příliš důležité pro pochopení konsenzuálního algoritmu, je relevantní volba toho, co VDF použít, protože pokud útočník uspěje v získání mnohem rychlejšího stroje, jsou možné některé útoky.
VDF, který používá Chia, se opakuje ve čtverci ve skupině tříd neznámého řádu. Existují dva hlavní způsoby, jak generovat velkou skupinu, která má neznámé pořadí. Prvním je použití modulu RSA a použití celých čísel mod N jako skupiny. Pořadí skupiny není známé, pokud můžete pomocí modulu generovat modul s mnoha zúčastněnými stranami MPC obřad. Jednodušší přístup je použití třídních skupin s velkým prvočíselným rozlišovacím, což jsou skupiny neznámého řádu. To nevyžaduje žádné složité nebo důvěryhodné nastavení, proto jsme pro Chia vybrali tuto možnost. K vytvoření jedné z těchto skupin stačí velká náhodná prvočísla. Nevýhodou je, že kód skupiny je v reálném životě méně testován a optimalizace jsou méně známé než ve skupinách RSA. Pro druhou mocninu použijeme stejný počáteční prvek (a = 2, b = 1 prvek skupiny) a místo toho použijeme výzvu ke generování nového náhodného prvočísla pro každý VDF, který se použije jako diskriminátor. Diskriminační má velikost 1024 bitů, což znamená, že kontrolní velikosti jsou kolem 1024 bitů. Používáme Wesolowského schéma [Stáhnout] rozdělit do n (1 <= n <= 64) fází, takže vytváření důkazů je velmi rychlé. Vzhledem k tomu, že důkazy n-wesolowski mohou být velké, nahradíme je důkazy 1-wesolowski, jakmile jsou k dispozici, protože jsou menší, ale jejich výroba vyžaduje více času. Samotné důkazy nejsou na řetězci potvrzeny, takže jsou vyměnitelné.
Infuze
Jako rekapitulaci VDF přijmou vstup, který se nazývá výzva, a vytvoří výstup společně s důkazem, který potvrzuje, že funkce byla správně vyhodnocena.
Infuze hodnoty do VDF znamená, že tato hodnota je kombinována s výstupem VDF, aby se vygenerovala nová hodnota, která se použije jako vstup / výzva pro další VDF. Proto provádíme řetězení VDF, ale mezi tím se zavazujeme k nové hodnotě (bloku). Používá se to, abychom měli lineární postup bloků, střídali jsme důkazy prostoru s důkazy času.
Algoritmus konsensu
Podpisy BLS
Kdykoli se v tomto dokumentu odkazuje na podpisy, předpokládá se, že se použije deterministický podpis BLS podle specifikace IETF se schématem Augmented. Soukromé klíče provádějící tyto digitální podpisy jsou kontrolovány a ukládány farmáři a pro každý graf je použit jedinečný soukromý klíč.
Role uzlů
Zemědělci
Zemědělci jsou uzly, které se účastní konsensuálního algoritmu ukládáním grafů a jejich kontrolou na důkazy o prostoru. Komunikují s plným uzlem (obvykle na stejném stroji). Farmáři také komunikují s jedním nebo více sklízeči, což je služba umístěná na stroji, kde jsou uloženy pozemky, a vyhledává důkazy o prostoru jménem farmářského procesu.
Pán času
Timelords jsou uzly, které se účastní konsensuálního algoritmu vytvářením důkazů času a vkládáním bloků do svých VDF.
Úplné uzly
Plnými uzly mohou být timelordi nebo farmáři, nebo mohou pouze plnit role plného uzlu. To znamená vysílat důkazy o prostoru a čase, vytvářet bloky, udržovat mempool čekajících transakcí, ukládat historický blockchain a nahrávat bloky do dalších plných uzlů i peněženek (light klienti).
Výzvy
Algoritmus konsensu Chia se opírá o běh VDF na časové úseky zvané dílčí sloty, které jsou pravidelně upravovány tak, aby přidávaly přibližně 10 minut. Pravidelně se vydávají výzvy, které začínají jakousi mini loterii, kde farmáři kontrolují své pozemky, zda neobsahují důkazy o vesmíru. Když farmáři najdou důkaz o vesmíru, který splňuje podmínky, vysílají jej do sítě. Obtížnost se mění tak, že cílí na 32 výherních testů pro celou síť v každém dílčím slotu. Tyto důkazy jsou vloženy do VDF v různých časech v dílčím slotu. Zemědělci sledují nejtěžší řetězec, který je řetězem s největší kumulativní obtížností (obvykle řetěz s největším počtem bloků).
Obrázek 4: Tři dílčí sloty. Osa x představuje čas. Tečkované čáry představují provedení VDF, postupující v čase zleva doprava. Šipky představují hashovací závislosti (objekt, který ukazuje na jiný objekt, zahrnuje hash druhého objektu). 
Na obrázku 4 vidíme tři body výzvy, c1, c2 a c3. V bodech c1, c2 a c3 timelords vytvářejí výzvy (256bitové hashe), které jsou poskytovány jako vstup do VDF. Timelords vezmou tyto hashe a začnou počítat VDF na tuto výzvu pro zadaný počet iterací. V tomto exampkaždý slot je 100,000,000 XNUMX XNUMX iterací. Když je VDF hotový, timelord zveřejní novou výzvu a důkaz VDF. K infuzi informací o konci slotu dochází na konci každého dílčího slotu.
Dílčí slot: segment s pevným počtem iterací VDF, který podléhá úpravě pracovní obtížnosti, vždy se přizpůsobuje cílovému pevně stanovenému času (tj. 10 minut).
Iterace dílčích slotů: konstanta, která je pravidelně upravována, což určuje, kolik iterací VDF musí mít každý dílčí slot.
Výzva: výstupní řetězec sha256, který se používá jako důkaz vesmírných výzev pro pozemky farmářů i pro řetězec výzev VDF. Toto se také označuje jako výzva hash.
Jak vidíte na obrázku 4, jsou prováděny současně tři VDF, z nichž každý slouží jinému účelu. Jsou vysvětleny v následujících částech.
Značení a infuzní body
Každý dílčí slot v řetězcích výzev a odměn je rozdělen na 64 menších VDF a mezi každým z těchto malých VDF je bod zvaný značení bod. Timelords publikují výstup VDF a důkaz, když dosáhnou každého bodu značení. Pamatujte, že řetězec výzev i řetězce odměn mají značkovací body (nikoli však napuštěný řetězec výzev). Počet iterací mezi jednotlivými značkovacími body je iterace intervalu sp, což se rovná iteracím dílčích slotů / 64.
Výzva na začátku dílčího slotu je také platným značením. Jakmile je dosažen každý ze 64 signage pointů, jsou vysílány prostřednictvím sítě časovými pány a uzly. Zemědělci obdrží tyto značkové body a vypočítají filtr vykreslování na základě značkovacího bodu, jejich ID pozemku a výzvy dílčího slotu. Pokud bity filtru vykreslení začínají 9 nulami, tento graf projde filtrem pro tento signage bod a může pokračovat. To diskvalifikuje kolem 511/512 celého pozemku files v síti, pro to signage point.

The proof of space challenge se počítá jako hash bitů plot plotteru:

Pomocí této výzvy farmáři načtou řetězce kvality pro každý graf, který jej přenesl přes filtr z disku. Připomeňme, že tento proces je téměř okamžitý a že značkovací bod je hash odvozený z části důkazu o vesmíru (ale celý důkaz o vesmíru ještě není získán).
Zemědělec vypočítá požadované iterace pro každý důkaz prostoru. Pokud jsou požadované iterace <sp intervalové iterace, je důkaz prostoru způsobilý k zahrnutí do blockchainu, takže zemědělec načte celý důkaz prostoru z disku (což trvá déle než jen načítání kvality), vytvoří nedokončený dílčí blok a vysílá do sítě. Všimněte si, že drtivá většina požadovaných iterací bude příliš vysoká, protože v průměru 32 se kvalifikuje pro celou síť pro každý dílčí slot. Toto je náhodný proces, takže je možné, aby se kvalifikovalo velké množství důkazů, ale velmi nepravděpodobné. The iterace signage point je počet iterací od začátku dílčího slotu po značení.
The infuzní iterace je počet iterací od začátku dílčího slotu, ve kterém může být blok s kvalitou výše zahrnut do blockchainu. To se počítá jako:

Proto budou infuzní iterace mezi 3 a 4 značkovacími body po značení. Zemědělci musí předložit důkazy a bloky, než je dosaženo místa infuze. Modul je tam, aby umožňoval přetečení do dalšího dílčího slotu, pokud je značení blízko konce dílčího slotu. Toto je rozvedeno později.
V místě infuze se farmářský blok spojí s výstupem VDF infuzního bodu a vytvoří se nový vstup pro VDF od tohoto bodu, tj. Napustíme farmářský blok do VDF. Blok je plně platný až poté, co bylo dosaženo iterací infuze a k bloku byl připojen důkaz VDF.
Aby byl blok b1 platný / dokončený, musí být zahrnuty dva důkazy VDF: jeden od r1 do místa značení a jeden od r1 do b1. (ve skutečnosti je to více, protože existují tři řetězce VDF, vysvětleno později). Na obrázku 5 zemědělec vytváří v době značení (řekněme to B1 '). B1 'však ještě není dokončen, protože potřebuje infuzní bod VDF. Jakmile se infúzní iterace VDF uvolní, přidá se k B1 ', aby se vytvořil hotový blok v B1.
Postava 5: časoví pánové vytvořte důkazy jak pro značení, tak pro místo infuze. Ale jen oni vyluhovat (změnit skupinu tříd VDF) pro druhou. Na druhou symbolizují infuze, kde je spuštěn nový VDF. Sp_iterval_iterrs = 3.125 mil. AKTUALIZACE NA 64 SP
Uvažujme example na obrázku 5. Iterace dílčích slotů jsou 200M a iterace intervalu sp jsou 3.125M. Řekněme, že farmář má celkem 1000 pozemků.
Pro každý ze 64 signálních bodů, které jsou uvolňovány do sítě každých 9 sekund nebo každých 3.125 mil. Iterací, vypočítá zemědělec filtr plotru a vidí, kolik grafů projde. Zemědělec vypočítá požadované iterace pro každý graf, který projde filtrem pro každé signální místo. V tomto exampZemědělec dostane pouze required_iterations <3.125 M jednou v celém dílčím slotu (řekněme, že je to 2.2879 M). Na obrázku 5 je to na 14. místě značení. Iterace infuze se počítají jako:



Poté, co si farmář uvědomil, že zvítězil (ve 14. místě infuze), získá celý důkaz prostoru, provede blok, volitelně včetně transakcí, a vysílá to do sítě. Mají několik sekund (až do infuze), aby se dostali k časovým pánům, kteří napustí blok a vytvoří VDF infuzního bodu. S těmito VDF může být blok dokončen a přidán do blockchainu.
Sp intervalové iterace: Definováno jako podlaha (iterace dílčích slotů / 64).
Značení: 64 zprostředkujících bodů v čase v dílčím slotu v řetězcích výzev a odměn, pro které jsou pravidelně vydávány VDF. V každém signage pointu je vytvořen výstup VDF a vysílán přes síť. Prvním značením v dílčím slotu je samotná výzva. Každý blok má značkovací bod, takže důkaz o prostoru v bloku musí být způsobilý pro tento značkovací bod.
Požadované iterace: Číslo vypočítané pomocí řetězce kvality, které se používá k výběru důkazů o prostoru, které jsou způsobilé k vytváření bloků. Drtivá většina důkazů o vesmíru bude vyžadovat příliš vysoké iterace, a proto nejsou způsobilé k zařazení do řetězce. Toto číslo se používá k výpočtu infuzního bodu.
Místo infuze: okamžik v infuzní iterace z bodu výzvy, pro důkaz prostoru s určitou výzvou a infuzní iterace. V tomto okamžiku se blok farmáře dostane do VDF řetězce odměn. Bod infuze bloku je vždy mezi 3 a 4 značkovacími body za značkovacími body tohoto bloku. Počítáno jako iterace signage point + 3 * iterace intervalu sp + požadované iterace.
Zpoždění mezi bodem značení a bodem infuze má mnoho výhod, včetně obrany proti osiřelému a sobeckému zemědělství, snížené vidlice a žádné pauzy VDF. Toto zpoždění kolem 30 sekund se udává, aby měli zemědělci dostatek času na podpis, aniž by zpozdili slot VDF. Dobře se chovající farmáři podepisují s každým důkazem o vesmíru pouze jeden značkovací bod, což znamená, že útočníci nemohou řetěz snadno přeuspořádat.
Více bloků
Obrázek 7: více bloků. Sp1 = značkovací body 1
Jak vidíte na obrázku 7, do stejného dílčího slotu lze dostat více bloků. Systém Chia cílí na 32 bloků na každý dílčí slot, a to je upraveno pomocí algoritmu obtížnosti práce. VDF přecházejí z předchozího infuzního bodu do aktuálního signálního bodu a z předchozího infuzního bodu do aktuálního infúzního bodu. Všimněte si toho, že důkazy VDF požadované pro každý blok se mohou překrývat. Za example, B2 obsahuje důkaz VDF z B1 na sp2a od B1 na B2. B3 obsahuje důkaz od B1 na sp3a od B2 na B3. B2 vůbec nezávisí B3, ale B3 závisí na B2, protože jeho VDF je z B2 infuzní bod. Znovu se bloky vytvářejí v značených bodech, ale chybí jim infuzní bod VDF; jakmile je tento VDF přidán, blok je dokončen a je součástí blockchainu. V místě infuze nejsou žádné podpisy; jediné věci přidané v místě infuze jsou VDF.
Tři VDF řetězy
Pokud bychom použili pouze jeden VDF (pro řetězec odměn), zahrnutí nebo vyloučení bloků by umožnilo kontrolu nad výzvou pro další slot. To znamená, že útočník by mohl vyzkoušet mnoho různých kombinací a vybrat si výzvu, která mu nejlépe vyhovuje. Tyto typy útoků se nazývají grind útoky a jsou jednou z hlavních obtíží při přechodu z Proof of Work na Proof of Space nebo PoStake. Více podrobností je uvedeno v části „Útoky a protiopatření“.
Aby to bylo možné zmírnit, budou výzvy založeny pouze na prvním bloku, který bude vložen do slotu.
Obrázek 8: tři řetězy VDF. Útočník může manipulovat s výsledky řetězce odměn, ale nemá to žádný vliv na c2, a proto to nemá žádný vliv na loterii PoSpace. cc = řetězec výzev, rc = řetězec odměn, sp = bod značení. B = blok.
V tomto diagramu se toho děje hodně. Za prvé, jak vidíte, jsou 4 bloky: B1, B2, B3, B4, to jsou bloky vytvořené farmáři, které obsahují všechna data, na která ukazují. Předpokládáme, že v tomto dílčím slotu bylo vytvořeno více než 5 bloků, ale nečerpáme všechny z důvodu prostorových omezení.
Řetězec výzev a řetězec odměn také vytvářejí 64 značkových bodů. Bloky musí zahrnovat značkovací body VDF pro oba řetězy. Bloky musí také zahrnovat infuzní body VDF pro všechny tři řetězce.
Jak vidíte, řetězec výzev provádí VDF od začátku dílčího slotu do konce, aniž by do něj bylo vloženo nic (kruhy jsou důkazy VDF, ale nepřerušují VDF). Řetěz odměn naplní každý blok, který je zahrnut. Řetěz uprostřed se nazývá napuštěný řetězec výzev, a začíná u prvního napuštěného bloku pro každou výzvu a pokračuje až do konce slotu.
A slot je seznam dílčích slotů, které obsahují alespoň 16 bloků řetězce odměn na základě výzvy prvního dílčího slotu nebo pozdějších dílčích slotů. Za exampLe, můžeme mít pouze 10 bloků v dílčím slotu a pak 3 a pak 7, což znamená, že tyto tři dílčí sloty tvoří jeden slot. Každý dílčí slot je obvykle také slot, protože v průměru je zahrnuto mnoho více než 16 bloků. The deficit je počet bloků nezbytných k ukončení slotu: to je popsáno dále podrobněji.
Na konci slotu je řetězec výzev kombinován s napuštěným řetězcem výzev k vygenerování nové výzvy c2, která se používá ke spuštění řetězce výzev pro další dílčí slot.
Jediným blokem, který ovlivňuje řetězec výzev, je první blok, který zde je B1a pouze deterministická část B1, cc B1, což závisí pouze na datech řetězce výzev. Útočník, který chce brousit, nemůže změnit výzvu zadržením B2, B3, nebo jakýkoli jiný blok kromě prvního.
Za předpokladu, že útočník má nejrychlejší blok (B1), mají tři možnosti: zadržet, odložit nebo uvolnit. Aby věděli, zda jim nová výzva přinese užitek, budou muset spustit VDF až do c2. Do té doby je jejich šance zapojit se do řetězce odměn pryč, protože poctiví farmáři podepíší pouze jeden blok na důkaz prostoru. Zadržení B1 neposkytuje útočníkovi velkou výhodu, protože ji musí uvolnit dříve sp2 s cílem získat zemědělce do jejich řetězce. Zemědělci si vyberou nejtěžší řetězec, který má nejvíce (nejtěžší) odměny kladkostroje.
Proč se v řetězci výzev vůbec zavazujeme k jakýmkoli blokům? Pokud bychom to neudělali, útočník by se mohl dívat dopředu s rychlejším VDF, protože by pro výpočet řetězce výzev do budoucnosti nepotřebovali pomoc poctivých účastníků. Řetězec výzev by byl zcela deterministický. To by umožnilo určitý postuptage replotováním. Kromě toho lze řetězec výzev použít k pravděpodobnostnímu prokázání hmotnosti řetězce odměn odlehčeným klientům bez sdílení všech bloků řetězce odměn (protože řetězec výzev závisí na „nejlepším“ bloku ve slotu, můžete vypočítat počet odměn řetězové bloky).
Řetěz výzev: Řetězec VDF založený na každé výzvě pro každý dílčí slot, který nevyluhuje nic uprostřed každého dílčího slotu. Výzvy se také používají pro důkazy vesmíru. Značení v tomto řetězci se používá pro filtr SP.
Řetězec odměn: Řetězec VDF, který obsahuje infuze všech bloků. Tento řetězec táhne provokační řetězec a volitelně napuštěný provokační řetězec na konci každého dílčího slotu.
Napuštěný řetězec výzev: Řetězec VDF, který začíná prvním blokem napuštěným do slotu (který není založen na výzvě předchozího slotu, toto se nazývá blok výzvy) a končí na konci slotu.
Slot: seznam dílčích slotů, které obsahují alespoň 16 bloků odměnového řetězce na základě výzvy prvního dílčího bloku nebo pozdějších dílčích slotů. Na konci slotu se napuštěný provokační řetězec zastaví, provokační řetězec vytáhne výsledek napuštěného provokačního řetězce a deficit se resetuje na 16.
Blok: blok je soubor dat napuštěných do řetězce odměn, který obsahuje: důkaz prostoru pro hash výzvy s menšími iteracemi než iterace slotů, sp a ip VDF pro oba řetězce, volitelný ip VDF pro napuštěný řetězec výzev a a adresa odměny. Některé bloky jsou také transakčními bloky. Na slot je maximálně 128 bloků.
Transakční blok: Blok, který je způsobilý k vytváření transakcí, spolu s přidruženým seznamem transakcí.
Blok výzev: První blok, který má být naplněn v každém slotu, který není založen na výzvě předchozího slotu. Blok výzev má vždy deficit 15 a vždy začíná napuštěným řetězcem výzev.
Peak: Vrchol blockchainu viděný uzlem je blok s největší váhou. Hmotnost je součet obtížnosti bloku a všech jeho předků, který je podobný výšce, ale kratší řetěz může mít vyšší hmotnost kvůli obtížným úpravám.
Aby byl blok považován za platný, musí poskytnout VDF pro řetězec výzev a řetězec odměn a volitelně pro řetězec napadeného výzvou, pokud je přítomen. Vynucení zahrnutí všech VDF znamená, že je zaručeno, že všechny tři řetězce budou postupovat stejnou rychlostí.
Bloky přetečení
Aby farmář vytvořil blok, musí být jejich required_iterations menší než 3.125M nebo iterace dílčích slotů / 64, jak je popsáno výše. To znamená, že infúzní iterace mohou být větší než iterace dílčího slotu, a proto k infuzi musí dojít v dalším dílčím slotu.
Blok přetečení: blok, jehož infuzní bod je v jiném dílčím slotu než jeho značení.
Aktuální hrací automat: S ohledem na určitý blok B, aktuální výzvy slotu B zahrnují všechny výzvy začínající první výzvou ve slotu a končící na konci slotu (nehraje). To je relevantní, protože někdy slot zahrnuje více dílčích slotů, a tedy několik výzev.

Obrázek 9: B4 v tomto diagramu je blok přetečení, protože infuze je v dalším slotu. B4 není založen na výzvě aktuálního slotu, a tak nesnižuje deficit ani nevytváří blok výzev. TODO: diagramy by měly být 16, ne 5.
Bloky přetečení nemohou existovat v prvním dílčím slotu epochy (protože iterace dílčího slotu se mění).
Bloky přetečení také nemění deficit, pokud nejsou založeny na výzvě aktuálního slotu, protože bloky přetečení jsou odpověďmi na výzvu předchozího dílčího slotu. Bloky přetečení nejsou bloky výzev, pokud nejsou založeny na výzvě aktuálního slotu. Všimněte si, že u bloků přetečení dochází ke snížení deficitu, protože deficit bude téměř vždy snížen na nulu a v každém dílčím slotu bude spuštěn nový slot.
Minimální požadavek na blok
Aby bylo možné slot dokončit, musí být do řetězce odměn napuštěno minimálně 16 bloků výzev aktuálního slotu.
Deficit je číslo mezi 0 a 16, které je přítomno na začátku dílčího slotu. To je definováno jako počet bloků odměn, které musíme nalít, abychom dokončili slot. Při každém spuštění slotu se resetuje na 16 (na infuzi řetězce výzev tedy musí být celkem alespoň 16 bloků). Deficit klesá u každé infuze řetězce odměn, která je založena na výzvě aktuálního slotu.
Blok s deficitem 15 je blok výzev.
Normální případ je, když deficit začíná na 16, a v sub-slotu klesá na nulu, a resetuje se zpět na 16, když dokončíme slot a začneme nový. V případě, že se nám to na konci slotu nepodaří snížit na 0, řetězec výzev a napuštěný řetězec výzev (pokud jsou k dispozici) pokračují a deficit se nevynuluje na 16. Bloky (nyní včetně bloků přetečení) , pokračujte v odečítání od deficitu, dokud nedosáhneme 0. Když dokončíme dílčí slot s nulovým deficitem, vložený řetězec výzev je zahrnut do řetězce výzev a deficit je resetován na 16.
Tento požadavek je přidán, aby se zabránilo útokům na velké vzdálenosti, a je podrobně popsán v části Protiopatření níže. Drtivá většina dílčích slotů bude mít> = 5 bloků, proto to příliš neovlivňuje normální provoz.

Obrázek 10: c2 je konec dílčího slotu, ale ne konec slotu. c2 NEODKAZUJE na ic2, protože slot na tomto dílčím slotu nekončil. Deficit je 2 místo resetování na 5 a napuštěný řetězec výzev pokračuje.
Hmotnost
The hmotnost bloku je součet obtížnosti tohoto bloku plus všechny předchozí bloky kteří jsou předky tohoto bloku. Poctivé plné uzly si musí vybrat vrchol blockchainu tak, aby vrchol byl blok s nejtěžší váhou, o které vědí. Toto je zásadní požadavek a je totožné s nejtěžším řetězcovým pravidlem bitcoinu. Kvůli tomuto pravidlu postupuje útočník s méně než 50% prostoru a bez VDFtagBudeme mít problém vydělat více, než je jejich spravedlivý podíl, protože musí mít štěstí a vytvořit více bloků řetězce odměn než poctivý řetězec. Zemědělci navíc hospodaří pouze na výzvách, které odpovídají nejtěžšímu řetězci.
Rychlost VDF i celková velikost prostoru jsou důležité pro hmotnost a jejich změny mohou vyvolat úpravy obtížnosti. Pokud se velikost prostoru zvýší, vytvoří se více než 32 bloků na slot, takže je třeba zvýšit obtížnost. Pokud se rychlost sítě VDF zvýší, každých 32 minut se vytvoří více než 10 bloků, a proto je třeba zvýšit obtížnost (a iterace dílčích slotů).
Zemědělec s exkluzivním přístupem k mírně rychlejšímu VDF však nemůže snadno získat více odměn než zemědělec s normální rychlostí VDF. Pokud se útočník pokusí osamocit jeden z bloků řetězce, rychlejší VDF nepomůže, protože řetězec útočníka bude mít méně bloků (a tedy nižší váhu). Zemědělci musí podepsat blok, který staví na vrcholu, a oni budou stavět pouze na vrcholu řetězu s nejvyšší hmotností.
Rychlost VDF však vstupuje do hry, když si útočník přeje zahájit 51% útok. V tomto případě může útočící zemědělec pomocí VDF vytvořit zcela alternativní řetězec bez poctivých bloků a předstihnout poctivý řetězec.
Listy
Ve výše uvedených diagramech není místo, kde by zemědělci mohli specifikovat své odměny, protože všechny bloky jsou kanonické. Zemědělci nemají vliv na to, jak je jejich blok postaven, protože musí použít přesný důkaz prostoru, VDF a podpisy, které jsou uvedeny. Abychom do systému zahrnovali odměny za zemědělství i transakce, musíme zavést další komponentu bloků zvanou listy. Doposud jsme diskutovali o „kmenové“ složce.
Kufr: Složka bloků a blockchainu, která zahrnuje VDF, důkazy o vesmíru, podpisy PoS, výzvy a předchozí hlavní bloky a je zcela kanonická. Kmen nikdy neodkazuje na řetězec listů.
Listy: Složka bloků a blockchain, která zahrnuje specifikaci toho, kam by se měly odměny dostat, jaké transakce by měly být zahrnuty a jaký je předchozí blok listů. Je na farmářovi, jak se rozhodne, a je brousitelný, takže to nikdy nemůže být použito jako vstup do výzev.
Reorg: Reorg (nebo reorganizace) je, když je uzel view vrcholu se mění tak, že starý view obsahuje blok, který není součástí nového view (některý blok je obrácen). Možné jsou jak kmeny, tak listy, ale v praxi by měly být vzácné.
Na obrázku 11 níže vidíme, že listy jsou přidávány do bloků za účelem vytvoření dalšího řetězce. Tato zeleň zahrnuje hash předchozího zeleň, hash bloku odměny a podpis. Tyto ukazatele listů jsou oddělené od kmenového řetězce a nejsou kanonické. To znamená, že zemědělci by teoreticky mohli vytvořit listovou reorg, kde budou listy nahrazeny, ale použije se přesně stejný kmen (důkazy o prostoru a čase). Aby se tomu zabránilo, poctiví zemědělci vytvoří pouze jeden blok listů na blok. Jakmile jeden poctivý zemědělec přidá blok listů, listí je nemožné reorgovat nad tuto výšku se stejným PoSpace, protože tento zemědělec se znovu nepodepíše se stejným PoSpace.
Dále bloky jako B3 které přicházejí paralelně s dalším blokem listů (B2) nemusí podepsat předchozí blok listů, protože nemusí mít dost času na to, aby si jej prohlédli. Pod pojmem „paralelní příchod“ máme na mysli, že značkovací bod druhého bloku se vyskytuje před bodem infuze prvního bloku. Červené šipky v diagramu představují ukazatel zeleň, který je podepsán klíčem vykreslení pro důkaz prostoru v tomto bloku. Šedé šipky představují hash ukazatel, který není podepsán klíčem vykreslení (tedy šedá šipka v B3 lze vyměnit, pokud B2 změny nebo je zadržen). Tím se zabrání útokům kde B2 upravuje jejich blok a síly B3 přeorganizovat.
Bloky, které mají červené ukazatele, jsou také způsobilé k vytváření transakcí, a proto se nazývají transakční bloky. Blok je transakční blok tehdy a jen tehdy je to první blok, jehož signage point nastane po infuzi předchozího transakčního bloku. sp3 přichází dříve B2, (blok transakcí a předchozí blok B3), takže B3 nemůže být blokem transakce. Červené šipky poskytují bezpečnost zakopáním bloků listů, ale šedé šipky nikoli. Účelem šedých šipek je udržovat propojený seznam na listí a snížit složitost implementací. Bloky jsou však šedé šipky ukazující na ně se pohřbí v bloku příštího a dalšího.

Obrázek 11: Listové bloky a bloky. Bloky mají transakce a mají červené ukazatele (ukazatele na poslední blok). Všimněte si, že začátek dílčího slotu je také značením.
Blokový hash je hash celého listu a bloku kmene. Reorgové pracují na hašování bloku. I když vidíme řetězec se stejnými důkazy prostoru a času, pokud jsou listy odlišné, bloky se liší. Všimněte si, že oba zemědělci (B2 a B3) může mít šanci vytvořit blok, takže musí poskytnout podepsaný ukazatel i transakce. Jakýkoli blok transakcí však lze zahrnout také jako normální blok a od té doby B2 a B3 jsou paralelní, pouze jeden z nich může provést transakční blok.
Zatímco všechny bloky stále vybírají hash hádanek toho, kam jdou jejich odměny, tyto transakce se do blockchainu dostanou až v dalším bloku transakcí.
Pro síť chia bude 32 bloků každých 600 sekund, průměrná doba bloku bude 18.75 sekundy. Značek bude 64, takže minimální doba mezi bloky je 3 * 600/64 = 28.125 sekundy. Tím se průměrný čas blokování transakcí nastaví na 46.875 XNUMX sekund.
Epochy a přizpůsobení obtížnosti
Subepocha: Sub-epocha N začíná, když sub-epocha
končí (s výjimkou 0. dílčí epochy) a končí na konci prvního slotu, kde
bloky byly zahrnuty od vzniku.
Epocha: Epocha N začíná, když končí epocha N-1 (s výjimkou 0. epochy), a končí na konci prvního slotu, kde
bloky byly zahrnuty od vzniku.
Obtížnost: Konstanta, která zmenší počet iterací pro daný důkaz prostoru. Iterace jsou počítány jako obtížnost / kvalita.
Každých 4608 bloků se spustí úprava obtížnosti. Tím se upraví dva parametry: parametr slot_iterations a parametr obtížnosti.
Parametr sub_slot_iterations je resetován, takže 300sekundový slot vyžaduje téměř iterací slot_iterations. Reset se provádí pomocí hodnot z poslední epochy k aproximaci iterací za sekundu, konkrétně.
Pro epochu nechť epocha* označuje mírně posunuté období, kdy epocha* začíná posledním blokem, který byl naplněn před začátkem epochy, a končí posledním blokem, který byl infuzován v epochě. Hodnoty t1, i1 a w1 označují časamp, iterace od genování a hmotnost od genování na začátku epochy*, (t2, i2, w2) jsou hodnoty na konci epochy*.


To znamená, že delta v celkových iteracích od začátku do konce epochy děleno delta v časovémamps, i2, je celková iterace bodu infuze posledního bloku v epoše. i1 je celková iterace bodu infuze posledního bloku v předchozí epochě. Iterace dílčích slotů je celkový počet iterací na dílčí slot.


Všimněte si, že nebereme iterace a čas přesně na konci epochy, ale v posledním infuzním bodě bloku v epochě, důvodem je jednoduše to, že máme pouze časamps k dispozici při infuzi bloků.






To lze přeskupit, aby bylo možné použít pouze jedno podlahové dělení:

Iterace subslotů jsou upraveny tak, aby každý slot trval přibližně 600 sekund. Obtížnost je upravena tak, aby každá výzva obsahovala v průměru 32 bloků s menším počtem iterací než slot_iterations. Je důležité si uvědomit, že iterace VDF na slot nejsou pro váhu podstatné. To znamená, že pokud by existovaly dva identické světy, kde by rychlosti VDF byly stejné a prostor by byl stejný, ale parametr iterací subslotů by byl v jednom světě dvakrát vyšší, pak by blockchain s vyššími iteracemi subslotů obsahoval dvakrát více bloků na slot, ale každý slot by trval dvakrát tak dlouho, takže váha za sekundu přidaná do řetězce je v obou případech stejná. Jiný způsob, jak se na to podívat, je, že nárůstasing iterací subslotů zvyšuje počet bloků na slot, ale také prodlužuje životnost slotů, a proto nemá vliv na hmotnost za sekundu.
Sub-epochy
Jak bylo popsáno dříve, řetězec výzev je zcela samostatný a neodkazuje na nic v řetězci odměn. Pokud by tyto řetězce zůstaly navždy oddělené, útočník s rychlejším VDF by byl schopen nahlédnout do daleké budoucnosti a předvídat výzvy. Útočník může na jeden slot vytvořit jeden blok s omezeným prostorem, čímž vytvoří celý řetězec výzev. To by jim umožnilo vytvářet zápletky a okamžitě vytvářet důkazy o prostoru pro tyto zápletky, které v budoucnu zvítězí, a pak je odstranit (útok na dlouhé vzdálenosti). Tímto způsobem mohou naplnit svůj řetězec odměn a zvýšit svou váhu.
Řešením je periodicky (každých 384 bloků, což jsou průměrně 2 hodiny) vložit konec řetězce odměny do slotu výzvy. To znamená, že útočník může provést přeskupovací útok pouze na několik hodin do budoucnosti. Samotné vykreslování trvá několik hodin, ale i kdyby mohl útočník provést okamžité replotace, náklady na opakovaný útok převáží jeho výhody. Naplňujeme ne aktuální výstup řetězce odměn, ale výstup řetězce odměn na konci předchozí subepochy (před 2 hodinami).
Náklady na vytvoření grafu zahrnují elektřinu pro výpočet všech tabulek, RAM potřebnou při vytváření tohoto grafu a náklady na pevnou infrastrukturu (prostor, energie, chlazení atd.). Za předpokladu nejhoršího scénáře superrychlého VDF a okamžitého ASIC vykreslování - výhody by byly ekvivalentní výhodám ukládání tohoto grafu na HDD po dobu několika hodin. Je zřejmé, že tento útok nemá cenu a že ukládání pozemků je mnohem levnější (níže uvedená analýza).
Výše uvedené vysvětluje, proč by měl být subepochový interval relativně nízký. Ale proč bychom ji nemohli dále zkrátit na méně než 2 hodiny, abychom dále odradili od vykládání útoků? Důvodem je, že kdykoli jsou do výzevního řetězce vnesena nekanonická data, objeví se příležitost k mletí. To znamená, že útočník se může rozhodnout zahrnout nebo vyloučit bloky a manipulovat s tím, jaká bude výzva 2 hodiny do budoucnosti. Pokud je tento čas příliš krátký, mohou získat malý pokroktagtím, že to budete dělat častěji.
Druhým účelem subepoch je sloužit jako kontrolní body v protokolu podobném flyclientu, který je vysvětlen níže, aby se zvýšila efektivita lehkých klientů.
Lehké ověření klienta
Podpora lehkých klientů je další výhodou důkazu o prostoru ve srovnání s důkazem o sázce, protože všechny důkazy lze objektivně ověřit kryptograficky a vyžadují kontrolu skutečného zdroje v určitém okamžiku.
Pro lehké klienty, kteří se chtějí rychle synchronizovat s řetězcem (napřampmobilní peněženky), plný uzel může vytvořit malý důkaz, který může lehkého klienta přesvědčit, že váha řetězce se blíží nějaké hodnotě. Tomu se říká a doklad o hmotnosti. Naivně může lehký klient stáhnout každý jeden blok a všechny požadované důkazy a ověřit je, ale při tak velkém počtu bloků by to vyžadovalo velkou šířku pásma a CPU.
Efektivnější metoda spoléhá na protokol podobný programu Flyclient [4]. Uzel (prover) odesílá všechny dílčí epochální souhrny z bodu vidlice, které zahrnují resetování obtížnosti, do světelného klienta. Každých 384 bloků je pouze jeden, takže toto může dosáhnout pouze několika MB dat. Uzel také deterministicky sampněkolik sub-epoch na základě výzvy posledního bloku. Dílčí epochy mají šanci být vybrány úměrně obtížnosti během této dílčí epochy. Pro vybranou subepochu si světelný klient stáhne jeden z bloků provokačního řetězce (což je přibližně 1/32 všech bloků) a vypočítá průměrné iterace infúze všech stimulačních bloků v dané sub-epochě. Na základě této doby může světelný klient extrapolovat, kolik bloků řetězec odměn obsahuje. Za exampPokud se všechny bloky výzev vyskytují s velmi malými iteracemi (téměř na začátku slotu), pravděpodobně je v tomto slotu mnoho bloků. A naopak, pokud jsou iterace blízko středu slotu, na jeden slot je pravděpodobně pouze jeden blok. To umožňuje lehkému klientovi stáhnout pouze 1/32 bloků v každém slotu, ale přesto získat dobrý odhad celkové hmotnosti.
Pro světelného klienta by se navíc mělo stáhnout několik posledních dílčích epoch. To přidává malé množství dat, ale brání útočníkům ve vytváření malých vidlic na konci řetězce. Hlavní rozdíl mezi tímto protokolem a flyclientem spočívá v tom, že bloky nejsou odhodlány používat pohoří merkle, ale místo toho si lehký klient stáhne celý seznam subepochových hash z geneze, což zaručuje, že do řetězce jsou zahrnuty dotazované subepochy . Dalším rozdílem je, že se stahují celé sekce, na rozdíl od jednotlivých bloků.
Je třeba provést další analýzu toho, kolik subepoch by mělo být staženo a jaké jsou hranice toho, co znamená důkaz hmotnosti.
sdružování
Sdružování v Chia je navrženo tak, aby bylo jak extrémně jednoduché, tak decentralizovanější než sdružování v bitcoinech / ethereu. Ve společnosti Chia je veřejný klíč fondu vložen do pozemků, aby se zabránilo farmáři v získávání odměn z fondu účastí ve více než jednom fondu. Zemědělec stáhne adresu fondu spolu s jeho podpisem. Zemědělec pravidelně zasílá partials pro důkazy o prostoru, které mají méně než T iterací, kde T je vybrán fondem.
Když zemědělec vyhraje blok, předloží podpis farmáře a podpis fondu. Poplatky za transakci spolu s ⅛ blokové odměny jdou farmáři, zatímco ⅞ blokových odměn jde do fondu. Důvodem pro poskytnutí části odměny farmáři je oddělování útoků, kdy jedna skupina útočí na druhou tím, že pro ně „sdružuje“, ale ve skutečnosti nepředloží výherní důkazy. Jedná se o útok, který může způsobit, že druhý fond přestane fungovat.
Je to jednodušší, protože fond nemusí dělat nic jiného, než zveřejnit svůj podpis jednou na souboru webshromažďování dílčích částek a pravidelné výplaty. Je to decentralizovanější, protože bloky jsou vyráběny farmáři, takže velké centralizované fondy mají malou kontrolu nad sítí a to zvyšuje odolnost vůči cenzuře transakcí.
Druhý složitější protokol sdružování vám umožní určit singletonovou inteligentní smlouvu, do které se bude ukládat adresa fondu. Pozemky by pak zahrnovaly logickou hádku inteligentní smlouvy, která by zemědělcům umožňovala kdykoli se změnou seskupení změnit. Nevýhodou tohoto sdružovacího protokolu je, že k zahájení chovu je nutná transakce v řetězci, a proto není přísně lepší než první sdružovací protokol.
Algoritmus Timelord
Timelord sleduje aktuální vrchol který zahrnuje napuštěný blok v určité výšce a značení od vrcholu dále. Časový lord může obdržet nové bloky k vyluhování, nové vrcholy (bloky, které jsou již naplněny) nebo nové značkovací body.
Jak se timelord rozhodne, na základě kterých výzev je třeba vytvořit důkaz o čase, vzhledem k omezenému počtu dostupných procesorů? I když se ASIC pravděpodobně budou v budoucnu vyvíjet, v současné době jsou nejrychlejší implementace VDF třídních skupin na hardware pro obecné účely, protože se zdá, že VDF třídních skupin je tvrdý pro FPGA. Navíc i po vývoji ASIC je důležité, aby každý uživatel s CPU mohl být timelordem, aby poskytl nouzové řešení v případě, že timelordy ASIC spadnou, nebo se stanou nebezpečnými atd.
Obecně platí, že timelordi pracují na nejtěžším řetězci. Vytvářejí důkazy času v značených bodech a vysílají je do sítě, jakmile k nim dorazí. Naplňují také bloky tak často, jak jen mohou. Když timelord obdrží napuštěný blok, který má větší váhu než aktuální vrchol, okamžitě na něj přepne.
Časoví pánové také spusťte tři řetězce VDF paralelně. Proto jsou k urychlení blockchainu účinnou rychlostí nutné alespoň 3 rychlá jádra CPU. K vytvoření důkazů efektivním tempem budou nutná další jádra CPU, ale nemusí být tak rychlá.
Pokud timelord přijme výzvu s menší váhou, než je jeho aktuální vrchol, ignoruje ji.
Pokud timelord obdrží výzvu v pozdějším řetězci, je bezpečné ji ignorovat. Důvodem je to, že přechodem na další bod v budoucnu může timelord přeskočit infuzi bloků, a tak osamocit platné bloky.
Pokud timelord obdrží blok pro infuzi, který je pozdě (již jsme dosáhli bodu výzvy, ve kterém měl být blok infuzován), ignorujeme to, protože přechod na něj by umožnil útočníkům zadržet bloky [TODO rozšířit]. Proto hlavní operace timelorda zahrnuje udržování mezipaměti budoucích bloků, které se mají naplnit, vysílání výzevných bodů, když jsou dosaženy, a vyluhování bloků, když dosáhneme jejich výzevných bodů.
Pokud timelord obdrží výzvu se stejnou váhou jako aktuální vrchol, vybere si nedokončený blok, který viděl jako první (tj. Blok, který ještě nebyl naplněn), na rozdíl od výběru naplněného bloku (vrcholu), který viděl První. To také demotivuje zadržování bloků.
Relevantní útoky a protiopatření
51 % (46 %) útok:
51% útok zahrnuje vytvoření alternativního řetězce, který nakonec dosáhne vyšší váhy než poctivý řetězec, a nutí uživatele reorganizovat se. Klasickým útokem na velkou vzdálenost, který je také přítomen v systémech důkazu pracovních systémů, je útok 51%. Při 51% útoku vytvoří útočník s 51% síťového prostoru alternativní řetězec a nakonec ho dohoní. Mezi Chia konsensem a Proof of work existují dva hlavní rozdíly: první je ten, že útočník se může rozšířit a hospodařit na mnoha řetězcích současně. Druhým je, že pokud má útočník nejrychlejší VDF, může získat další postup do prostorutage/boost.
Rozšíření mnoha řetězců
Pokud útočník vytváří svůj vlastní soukromý řetězec, může si vybrat, který blok se dostane do řetězce výzev, a může proto vyzkoušet mnoho různých infuzí, aby získal nejlepší možný řetězec. Vzhledem k průměru 32 bloků se stejnou výzvou může útočník vyzkoušet pouze asi 32 různých kombinací (který blok má být zahrnut do řetězce výzev) a exponenciální rozvětvení pokusu o každý z nich by poskytlo útočníkovi malou podporu v prostoru (s 5 PiB mohou předstírat, že mají 6 nebo 7 atd.). Je to proto, že zkoušené alternativní řetězce jsou horší a je méně pravděpodobné, že předběhnou ten nejdelší. Toto bylo analyzováno v [1].
Skutečný prostor potřebný k provedení tohoto útoku (aby útočník získal těžší řetězec než zbytek sítě dohromady) je 46.3%, a to díky schopnosti útočníka „vyzkoušet“ různé kombinace bloků, např.ampvynechat nebo nevynechat první blok. Pokud by pro každý jednotlivý blok existoval nový důkaz vesmírné výzvy, může útočník vynásobit svůj prostor faktorem e = 2.718, kde je k předjetí sítě zapotřebí pouze 27%. Nastavením počtu bloků na 32 zvýšíte útočníkovi požadovaný prostor na 46%.
Důvod, proč se nezvýšíasinPokud bychom to posunuli dále než 32, je to následující: Pokud bychom zvýšili počet bloků na 10minutový slot na něco jako 200, pak by se zvýšila schopnost někoho s mírně rychlejším VDF osiřet ostatní. Je to proto, že doba mezi bloky by se velmi zkrátila. S 32 bloky je doba mezi bloky přibližně 15-25 sekund a k osiření je zapotřebí mnohem rychlejší VDF.
Stanfordská práce [Tse et. al., 1] dále ukazuje, že nárůstasinPočet bloků na výzvu zvyšuje bezpečnost velmi pomalu, takže se zvyšujeasintoto číslo mírně nepřináší mnoho výhod.
Pokud měl útočník manipulovat s obtížemi, může to změnit tak, aby na jeden slot dostal méně bloků odměn. Pak mohou buď zahrnout nebo vyloučit každý blok a exponenciálně rozšířit všechny řetězce současně a budou moci znásobit svůj prostor malým faktorem [1]. Není jasné, zda tento útok velmi získává, protože útočník musí změnit obtížnost, což vyžaduje obětování určité váhy. Aby se však tomuto útoku zabránilo, existuje požadavek, že pro zahrnutí bloku výzvy musí být vytvořeno alespoň 16 řetězců odměn. To přináší v nejhorším případě požadovaný prostor pro útočníka z 27% na 42%.
Rychlejší VDF a 46% prostoru
46% útok se zhoršuje, pokud je VDF útočníka rychlejší. Předpokládejme, že VDF útočníka je 2x rychlejší. Pak jejich řetězec bude schopen vytvářet výzvy a bloky dvojnásobnou rychlostí oproti zbytku sítě, což znamená, že mohou vytvořit „těžší“ řetězec se stejným množstvím prostoru.
To vyžadovalo pokles místa ze 46% na přibližně 30% celkového síťového prostoru. 0.46/0.54 = 2x/(1-x). x = 0.30. Pokud útočník nemá přístup k nejrychlejšímu VDF, nebude moci získat postup do vesmírutage.
Chia prostor / globální místo na pevném disku
Existuje obava, že pokud systém Chia nebude mít značné množství prostoru ve srovnání s dostupným volným prostorem výrobců pevných disků nebo velkých společností, bude zranitelný vůči 51% útokům. Čím více místa systém Chia zabírá, tím je síť bezpečnější. Jedním z možných scénářů je, že se objeví spousta místa, takže odměny za TB budou poměrně nízké a nebudou dostatečně významné, aby ospravedlnily nákup disků nebo odstranění obchodních dat. Vytvoření grafu navíc vyžaduje pevné množství času a peněz předem (ze současných výpočtů v beta17, asi 1kWh pro k32 nebo asi 10 centů, což je 1 $ za terabajt).
100% útok
Pokud byla spuštěna úprava obtížnosti, každý X VDF slot, na rozdíl od každých X bloků, by to umožnilo 100% útok, kde by se všichni farmáři domlouvali, aby neustále snižovali nebo zvyšovali obtížnost. Za normálního provozu je na slot 32 bloků. Při 100% útoku je obtížnost manipulována tak, že obtížnost klesá o 2, takže na slot je 64 bloků a poté jde o 4, takže na slot je 16 bloků, které se střídají navždy. To by farmářům umožnilo vydělat v průměru 64 + 16/2 = 36 blokových odměn za slot. To je důvod pro obtížné přizpůsobení na základě počtu bloků.
Krátký dosah přesídlení útok
Vytváření grafů obvykle trvá několik hodin (8 hodin u modelu K32 v beta verzi 14 s jedním jádrem), ale je velmi paralelizovatelné, takže útočníci mohou najít způsoby, jak po uvolnění výzvy vytvořit spiknutí, a poté spiknutí smazat. farma, aniž byste neustále ukládali prostor. To bude pravděpodobně vyžadovat drahý specializovaný hardware s rychlou pamětí, protože graf musí být vytvořen včas pro infuzi (méně než 30 sekund).
Pokud předpokládáme nejhorší scénář, kdy zemědělec dokáže okamžitě vytvořit zápletku, vyvstává otázka, jaké jsou náklady a jaké jsou výhody útoku? Cena je cena elektřiny, paměti, hardwaru a infrastruktury vytvoření tohoto grafu. Náklady na vytvoření 1 TB jsou v současné době řádově 1 $ v nákladech na elektřinu. Výhodou by byla stejná výhoda jako uložení tohoto grafu po dobu 80 minut (interval signálního bodu krát konstanta filtru grafu). Důvodem je, že útočník si může vybrat zápletku, která projde filtrem zápletky. Za předpokladu hodnoty 5 $ za rok na terabajt je hodnota 1TB grafu po dobu 80 minut 0.00094 $. Proto je při současném vykreslování softwaru a hardwaru ukládání pozemků výrazně levnější než jejich opětovné vytváření.
Konstanta filtru vykreslení je velmi užitečná, aby se snížilo množství vyhledávání disků, které musí farmáři udělat. S filtrem vykreslování 512 namísto 7 čtení disku na vykreslení každých 9 sekund musí farmáři udělat pouze přibližně 7 čtení každých 80 minut. Konstanta filtru vykreslení poskytuje útočníkovi multiplikátor výhody opětovného vykreslení, takže nesmí být nastavena příliš vysoko. S konstantou filtru vykreslení 512 je 1/512 grafů platných pro každou výzvu. Útočník pak může vytvářet pouze zápletky, které projdou filtrem, takže nemusí vytvářet dalších 511/512. Nastavením na 512 získáte multiplikátor 512x atd.
Rychlejší VDF (ale ne 51% útok)
S nejrychlejším VDF v systému může útočník efektivněji provést 51% útok: tj. Rozšířit svůj prostor, když hospodaří v soukromém řetězci. Pokud útočník nedosáhne celkem 51% prostoru (s VDF posílením a rozšířením mnoha řetězců, jak je uvedeno výše), užitečnost rychlejšího VDF podstatně klesá. Je to proto, že zahrnutí a vyloučení bloků nezávisí na tom, jak rychle můžete provést VDF, ale místo toho závisí na tom, zda je menší než iterace dílčího slotu. Útočník dále potřebuje prostor zbytku sítě, aby mohl postupovat, a proto musí uvolnit výzvy pro síť.
V určitých případech, kdy se bloky dostanou velmi blízko k sobě, může mít rychlejší VDF útočníkovi umožnit osamocení určitých bloků, i když to krátkodobě nezvýší odměny a z dlouhodobého hlediska existuje riziko narušení sítě. TODO: rozbalit: bram
Sobecké zemědělství
Sobecké zemědělství je útok, při kterém útočníci farmy blokují v soukromí a uvolní je, pouze když jim hrozí, že budou překonáni poctivým řetězcem. V Nakamoto PoW to poskytuje významné zisky, protože v každém okamžiku, kdy je horník před zbytkem sítě, zbylá část sítě plýtvá svou hashpower na řetěz, který nevyhraje. Podle konsensu Chia je to jiné, kvůli 30-40sekundovému zpoždění a skutečnosti, že sirotčí bloky jiných farmářů nezvyšují odměny. (??)TODO: rozbalit: bram
Farmářský úplatek na kmen
Zajímavým útokem, který [10] prozkoumal, je úplatek, který bere advantage předvídatelnosti zvolených „lídrů“ v každém slotu. Autoři analyzují důkaz o řetězci sázek a tvrdí, že když účastníci vědí, že vyhrají předem, může dojít k úplatnému útoku. Pokud účastníci předem věděli, které zápletky vyhrají, může každý uživatel útočníkovi oznámit, že je ochoten se útoku zúčastnit, a pokud dosáhne určité prahové hodnoty, může řetěz zcela reorganizovat (nebo osiřít ty, kteří se neúčastní, cenzurovat) transakce atd.). Tento útok NEPOTŘEBUJE účast většiny prostoru v síti; pouze vítězové v tomto krátkém časovém období. Navíc je nezjistitelný, protože útočník může vytvořit normálně vypadající řetěz.
Tento problém není přítomen v této revizi Chiaova konsensuálního algoritmu. Tento problém je vyřešen snížením předvídatelnosti: každý zemědělec neví jistě, zda je jeho důkaz vesmíru plně způsobilý až do bodu značení. Útočník proto musí podplatit velkou většinu prostoru, aby tento útok stáhl.
Farmer úplatek zeleň reorg útok
Vzhledem k tomu, že bloky jsou podepsány klíči PoSpace, může zemědělec teoreticky podepsat více bloků se stejným PoSpace ve stejné výšce. Útok vyžaduje, aby škodlivá strana podplatila zemědělce určitým množstvím finančních prostředků, aby jim poskytla podpis alternativního řetězce. Pokud útočník dokáže přesvědčit každého farmáře v N blocích, aby podepsal, může vrátit nebo změnit pořadí jakékoli transakce v těchto N blocích. Lze použít potenciálně důkazy o podvodu, které však nebyly vybrány, protože umožňují další útoky a komplikují chování.
Místo toho je řešením jednoduše čekat déle. Po 32 blocích (přibližně 10 minutách) je rozumný předpoklad, že alespoň jeden zemědělec dodržuje protokol a nikoli dvojité podepisování. Pokud 54% je nekoudovaných (předpoklad 46% odolnosti proti útoku), je pravděpodobnost obrácení po 32 blocích
. Navíc je tento útok detekovatelný, takže není snadné ho ukončit.
Každý uživatel si může zvolit vlastní prahovou hodnotu, pro kterou přijme transakci/blok jako konečnou. Za exampv případech, kdy se celkový síťový prostor náhle sníží, mohou být uživatelé opatrnější a nepovažují transakce za konečné, v případě, že existuje další existující vidlice z důvodu rozdělení sítě, např.ample.
Osamocení transakčních bloků za transakční poplatky
Transakce bzámky se liší od netransakčních bloků, protože obsahují transakční poplatky. Mohou překonat blokové odměny. V době psaní tohoto článku (listopad 2020) vidíme ve vrcholném deficitu 2 odměny za etický blok s 8 poplatky za etiketu za blok. V Chia to bude extrémnější, protože ne každý blok obsahuje transakce. To vede k útokům, kdy farmář na 2. místě ignoruje 1. místo ve snaze vyhrát blok transakcí. Pokud druhý blok přijde méně než 2 sekund po prvním, neurčí předchozí blok, a proto 30. místo nemůže osiřít první. Třetí místo mohlo oba osiřít, ale nikdo by tento řetězec nesledoval, protože je kratší.
Pokud však do 30 sekund od prvního bloku nejsou žádné bloky, druhý by mohl osiřít první, ale musel by přesvědčit další blok, aby farmoval na svém alternativním řetězci. Snadnější útok by byl, kdyby útočník ovládal 1. a 2., v takovém případě by mohl ignorovat první a přesto být delší. Tyto osiřelé útoky neumožňují útočníkovi ukrást odměny, ale spíše mu umožňují mírně snížit obtížnost. Jelikož jsou velmi situační a vyžadují hodně prostoru, pokus o tento útok pravděpodobně poškodí síť více než potenciální zisk pro útočníka.
Míra sirotků
V konsensu Chia lze do blockchainu zahrnout dva konkurenční bloky ve stejnou dobu, aniž by o sobě věděli. (I když nanejvýš jeden může být blok). Protože všechny transakční bloky jsou také bloky, jsou oba zahrnuty do řetězce, což má za následek řetězec s vyšší váhou. To znamená, že počet osiřelých v Chia bude v podstatě nulová, za předpokladu nízké latence sítě. Pokud latence sítě překročí zpoždění infuze (30-40 sekund), je téměř zaručeno osiřelí bloku, takže jde spíše o krokovou funkci. To je v kontrastu s Nakamoto-PoW, u kterého je vysoká frekvence osiření, pokud dojde ke zpoždění sítě, a plynule klesá, jak se stav sítě zlepšuje, ale nikdy nedosáhne nuly.
Analýza
Bezpečnost
Bezpečnost je podobná jako u jiných Nakamoto konsensuálních algoritmů, jako je bitcoin. Neexistuje žádná zaručená konečnost, ale čím více potvrzení transakce má, tím je bezpečnější. Transakce vyžaduje určitý počet potvrzení, aby příjemce mohl předpokládat, že ji nelze znovu sloučit, pod <46%(* vdf advantage) domluvný předpoklad. Protože zemědělci mohou teoreticky podepsat více bloků ve stejné výšce, mělo by být v Chia použito více potvrzení než v bitcoinech. S rychlostí 32 bloků za 10 minut je však 6 potvrzení v bitcoinu ekvivalentní 192 v Chia, což je více než dost na to, aby byly považovány za bezpečné. Dokud se jeden z těchto 192 farmářů chová dobře (nikoli dvojí podpis), nebude tato transakce zrušena.
Stojí za zmínku, že neexistuje požadavek na 54% poctivého zemědělského prostoru, ale 54% bez tajných dohod. Odchýlení se od protokolu zemědělci hledající zisk získávají velmi málo.
Existuje další předpoklad, že alespoň jeden rychlý timelord musí být připojen k nekoludované části sítě a že timelord útočníka není výrazně rychlejší.
Živost
Živost systému konsensu Chia je jednou z jeho největších sil. Stejně jako bitcoin i systém Chia pokračuje v pokroku, i když většina prostoru přejde do režimu offline. Na rozdíl od bitcoinu však systém v tomto případě výrazně nezpomaluje, protože ne všechny bloky jsou bloky transakcí. Pokud tedy mnoho účastníků přejde do režimu offline, propustnost transakcí příliš neklesne. Bude pokračovat, i když je online pouze 1 zemědělec, i když bude mnoho prázdných slotů, protože transakční blok lze vytvořit pouze v případě, že je pod prahovou hodnotou iterací dílčího slotu.
Samozřejmě v případě dlouhodobého rozdělení sítě bude mít za následek, že je třeba zvolit jeden řetězec, takže v tomto případě může dojít k velkým změnám. Přesto si síť vybírá těžší řetězec, podobný PoW.
Srovnání s BFT konsensuální algoritmy
Důkaz prostoru lze také použít jako mechanismus odolný vůči Sybil, aby bylo možné zavést systém B.systém yzantského konsensu (k-agreement). Filecoiny a mnoho důkazů o systémech sázek využívá aspekty byzantského konsensu.
Výhody a nevýhody používání konsensu Chia Nakamoto vs byzantského konsensu, které se liší od algoritmu k algoritmu:
- + Mnohem jednodušší
- + Žádný požadavek na registraci
- + Žádný požadavek na škálovatelnost (škálovatelné pro miliony zemědělců)
- + Odolnější vůči cenzuře. Pokud malá část zemědělského prostoru necenzuruje, nakonec se můžete dostat do blockchainu.
- + Žádné požadavky na živost, potenciálně méně síťových předpokladů
- + Plně objektivní (Uzel může porovnávat řetězec 1 a řetězec 2 a okamžitě vědět, který z nich je těžší). Není třeba kontrolních bodů s konsensem ⅔.
- + Lepší podpora klientů [11]
- – Žádná konečnost, pouze pravděpodobnostní.
- – Je třeba počkat déle na potvrzení transakce (související s žádným konečným termínem).
- – Méně konzistentní časy bloků a propustnost transakcí
Srovnání s Nakamoto PoW
- + Různé zdroje. PoSpace je odolný vůči ASIC, a proto se zemědělství může účastnit kdokoli. Doufejme, že decentralizovanější.
- + Snadné sloučení zemědělství. Ostatní kryptoměny mohou používat stejný formát a každý může sdílet prostor. Pravděpodobně ten nejlepší bude jediný zabezpečený, protože farmáři mohou útočit na menší.
- + Minimální použitá energie, protože pouze několik uzlů provozuje VDF a ty nejsou paralelizovány. Velmi nízké mezní náklady do mého.
- + Konzistentnější časy blokování transakcí (jedna za ~ 1 min).
- + Méně náchylné k sobeckým těžařským útokům
- + Menší počet osiřelých a rozdvojení, protože bloky lze zahrnout paralelně.
- + Při zmenšování prostoru stále postupuje stejnou rychlostí, protože transakce zahrnuje pouze 1/16 bloků. Konsenzus PoW nakamoto zpomaluje.
- – Nevýhodou více potenciálních útočníků (velké společnosti). Hardware má obecný účel, a proto by útočníci mohli přepínat mezi farmářstvím, útokem a používáním pro ukládání dat.
- – Zrychlení VDF by mohlo dát prostor advantage pro někoho, kdo útočí na síť.
- – Více složitosti díky dílčím slotům a VDF, potenciálně více kryptografických předpokladů
Srovnání s dokladem o podílu
Tento konsenzuální algoritmus lze také použít k prokázání sázky, kdy jsou vesmírní farmáři nahrazeni sázejícími, kteří v systému vlastní mince. Výhodou by byla schopnost sekat (smazat podíl lidí) a farmáři by měli „kůži ve hře“, ale existují určité obavy, pokud se použije důkaz o podílu. (+ znamená výhodu pro využití prostoru vsázky).
- + Útočník může svůj sázku převést na někoho jiného, ale před převedením sázky roztáhněte řetěz. V tomto alternativním řetězci má útočník stále všechny své sázky, a proto může řetěz posunout. Otázka „nic v sázce“ se v PoStake liší než v PoSpace, protože vytvoření PoSpace vyžaduje fyzický prostředek (místo na pevném disku), zatímco vytvoření PoS vyžaduje pouze klíč.
- + Útočník může zaručit svůj podíl na celém koláči tím, že vsadí své odměny (bohatí zbohatnou), protože celkový počet mincí je omezený.
- + Tam mohou nastat situace, kdy útočník může obrousit mnoho různých způsobů převodu kůlu. Možná to lze zmírnit vyžadováním dlouhého období před aktivací sázky.
- + Je nutná registrace, dokud se nezaregistrujete, nemůžete se účastnit dokladu o vkladu. To snižuje soukromí a škálovatelnost (kolik lidí se může zapojit).
- + Vyšší překážka vstupu: bezpečnostní vklady a sekání ztěžují účast malých uživatelů. Sekání může být pro účastníky sítě obrovským rizikem. Centralizovaní správci vedou k méně distribuované skupině účastníků.
- + Nějaký předpoklady [11] jsou povinni provádět lehké klientské synchronizace jako důkaz o vkladu.
- – Vzhled ve hře: s PoSVezměte na vědomí, že shoda může snížit podíl lidí a vyžaduje také určité investice do systému (vystavení ceně). V Proof of space mohou být pevné disky použity pro jiné účely a neexistuje schopnost „sekat“ hardware lidí.
Reference
- Vivek Bagaria, Amir Dembo, Sreeram Kannan, Sewoong Oh, David Tse, Pramod Viswanath, Xuechao Wang, Ofer Zeitouni, Důkaz o sázce na protokoly s nejdelším řetězcem, bezpečnost vs. předvídatelnost [Stáhnout]
- Aggelos Kiayias, Alexander Russell, Bernardo David, Roman Oliynykov, Ouroboros: A Prokazatelně bezpečný protokol Blockchain Proof-of-Stake [Stáhnout]
- Bram Cohen a Krzysztof Pietrzak, Chia Network Blockchain
- Benedikt Bunz, Lucianna Kiffer, Loi Luu a Mahdi Zamani, 2019-226 [PDF]
- Krzysztof Pietrzak, Efektivní ověřitelné funkce zpoždění [Stáhnout]
- Benjamin Wesolowski, Jednoduché ověřitelné funkce zpoždění [Stáhnout]
- Stefan Dziembowski, Sebastian Faust, Vladimir Kolmogorov a Krzysztof Pietrzak, Proofs of Space [Stáhnout]
- Hamza Abusalah, Joel Alwen, Bram Cohen, Danylo Khilko, Krzysztof Pietrzak a Leonid Reyzin, 2017-893 [Stáhnout]
- síť Chia, Chia Proof of Space Construction
- Soubhik Deb, Sreeram Kannan, David Tse, Dostupnost a nepředvídatelnost důkazu o práci PoSAT, bez práce [Stáhnout]
- Alexandr Skidanov, Light klienti v Proof of Stake Systems
– –
Reference
- Uživatelská příručkamanual.tools