Tänk dig att ett företag har en hemlighet som är mycket värdefull. Det skulle t.ex. kunna vara nyckeln till alla de bitcoin som en bitcoinbörs förvarar i sin s.k. cold storage. Hur håller man en sådan hemlighet säker? Å ena sidan vill man inte att för många människor har tillgång till den eftersom det ökar risken för att en person får för sig att stjäla alla bitcoin eller att en person är slarvig med att förvara den, så att den på det sättet hamnar i orätta händer. Å andra sidan behöver man se till att den inte kan försvinna. Vad händer om bara de två mest pålitliga personerna i företaget har tillgång till den och båda två plötsligt dör i en flygolycka? Det finns också en risk med utpressning eller mutor om det räcker med att komma åt en enda person för att komma åt hela hemligheten.
Problemet med att hela hemligheten finns i 1 persons händer skulle man kunna tänka sig att lösa genom att dela upp hemligheten i flera olika delar. Såhär:
Hemlighet: d,gidngt7s0?!”kfä=)(sdnf44GGJn
- Person 1 får: d,gidngt7s
- Person 2 får: 0?!”kfä=)(
- Person 3 får: sdnf44GGJn
Sedan slänger man bort den totala hemligheten så att ingen enskild person kan komma åt den. Lite som att ha en dörr med tre lås på där varje person har varsin nyckel. Vi har dock fortfarande problemet med att det räcker med att 1 av personerna försvinner eller tappar bort sin hemlighet så är det kört. Ett sätt att lösa det vore att ta in 3 personer till så att det istället ser ut såhär:
- Person 1 och person 4 får: d,gidngt7s
- Person 2 och person 5 får: 0?!”kfä=)(
- Person 3 och person 6 får: sdnf44GGJn
Nu kan 1 person försvinna utan någon risk och 2 eller 3 personer kan t.o.m. försvinna om det är rätt personer. Om både t.ex. person 1 och 4 försvinner är det dock kört. Ett lite bättre sätt om man inte kan hitta 3 st pålitliga personer till kan vara att göra såhär:
- Person 1 får d,gidngt7s och 0?!”kfä=)(
- Person 2 får 0?!”kfä=)( och sdnf44GGJn
- Person 3 får sdnf44GGJn och d,gidngt7s
Nu när varje person har fått 2 delar av hemligheten har vi en rätt bra situation där vem som helst av personerna kan försvinna och de två andra fortfarande har hela hemligheten, samtidigt som en enskild person inte själv kan komma åt den. Vi kan säga att 2 av 3 personer krävs för att komma åt hemligheten. Det finns dock ett kvarstående problem med den här typen av lösning och det är att när man börjar klippa upp en hemlighet i småbitar så blir småbitarna lättare att “knäcka” genom att sätta en dator på att leta igenom all möjliga kombinationer. Ovan så behöver ju varje person bara lista ut en tredjedel av den ursprungliga hemligheten.
Inom Bitcoin finns teknik med multisignaturer där man kan kräva att t.ex. 2 av 3 existerande signaturer används för att få utföra en transaktion men det finns mer generell teknik som uppfanns av kryptografen Adi Shamir redan på 70-talet och har fått namnet Shamir's Secret Sharing. Shamirs lösning funkar med vilka hemligheter som helst och du kan sätta upp antal delar och hur många som krävs precis hur du vill. Den lider heller inte av problemet som vi nämnde där en enskild del är mycket lättare att knäcka än den totala hemligheten.
Vill du själv leka med detta så finns verktyg på webben som demonstrerar tekniken. Ett exempel är denna: https://iancoleman.io/shamir/
Kanske har du självt upplevt den här problematiken när du ska förvara dina backup-ord till en hårdvaruplånbok. Om du lägger en kopia i bankfacket och en hemma så är risken liten att du ska tappa bort den men å andra sidan räcker det med att någon gör inbrott hos dig för att dina pengar ska vara förlorade. Trezor har tänkt på detta och gör det nu möjligt att använda Shamirs teknik för att dela upp dina ord på ett enkelt sätt. Läs blogginlägget från Trezor här.
Med Trezors lösning kommer du att få det antal delar du vill, och varje del innehåller 20 ord. Så nu skulle du t.ex. kunna ha en del i bankfacket, en del hemma och en del hos en kompis. Tappar kompisen bort sin del så är det ingen katastrof, du kan fortfarande återställa din plånbok. Ett inbrott är ingen fara och varken kompisen eller banken kan sno pengarna av dig (utan varandras hjälp).
Notera att det till en början endast funkar endast med Trezors senaste modell, Model T, som går att köpa här. Är du intresserad av något billigare har Trezor just sänkt priset på sin lite enklare Trezor One till 59 euro.
Kommentarer