Vad ett nollkunskapsbevis gör
Att bevisa något innebär vanligtvis att visa bevisen: ange ett lösenord eller lämna över ett ID-kort. Det kan avslöja mer än den andra personen behöver veta.
Ett nollkunskapsbevis är en kryptografisk metod som ändrar detta. En person, bevisaren, visar ett exakt påstående för en annan, verifieraren, utan att avslöja hemligheten som gör påståendet sant. Verifieraren får svaret de behöver – till exempel att du uppfyller ett ålderskrav – men inte din födelsedag, adress eller ditt dokumentnummer.
Det är inte ett vagt löfte om integritet. Ett bevis måste utformas för ett exakt påstående, och en bra design gör fusk oerhört osannolikt.
Grottexemplet
Föreställ dig en grotta med två stigar som möts bakom en låst dörr. Dörren öppnas bara med ett hemligt ord. Du säger att du kan det, men du vill inte säga det högt.
Du går in via endera vägen medan din vän väntar utanför. Din vän ropar sedan ut vilken väg de vill att du ska komma tillbaka via. Kan du ordet kan du öppna dörren inne i grottan och återvända via valfri väg. Om du bara gissar har du bara femtio procents chans att hamna på rätt sida.
Upprepa testet många gånger med ett nytt, oförutsägbart val varje gång. Tio lyckade omgångar lämnar en bluffare med ungefär en på 1 000 chans att ha haft tur. Din vän får starka bevis för att du kan ordet, men hör det aldrig.
Från grotthistoria till riktig programvara
Verkliga bevis använder matematik i stället för en grotta, men integritetsmålet är detsamma. De kan visa att en transaktion följer reglerna utan att avslöja alla dess detaljer. De kan också låta ett litet bevis stå för ett stort antal kontroller, vilket kan göra vissa system snabbare att verifiera.
Digitala legitimationer är en annan praktisk användning. Istället för att ladda upp ett helt ID till varje tjänst skulle en väldesignad legitimation kunna svara bara på den fråga som ställs: "Är den här personen över 18?" eller "Har hen den här kvalifikationen?"
Detaljerna spelar roll. Ett bevis skyddar bara den information det byggdes för att dölja. Appen runt omkring kan fortfarande samla in data, identifiera dig eller göra ett dåligt säkerhetsval någon annanstans.
Nollkunskapsbevis kontra nollkunskapskryptering
Uttrycket "nollkunskap" används också inom molnlagring. Det är en annan idé. Nollkunskapskryptering betyder att lagringsleverantören inte kan läsa dina filer, eftersom den inte har dekrypteringsnycklarna.
Ett nollkunskapsbevis svarar på en fråga utan att avslöja hemligheten bakom svaret. Nollkunskapskryptering håller lagrade filer oläsliga för en leverantör. Båda kan förbättra integriteten, men de går inte att använda som ersättning för varandra.
En praktisk integritetslektion
Ett nollkunskapsbevis är en bra påminnelse om att bara dela den information som behövs för en uppgift. Det gör dig inte anonym och säkrar inte varje del av en app. En tjänst kan fortfarande veta att du anslöt, när du gjorde det, och annan data utanför beviset.
Sealby behöver inga nollkunskapsbevis, eftersom det varken har konto eller server som ber dig bevisa något. Filer krypteras på din iPhone. För vardaglig integritet är den praktiska frågan enkel: vad behöver den här tjänsten egentligen veta – och kan den klara sig med mindre?