Gruppesignaturordninger med distribueret sporbarhed (eller hvordan man åbner en signatur retfærdigt)

Billede af Anne-Laure Delva

I dette indlæg vil jeg diskutere gruppesignaturskemaer og specifikt gruppesignaturer med distribueret sporbarhed og vise hvorfor dette er et interessant kryptografisk værktøj til distribuerede systemer ved hjælp af Helix konsensusprotokollen som et eksempel på, hvordan disse underskrifter kan bruges.

Gruppesignaturer, der er indført af Chaum og Van Heyst, tillader et medlem af en gruppe at underskrive anonymt på gruppens vegne, samtidig med at de giver mulighed for at spore underskriverens identitet i særlige tilfælde. Det vil sige, gruppedeltagere kan ved hjælp af bekræftelsesnøgler kontrollere, at en signatur faktisk blev oprettet af nogen i gruppen, men de kan ikke fortælle af hvem. I tilfælde af tvister eller forkert adfærd bruger en sporingsmyndighed sin sporingsnøgle til at spore underskriveren tilbage.

For nogle bruges sager, der har en enkelt sporingsmyndighed, fungerer. I mange andre tilfælde er der dog ikke en enkelt autoritet, som alle stoler på for at tilbagekalde anonymitet, og det er derfor mere fornuftigt at opdele ansvaret mellem flere myndigheder. Denne indsigt fører Benjumea et al. at designe “Fair sporbare multi-group signaturer”. I deres skema er det muligt at åbne en underskrift, hvis flere retfærdighedsmyndigheder samarbejder. Fairness myndighederne kan også samarbejde om at afsløre en sporingsnøgle for en bruger under mistanke. Denne nøgle kan bruges til at kontrollere, om en meddelelse blev underskrevet af en bestemt bruger uden at ophæve anonymiteten fra de andre brugere.

Indtil i dag er der flere signaturskemaer med distribueret sporbarhed, der adskiller sig lidt med hensyn til funktionaliteten, de tilbyder, såsom "Demokratiske gruppesignaturer med tærskelsporbarhed" af Zheng et al., Og "Kortgruppesignaturer med distribueret sporbarhed" af Blomer et al. al., som jeg vil uddybe nærmere.

Gruppesignaturer med distribueret sporbarhed i Helix

Hos Orbs udvikler vi Helix, vores originale konsensusprotokol, der er specielt designet til at sikre, at transaktioner ordnes på en retfærdig måde. Det vigtigste i Helix er, at netværksnoder ikke kan manipulere, hvilke transaktioner der er inkluderet i en ny blok eller deres ordre. Især kan de ikke censurere specifikke noder eller brugere og kan ikke favorisere deres egne transaktioner på en væsentlig måde. Du kan læse mere om Helix i dette blogindlæg.

En vigtig bidragyder til retfærdighed i Helix er, at brugerne krypterer deres transaktioner og dekrypterer derefter de originale transaktioner først, når de er knyttet til blockchain. Kryptering af transaktionerne kommer til en pris, især øger det behovet for at straffe brugere og noder, der sender uønsket til netværket i stedet for gyldige transaktioner. Derfor har vi brug for en mekanisme til at afsløre, hvilke netværksnoder der er ansvarlige for problematiske transaktioner for at formindske deres omdømme.

Vi kan gøre dette ved hjælp af gruppesignaturer med distribueret sporbarhed ved at lade hver netværksknude fungere som en retfærdighedsmyndighed og kræve et tærskelantal myndigheder for at åbne og spore underskrifter.

Jeg henvender mig nu til at beskrive den strøm, en transaktion foretager i Helix, og hvordan gruppesignaturer med distribueret sporbarhed kan bruges. Hvis du er mindre interesseret i denne særlige strøm, kan du springe videre og læse om kandidatsignaturskemaet. Strømmen starter, når en bruger opretter en transaktion, krypterer den og sender den til en netværksknudepunkt, den er tilknyttet. Netværksnoden underskriver derefter transaktionen ved hjælp af en retfærdig sporbar gruppesignaturskema og videresender transaktionen til netværket. Før blokering af transaktionen indgår i en blok, kontrollerer, at transaktionen har en gyldig gruppesignatur. Når blokken er tilføjet til blockchain, starter vi en proces (som kræver et tærskelantal af noder) til dekryptering af transaktionerne i blokken. Om nødvendigt (for eksempel viser det sig at den dekrypterede transaktion er ugyldig) samarbejder et tærskelantal knudepunkter og åbner signaturen for at afsløre hvilken knude, der underskrev denne transaktion.

En anden mulig mulighed for flowet er at åbne underskrifterne som standard parallelt med dekrypteringsprocessen. Fordelen ved at åbne underskriften som standard er, at vi på denne måde ikke har brug for at starte en speciel protokol til defekte transaktioner og i stedet få denne proces udført som en del af den normale strøm. En anden mulighed er at inkorporere processen med at afsløre en sporingsnøgle (brugt til at spore en bestemt misforstående knude). Vi bemærker også, at nogle gruppesignaturskemaer også har kravfunktionalitet, hvor underskrivere kan kræve underskriften som tilhørende dem, som vi ikke brugte i ovennævnte flow.

