Bitcoin skiljer sig från ”vanliga” pengar på många sätt men ett av de mest intressanta är möjligheten att ”programmera” pengarna. En vanlig bitcointransaktion ser ut som vilken överföring som helst, alltså t.ex. ”Alice skickar 1 bitcoin till Bob”. Rent tekniskt så innebär det här att Alice signerar ett meddelande där hon sätter upp ett villkor som säger att det enda sättet att kunna skicka pengarna vidare är om man har Bobs ”nyckel”. Du kan tänka dig detta som att Alice lägger ett brev med pengarna i Bobs postlåda. Det är bara Bob som har nyckeln till postlådan så det är bara han som kommer åt dem nu, och Alice kommer inte längre själv åt dem.
Det där villkoret som Alice satte upp är dock bara det enklaste och vanligaste sättet att göra en Bitcointransaktion. I själva verket innehåller Bitcoin ett litet programmeringsspråk, vilket gör det möjligt att skapa massor av intressanta transaktioner. Här är några exempel.
- Flera nycklar. Kräv flera nycklar för att komma åt pengarna. Är du rädd att bli hackad? Ha en plånbok på mobilen och en annan på datorn och kräv att båda enheterna godkänner transaktionen. Skulle någon hacka din dator kommer denne ändå inte åt dina pengar så länge du har din mobil.
- 2 av 3 nycklar. Ge ut 3 nycklar och kräv att 2 av dem används för att skicka vidare pengarna. Tänk dig t.ex. att du ger en nyckel till en ”bank”, behåller en nyckel själv (lättåtkomlig) och låser in den sista nyckeln på ett väldigt säkert ställe. Detta ger dig följande:
Säkerhet. När du ska skicka pengar krävs att både du och banken signerar transaktionen, så ingen fara om du (eller banken) blir hackad.
Kontroll. Banken kan inte göra något med dina pengar utan ditt godkännande.
Kontroll. Skulle banken vägra att ge dig din nyckel så hämtar du bara extranyckeln som du lagt undan på ett säkert ställe.
Trygghet. Tappar du bort din nyckel så löser det sig ändå med hjälp av extranyckeln och banken.
Det behöver inte heller vara just 2 av 3. Du kan lika gärna välja 2 av 5 eller 3 av 4 eller vilken annan kombination som helst. - Tidslås. Bestäm att pengarna inte får röras förrän en viss tid passerat. En intressant användning av detta kan vara som en form av testamente. Skapa en transaktion där du säger att pengarna kan spenderas med din nyckel ELLER med din arvinges nyckel om 1 år passerat. Skulle du dö så får din arvinge vänta (max) 1 år men kan sedan komma åt pengarna. Du kommer att behöva skapa en ny transaktion varje år för att arvingen inte ska kunna komma pengarna i förtid, men sånt kan förstås automatiseras.
- Crowdfunding. Genom att skapa en halvfärdig transaktion där vem som helst kan bidra med pengar men där transaktionen inte är komplett förrän en viss summa uppnåtts så kan transparent och decentraliserad crowdfunding skapas. Detta användes redan 2014 för att skapa appen Lighthouse.
Allt detta är enkla exempel på ”smarta kontrakt”, kontrakt som inte behöver någon tredje part för att utvärderas. Det häftiga här är alltså inte själva programmerbarheten i sig, utan att det kan göras decentraliserat, utan någon auktoritet. Två fundamentala, lite svåröversatta, ord som beskriver Bitcoin och andra kryptovalutor är trustless och permissionless. Alltså, du behöver inte lita på någon person eller något företag för att kunna använda detta, du behöver bara lita på den tekniska infrastrukturen. Du behöver inte heller be om lov för att få använda det. Har du en internetuppkoppling så har du allt som behövs för att vara med.
Det finns enorm potential i smarta kontrakt och några år efter Bitcoin skapades därför projekt som Ethereum för att möjliggöra mer avancerade former av smarta kontrakt än vad Bitcoin kan erbjuda. Här kan du lära dig mer:
- Smarta kontrakt
- Bitcoins programmeringsspråk Script. Introduktionsvideo av Andreas Antonopolous här.
- Ethereum