Systém pro elektronický podpis bloků
-----------------------------------
Release skupina - vygeneruje veřejný U a soukromý klíč R, veřejný klíč zveřejní
Uživatel - má seznam preferovaných release skupin W s kvótou Qw, 0<=Qw<=1, skupin které nevadí G, zakázaných release skupin B, a diskový prostor vyhrazený pro sdílení D. Minimálně Qw*D úložného prostoru musí být použito pro sdílení bloků podepsaných některým podpisem z W (whitelist). Bloky podepsané některou skupinou z W mají vždy přednost před bloky z G a pokud chybí místo pro blok od W tak je odstraněn blok podepsaný některou skupinou z G. Priority by šly asi vymyslet chytřeji, teď to nebudu řešit do detailu.
Upload souboru - rozdělí soubor S na N bloků S1...Sn, pro každý blok Si vypočítá hash Hi, každý hash Hi zašifruje svým soukromým R klíčem a vzniknou podpisy X1...Xn, vytvoří metadata M (ty teď neřeším) a rozdistribuje uspořádané ntice (Si, Hi, Xi) mezi uzly sítě které tvoří distribuovanou hashovací tabulku. Jako klíč pro vyhledání ID peera který bude sdílet konkrétní blok Si se může použít třeba U||Si kde || značí konkatenaci, nebo jiná vhodní možnost. Aby peer blok přijak ke sdílení musí být podepsaný některým z podpisů z W nebo G, peer tedy vypočítá hash Ti uploadnutého bloku a pomocí veřejného klíče dané zkupin U rozšifruje Xi a porovná je, tedy pouze poku sha1(Si)==Hi==decrypt(U,Xi) tak tento blok přijme ke sdílení.
Seznam důvěryhodných release skupin - libovolná release skupina může elektronicky podepsat veřejné klíče jiných release skupin a tím vytvořit seznam podle nich důvěryhodných skupin, takže participant sítě si stáhne seznam ověřených skupin od jím ověřené skupiny. Toto půjde rozšířit o rekurzi, po stáhnutí důvěryhodného seznamu se tyto skupiny přidají do W nebo G a klient se pokusí najít další seznamy podepsané libovolnou důvěryhodnou skupinou z W nebo G a takto pokračuje dokdu nenajde všechny seznamy. Kromě takovéto rekurze se může pokusit o získání těchto seznamů ale přidá pouze ty release grupy, které jsou podepsnány nadpoloviční většinou ostatních. Tudíž release grupy by se navzájem ověřily a potvrdily vzájemnou důvěryhodnost. Podobně by mohly zveřejňovat blacklist, kde by ona funkce majority měla větší uplatnění - pokud je někdo na blacklistu všech těch které považuji za důvěryhodné, tak jeho bloky klient odmítne. Toto umožní dodatečné zabanovámí skupiny která časem "zlotřila" (grabující děcka co začaly šířit bordel atp.) nebo její kvalita značně poklesla (zde by mohl být blacklist konkrétních souborů potvrzených release skupinami).
Distribuce metadat M by se řešila postranními kanály zajišťujícími anonymitu, jako je tor. Metadata M jsou totiž mnohem menší než bloky Si a pro větší bezpečnost by mohly být nabízeny v úplně jiné DHT síti.
Systém elektronických podpisů si klade za cíl přiblížit takovéto "blokové" řešení torrentům, kdy uživatelé sdílí pouze obsah z oblasti jejich zájmu.Hodně privátních torrent trackerů odměnuje uživatele za adopci obsahu který má málo seedů, jako jsou třeba scany 10 let starého komiksu, takže se zde dokonce nabízí možnost vytvořit virtuální anonymní obdobu privátních trackerů, kdy by nějaká skupina administrátorů mohla souborům přidělovat kvóty na redundanci a vynutit tak sdílení vzácného obsahu. Opět by se to řešilo pomocí elektronického podpisu, bylo by ale nutné vyřešit vhodný algoritmus případné replikace.