Fra vores strøm trækker vi de sikkerhedskrav, vi søger:

  • Anonymitet: En gruppesignatur afslører ikke identiteten af ​​det medlem, der producerede det, medmindre mere end et tærskelantal fairness myndigheder samarbejder.
  • Sporbarhed opretholder anonymitet: Hvis en node hævder, at den er ophavsmanden til en underskrift, eller dens identitet blev afsløret som en del af sporingsalgoritmen, omfatter dette ikke privatlivets fred for de resterende tidligere eller fremtidige gruppesignaturer, som den udsteder.
  • Frakoblingsbarhed: Det er umuligt at relatere to eller flere underskrifter, som de produceres af den samme underskriver uden samarbejde med et tærskelantal myndigheder.
  • Ikke-rammerbarhed: Selv hvis gruppen og sporingsledere er sammen med resten af ​​gruppen, kan de ikke ramme et ærligt gruppemedlem. En bruger kan være indrammet på to forskellige måder: myndighederne og andre brugere kan konstruere en signatur, der åbner eller sporer for en uskyldig bruger (dette krav kaldes også stærk eksploubarhed), eller de kan kræve en signatur, der blev genereret af brugeren som deres egen.

Andre vigtige krav er: at støtte dynamisk ændring af underskrivere og sporere og ikke kræve betroet opsætning.

Kandidatunderskrift

En af de mest effektive signaturskemaer, der i øjeblikket er kendt, er af Boneh, Boyen og Shacham (BBS), som de introducerede i deres papir “Kortgruppesignaturer.” Deres underskriftsskema mangler et par egenskaber, der kræves til vores brug. For det første giver deres gruppesignaturskema ikke distribueret sporbarhed, men kræver snarere en centraliseret sporingsmyndighed. Derudover tilfredsstiller deres ordning ikke egenskaben "sporbarhed opretholder anonymitet" (fordi det ikke giver CCA-anonymitet, forklaret senere), hvilket er afgørende i vores omgivelser. Desuden kræver nøglegenerationsprocessen en betroet forhandler. Heldigvis er der opfølgningspapirer, der tager sig af de to første spørgsmål. Ideerne kan kombineres for at opnå en CCA-anonym signaturordning, der tilbyder distribueret sporbarhed. At slippe af med den betroede forhandler er et problem, der skal løses, hvis vi vælger denne ordning.

I et papir af Blomer et. al, "Kortgruppeunderskrifter med distribueret sporbarhed," udvides BBS-ordningen til at understøtte distribueret sporbarhed. Dette opnås på følgende måde. I BBS-skemaet er en del af signaturen en kryptering af (del af) den hemmelige nøgle, og åbning udgør en dekryptering af denne chiffertekst. I papiret fra Blomer ændrer de krypteringen til tærskelkryptering. Åbning af en signatur består af to processer, den første producerer en åben andel fra underskriften, og den anden er at kombinere et tærskelantal aktier for at dekryptere tilbage underskriverens nøgle. En anden ændring, de foretager, er at tilføje et yderligere element til den hemmelige nøgle, som kun er kendt af brugeren og ikke for retfærdighedsmyndighederne. Dette garanterer, at fairness myndigheder ikke kan underskrive på vegne af andre medlemmer.

Ordningen fra BBS giver CPA-anonymitet. Groft sagt betyder dette, at underskrifterne er anonyme, forudsat at modstanderen ikke får forespørgsel om sporingssignaturprotokollen. Denne antagelse er dog ikke berettiget i vores indstilling, da en modstander kan producere underskrevne meddelelser og sende dem til blockchain, og bagefter spores de som en del af vores normale strøm. Derfor kræver vi, at underskriftsskemaet er CCA-anonymt, hvilket betyder, at selv en modstander, der har adgang til open \ tracing-protokollen, ikke kan spore underskriften uden at samarbejde med et tærskelantal fairness myndigheder. I sin artikel, ”Kommunikationseffektiv ikke-interaktiv bevisviden med online-ekstraktører,” introducerer Fischlin en metode til at omdanne signaturskemaet af BBS til at være CCA-sikkert. Dette fungerer ved at tilføje komponent til signaturen, der genererer et ikke-interaktivt nul-viden bevis på viden til de tilfældige værdier, der bruges ved kryptering. Uformelt sikrer dette, at modstanderen ikke får meget ved at interagere med sporingsprotokollen, da hun for at underskrive en gyldig meddelelse måtte kende de tilfældige værdier, der blev brugt til at generere krypteringen i første omgang.

Størrelse på signaturen

Længden af ​​BBS-gruppesignaturskemaet under de parametre, der er foreslået af forfatterne, er 1.533 bits. Dette kan sammenlignes med størrelsen på RSA-signatur, som er 1.024 eller 2.048 bit lang for underskrifter med lignende sikkerhed. Tilføjelse af distribueret sporbarhed gør ikke signaturen længere, men kompleksitetsmæssigt kræver det beregning af lagrange polynomisk interpolering for at kombinere aktier.

Hvad angår beviset for viden på nul, er dette relativt stort i størrelse og er dyrt at beregne. For de parametre, der er foreslået i papiret, er længden på 3.520 bit, hvilket svarer til en signaturlængde på 5.053 bit i alt.

Størrelsen på signaturaktierne er 340 bit pr.

Jeg vil gerne takke Steven Goldfeder for nyttige diskussioner om emnet.

* Læs Orbs hvidbøger: https://www.orbs.com/white- wallpaper

Deltag i Orbs-samfundet:

  • 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