Schémata skupinového podpisu s distribuovanou sledovatelností (nebo jak spravedlivě otevřít podpis)

Obrázek Anne-Laure Delva

V tomto příspěvku chci diskutovat o schématech skupinových podpisů, konkrétně o skupinových podpisech s distribuovanou sledovatelností, a ukázat, proč je to zajímavý kryptografický nástroj pro distribuované systémy, přičemž jako příklad toho, jak lze tyto podpisy použít, používá konsensuální protokol Helix.

Skupinové podpisy, které zavedli Chaum a Van Heyst, umožňují členům skupiny podepsat anonymně jménem skupiny, přičemž ve zvláštních případech nabízí možnost sledovat totožnost podpisujícího. To znamená, že účastníci skupiny mohou pomocí ověřovacích klíčů zkontrolovat, že podpis skutečně vytvořil někdo ve skupině, ale nemohou zjistit, kým. V případě sporů nebo nesprávného chování použije sledovací orgán svůj sledovací klíč ke zpětnému dohledání signatáře.

Pro některé případy použití s ​​jediným sledovacím orgánem funguje. V mnoha jiných případech však neexistuje jediná autorita, kterou by všichni doufali v odvolání anonymity, a proto je rozumnější rozdělit odpovědnost mezi několik autorit. Toto pochopení vede Benjumea et al. navrhnout „Spravedlivé sledovatelné víceskupinové podpisy“. V jejich systému je otevření podpisu možné, pokud spolupracují více orgány spravedlnosti. Úřady pro spravedlnost mohou také spolupracovat na odhalení vyhledávacího klíče uživatele v podezření. Tento klíč lze použít ke kontrole, zda byla zpráva podepsána určitým uživatelem, aniž by došlo ke zrušení anonymity ostatních uživatelů.

K dnešnímu dni existuje několik podpisových schémat s distribuovanou sledovatelností, které se mírně liší, pokud jde o funkčnost, kterou nabízejí, jako například „Demokratické skupinové podpisy s sledovatelností prahových hodnot“ od Zheng et al. A „Krátké skupinové podpisy s distribuovanou sledovatelností“ od Blomer et al., na kterém se budu dále zabývat.

Skupinové podpisy s distribuovanou sledovatelností v Helixu

Ve společnosti Orbs vyvíjíme náš původní konsensuální protokol Helix, který je speciálně navržen pro zajištění spravedlivého objednávání transakcí. Klíčovým konceptem v Helixu je to, že síťové uzly nemohou manipulovat, které transakce jsou zahrnuty do nového bloku nebo jejich řazení. Zejména nemohou cenzurovat konkrétní uzly nebo uživatele a nemohou výrazně upřednostňovat své vlastní transakce. V tomto příspěvku na blogu si můžete přečíst více o Helixu.

Hlavním přispěvatelem spravedlivosti v Helixu je, že uživatelé šifrují své transakce a poté dešifrují původní transakce až poté, co jsou připojeni k blockchainu. Zašifrování transakcí přichází za cenu, zejména zvyšuje potřebu potrestat uživatele a uzly, kteří odesílají nevyžádanou poštu do sítě namísto platných transakcí. Z tohoto důvodu potřebujeme mechanismus pro odhalení, které síťové uzly jsou odpovědné za problematické transakce, abychom snížili jejich pověst.

Toho můžeme dosáhnout pomocí skupinových podpisů s distribuovanou sledovatelností, protože každý síťový uzel bude sloužit jako oprávnění spravedlnosti a bude vyžadováno prahové množství oprávnění k otevření a sledování podpisů.

Nyní se věnuji popisu toku, který transakce provádí v Helixu a jak lze použít skupinové podpisy s distribuovanou sledovatelností. Pokud vás tento konkrétní tok méně zajímá, můžete přeskočit dopředu a přečíst si schéma podpisu kandidáta. Tok začíná, když uživatel vytvoří transakci, zašifruje ji a odešle ji do síťového uzlu, ke kterému je přidružena. Síťový uzel pak transakci podepíše pomocí spravedlivého sledovatelného schématu podpisu skupiny a odešle transakci do sítě. Před zahrnutím transakce do bloku tvůrce bloku zkontroluje, zda má transakce platný podpis skupiny. Poté, co je blok připojen k blockchainu, zahájíme proces (který vyžaduje prahový počet uzlů) pro dešifrování transakcí v bloku. V případě potřeby (například se dešifrovaná transakce ukáže jako neplatná) spolupracuje prahový počet uzlů a otevře podpis, aby se zjistilo, který uzel tuto transakci podepsal.

Další možnou možností toku je otevření podpisů ve výchozím nastavení paralelně s procesem dešifrování. Výhodou otevření podpisu ve výchozím nastavení je, že tímto způsobem nemusíme iniciovat speciální protokol pro vadné transakce a místo toho nechat tento proces provést jako součást normálního toku. Další možností je začlenit proces odhalení trasovacího klíče (používá se ke sledování konkrétního chybného uzlu). Také si všimneme, že některá schémata skupinového podpisu mají také funkčnost deklarace, ve které mohou signatáři nárokovat podpis jako na ně, který jsme ve výše uvedeném toku nepoužili.

