Som vi såg in den tidigare artikeln Plånbokssäkerhet deluxe så bör man för att vara riktigt, riktigt trygg med att man har skapat sin Bitcoinplånbok på ett säkert sätt göra det helt offline och på ett sätt som är transparent, d.v.s. där man själv har fullständig insikt i hur slumpningen går till och hur orden väljs ut. I 10x Security Bitcoin Guide visar Michael Flaxman några att sätt att göra detta. Det första och kanske mest uppenbara sättet är att helt enkelt skriva ut de 2048 ord som ingår i BIP39-standarden, klippa ut små lappar, och sedan dra 23 lappar från en hatt, som ett lotteri (varför bara 23 ord? se sektionen "Men det 24:e ordet då?!" nedan). Fördelen med en sådan lösning är att den verkligen är helt transparent, man förstår precis hur processen att välja ut orden går till och kan se att den är slumpmässig. Nackdelen är förstås att det är oerhört jobbigt att klippa ut 2048 små lappar och därmed är det nog väldigt få som faktiskt kommer att göra det.
En annan lösning är att använda guiden på seedpicker.net där klippandet begränsats till 342 "lotter" som sedan kombineras med ett tärningsslag och en uppslagstabell för att få fram ett ord. Mycket bättre, men fortfarande en hel del klippande.
I ett försök att förenkla ovanstående metoder har jag tagit fram ett tvåsidigt blad som kan användas tillsammans med en helt vanlig, sexsidig tärning, utan att någon sax behövs. Du slår tärningen 5 gånger (eller använder 5 tärningar) för att få ut ett ord från listan och repeterar denna process 23 gånger för att få fram de 23 orden. I mitt eget experiment där jag gjorde detta med 5 tärningar tog det ca 10 minuter.
Låt oss titta närmre på hur utskriften används. Instruktioner finns längst ned på sida 2.
Om det fortfarande känns lite oklart hur det går till så ska vi titta på ett exempel.
- Första tärningsslaget visar 2 så vi använder första sidan (1-3 är första sidan, 4-6 andra sidan)
- Andra tärningsslaget är en 4:a så vi zoomar in på den stora rektangeln i den fjärde positionen.
- Tredje tärningsslaget är en 5:a så vi zommar vidare in på din mindre rektangeln i femte positionen.
- Fjärde tärningsslaget är en 2:a så vår sista rektangel är i övre högra hörnet.
- Sista tärningsslaget är en 6:a och pekar därför ut ordet INSPIRE.
Vi skriver alltså ned ordet INSPIRE på ett papper och gör om proceduren. Låt oss se vad som händer om vi slår en 2:a följt aven 5:a. Den här delen av pappret har inga ord! Det finns blanka delar eftersom våra 5 tärningsslag inte ger exakt 2048 olika möjligheter. När detta inträffar får du helt enkelt försöka igen och börja om med det första tärningsslaget (det som väljer sida av pappret). Det är viktgt att du inte helt enkelt slår om det sista tärningsslaget (5:an) eftersom det skulle göra att ord på sida 2 väljs oftare än sida 1.
Att använda 5 tärningar istället för 1
Om du vill snabba upp förfarandet så går det bra att slå 5 tärningar samtidigt istället för en i taget. Det viktiga att komma ihåg om du gör detta är att ha en förutbestämd ordning som du läser av tärningarna i (så att inte din egen hjärna är med och påverkar slumpen genom att bestämma vilken tärning du ska titta på först). Det enklaste sättet att göra detta är att alltid läsa av tärningarna från vänster till höger sett till hur de landar på bordet. En annan variant är att ha tärningar i 5 olika färger och att bestäma att den blå tärningen är den första, den röda den andra o.s.v.
Men det 24:e ordet då?!
Det 24:e ordet i ett BIP39-frö är inte genererat av slumpen. Vanligtvis när ett sådant här frö skapas så görs det av en dator som först genererar 256 bitar slumpmässig data. Från den datan räknas en checksumma ut(som "kontrollsiffran" i ett personnummer) och denna läggs till i slutet. De 264 bitarna data man nu har delas i 24 delar och varje del, som nu består av 11 bitar, görs om till ett ord m.h.a. en förutbestämd ordlista.
Det här betyder att en del av det 24:e ordet egentligen är en checksumma så vi kan inte bara välja vilket ord som helst utan måste räkna ut det. Eftersom det tyvärr är nästan omöjligt att göra uträkningen för hand måste vi använda en dator i det här steget och ett sätt är att använda "last word calculator" på seedpicker.net som är en enkel webbsida som använder javascript för uträkningen. Eftersom du varit så noga med säkerheten så här långt ska du förstås inte ta några genvägar nu heller. Guiden på seedpicker.net rekommenderar därför att du använder Ubuntu Live på en USB-sticka, hämtar webbsidan och sedan kopplar bort datorn från internet när du ska generera ordet.
Sen är du klar! Nästa steg är då förstås att använda detta seed som en del av en multisig-lösning så att du inte är beroende av någon enskild hårdvara eller mjukvara för din säkerhet.