Z našeho toku vyvodíme bezpečnostní požadavky, které hledáme:

  • Anonymita: Skupinový podpis neodhaluje totožnost člena, který jej vytvořil, ledaže by spolupracoval více než prahový počet orgánů spravedlnosti.
  • Sledovatelnost udržuje anonymitu: Pokud uzel tvrdí, že je původcem podpisu nebo byla jeho identita odhalena jako součást trasovacího algoritmu, nepředstavuje to soukromí zbývajících minulých nebo budoucích skupinových podpisů, které vydává.
  • Nespojitelnost: Není možné spojit dva nebo více podpisů s podpisem stejného podpisovatele, aniž by spolupracovalo s určitým počtem orgánů.
  • Bezchybnost: I když se skupina a vedoucí trasování střetnou se zbytkem skupiny, nemohou sestavit čestného člena skupiny. Uživatel může být orámován dvěma různými způsoby: úřady a další uživatelé mohou vytvořit podpis, který otevírá nebo sleduje nevinného uživatele (tento požadavek se také nazývá silná ospravedlnění), nebo si mohou nárokovat podpis, který vygeneroval uživatel jako jejich vlastní.

Další důležité požadavky jsou: podpora dynamické změny signerů a indikátorů a nevyžadující důvěryhodné nastavení.

Schéma podpisu kandidáta

Jeden z nejúčinnějších schémat podpisů, který je v současnosti znám, jsou Boneh, Boyen a Shacham (BBS), které uvedli ve svém příspěvku „Krátké skupinové podpisy“. Jejich schéma podpisů postrádá několik vlastností, které jsou pro naše použití potřebné. Zaprvé, jejich schéma skupinového podpisu nezajišťuje distribuovanou sledovatelnost, ale spíše vyžaduje centralizovanou sledovací pravomoc. Kromě toho jejich systém nesplňuje vlastnost „sledovatelnost zachovává anonymitu“ (protože neposkytuje anonymitu CCA, vysvětleno dále), což je v našem nastavení zásadní. Proces generování klíčů navíc vyžaduje důvěryhodného prodejce. Naštěstí existují první dokumenty, které se starají o první dva čísla. Myšlenky lze kombinovat tak, aby bylo dosaženo schématu anonymního podpisu CCA, který nabízí distribuovanou sledovatelnost. Zbavit se důvěryhodného prodejce je problém, který je třeba vyřešit, pokud si zvolíme tento systém.

V článku Blomer et. al, „Krátké skupinové podpisy s distribuovanou sledovatelností“, je schéma BBS rozšířeno o podporu distribuované sledovatelnosti. Toho je dosaženo následujícím způsobem. Ve schématu BBS je součástí podpisu šifrování (část) tajného klíče a otevírání představuje dešifrování tohoto šifrového textu. V článku Blomera mění šifrování na prahové šifrování. Otevření podpisu se skládá ze dvou procesů, z nichž první vytváří otevřenou sdílenou složku z podpisu a druhý kombinuje práh počtu sdílených položek, aby dešifroval zpět podpisovací klíč. Další úpravou, kterou provedou, je přidání dalšího prvku do tajného klíče, který je znám pouze uživateli a nikoli orgánům spravedlnosti. To zaručuje, že orgány spravedlnosti se nemohou podepsat jménem ostatních členů.

Schéma BBS poskytuje anonymitu CPA. Zhruba to znamená, že podpisy jsou anonymní za předpokladu, že protivník nezíská dotaz na protokol trasovacích podpisů. Tento předpoklad však v našem nastavení není opodstatněný, protože protivník může produkovat podepsané zprávy a posílat je do blockchainu a poté budou vysledovány jako součást našeho normálního toku. Proto vyžadujeme, aby schéma podpisu bylo anonymní s CCA, což znamená, že ani protivník, který má přístup k otevřenému \ trasovacímu protokolu, nemůže dohledat podpis bez spolupráce s prahovým počtem orgánů spravedlnosti. Ve svém příspěvku „Neinteraktivní průkazy znalostí o efektivitě komunikace s online extraktory“ zavádí Fischlin metodu transformace schématu podpisu pomocí BBS tak, aby byla zabezpečena pomocí CCA. To funguje přidáním komponenty k podpisu, který generuje neinteraktivní důkaz nulových znalostí o znalostech pro náhodné hodnoty použité při šifrování. Neformálně to zajišťuje, že protivník nezíská moc z interakce s trasovacím protokolem, protože pro podepsání platné zprávy musela nejprve znát náhodné hodnoty použité pro generování šifrování.

Velikost podpisu

Délka schématu podpisu skupiny BBS podle parametrů navržených autory je 1 533 bitů. To je srovnatelné s velikostí podpisu RSA, což je 1 024 nebo 2 048 bitů pro podpisy s podobným zabezpečením. Přidání distribuované sledovatelnosti neznamená prodlužování podpisu, ale složitost moudrého vyžaduje vypočítat lagrangeovou polynomiální interpolaci, aby se sloučily sdílené položky.

Pokud jde o důkaz o nulových znalostech, jedná se o relativně velkou velikost a výpočet je nákladný. Pro parametry navrhované v tomto článku je délka 3 520 bitů, což odpovídá délce podpisu celkem 5 053 bitů.

Velikost sdílených podpisů je 340 bitů na akcii.

Chtěl bych poděkovat Stevenovi Goldfederovi za užitečné diskuse na toto téma.

* Přečtěte si bílé knihy Orbs: https://www.orbs.com/white-papers

Připojte se k komunitě Orbs:

  • Telegram: https://t.me/orbs_network
  • Twitter: https://twitter.com/orbs_network
  • Reddit: https://www.reddit.com/r/ORBS_Network/
  • GitHub: https://github.com/orbs-network