Blockchain, kryptovalutor och tillämpningar
Idag är Bitcoin ofta synonymt med kryptovalutor och en undre digital värld, men Bitcoin är inte den enda kryptovalutan och kryptovalutor är inte den enda tillämpningen för blockchaintekniken. Tekniken bakom härstammar från 70-talet, Bitcoin omnämndes för första gången 2008 och började användas som kryptovaluta året efter. Idén bakom just Bitcoin är att kunna göra transaktioner över landsgränser utan att behöva betala dyra transaktionsavgifter. Först nu börjar blockchain, tekniken bakom kryptovalutor, att nå ett bredare användningsområde.
En snabblektion om Bitcoin
Den mest kända kryptovalutan är Bitcoin. Vi hör rapporter hur datorer infekteras och används för att gräva efter nya bitcoins, hackare kräver lösensummor i bitcoins och valutan används som betalmedel i droghandel, vapenhandel och annan olaglig verksamhet på Internet. Men själva valutan är egentligen resultatet av en krypteringskedja av transaktioner, sammanslagna i block. Samtliga block sparas sedan i en slags databas (ledger) som är publik och distribueras över hela bitcoinnätverket.
Bitcoin fungerar förenklat på så sätt att flera transaktioner läggs i block, dessa block krypteras tillsammans med en länk till föregående block och resultatet kallas för ett hash-värde och det är detta värde som visar att innehållet stämmer överens och dessutom kopplar ihop blocket med föregående block. För att det nya blocket ska accepteras av hela bitcoinnätverket så måste det valideras med ett så kallat proof of work. Det görs genom att man skapar ett specifikt nummer så kallat nounce, som tillsammans med blockets innehåll och föregående blocks hashvärde uppfyller vissa regler och innebär en viss svårighetsgrad att få fram. Det är här grävandet (mining) startar då det krävs en hel del datorkraft för att hitta dessa specifika nummer.
När väl ett block fått sitt nounce så resulterar detta tillsammans med övrig information i ett nytt värde som uppfyller de krav som ställs, exempelvis kan det vara att det nya blockets hashvärde ska inledas av ett antal nollor efter krypteringen, vilket kräver ett visst nouncevärde.
Ett block och samtliga ingående transaktioner kan sedan valideras genom att man använder samma krypteringsalgoritm och information tillsammans med dess nounce. Får man då samma resultat vid valideringen så är samtliga ingående data korrekta. Man kan på så sätt gå tillbaka och verifiera en specifik transaktion.
Nya bitcoins skapas när nya nouncevärden skapas som en belöning för att den som genererat värdet upplåtit tid och datorkraft. I och med Bitcoins och andra populära kryptovalutors värde idag så har mining blivit en inkomstkälla för vissa mer eller mindre ljusskygga individer.
Blockchain i sin enklaste form
Under 70-talet tog Ralph Merkle patent på något som senare kom att kallas för Merkle tree. Detta är den princip som ligger till grund för blockchain och kryptovalutor men kan även användas för andra ändamål och helt utan att vara beroende av kryptovalutor.
I sin enklaste form kan man symbolisera data i en blockkedja med bokstäver och siffror. Genom att samla transaktioner (data) i block och sedan kryptera dessa med ett nummer så kan man visa principen. Har man ett antal transaktioner som nedan symboliseras med bokstäverna A-R och som fördelas tre stycken per block så kommer första blocket sakna referens till ett föregående block, och blir då roten i vår kedja. Det andra blocket kommer dock få en referens till det första och så vidare. Varje block kommer symboliseras med Bn. I verkligheten kommer det data som representerar varje transaktion i verkligheten vara ett hashvärde, resultatet av att man krypterat transaktionens information innan man lägger till det till ett block.
Om man byter ut data i någon transaktion så kommer dess hashvärde att förändras. Ett ”H” kanske blir ett ”P” och det tredje blocket skulle i detta fallet få ett annat hashvärde då dess nounce inte skulle bli detsamma för att generera ett hashvärde som uppfyller kraven. Det data som skulle valideras skulle då bli ”GPI”, ett nounce som ger ett hashvärde som uppfyller kraven kanske skulle vara ”6” och då resultera i ett nytt hashvärde ”GPI6B2” som i sin tur skulle kunna symboliseras med ”B6” varpå valideringen inte stämmer med efterföljande block.
Genom detta sätt att hela tiden behålla en referens till föregående block av transaktioner så bygger man in en säkerhet som förhindrar att data manipuleras. Datat i transaktionerna i sig kan vara helt konfidentiell då man bara behöver dela det hashvärde som skapas vid krypteringen.
I praktiken innebär en blockkedja att det senaste hashvärdet på kanske 128 eller 256 tecken representerar all data som någonsin förekommit i tidigare transaktioner. I stället för att varje block innehåller all data från transaktionerna så innehåller det bara korta krypterade strängar data som representerar all data från transaktionerna.
Alternativ till Bitcoin
För att nå en säker kryptering och validering krävs datorkraft och därför bygger många tillämpningar på samma teknik som Bitcoin genom att man använder en annan kryptovaluta. Detta görs för att få kontroll på valutan i sig och slippa Bitcoins skamfilade och smutsiga rykte. Microsoft har ett projekt på gång (Coco framework) där man baserar som blockchaintjänst på kryptovalutan Ethereum och tillhandahålls som en tjänst via deras Azure-plattform.
IBM och rederiet Maersk jobbar på ett annat projekt, där man använder blockchain för att spåra och hantera laster och transaktioner i sin supply chain. Maersk skeppar varje år ca 70 miljoner containers över hela världen. Man har beräknat att varje container genererar en kostnad på ca $ 300 USD i administrativa kostnader.
Genom blockchainteknik förväntar man sig att kunna minska den administrativa kostnaden avsevärt då behovet av dokument som skickas mellan olika delar i kedjan minskar dramatiskt. Detta kräver dock att alla aktörer som är inblandade har tillgång till samma blockchainteknik och detta genom en oberoende och pålitlig part. Principen är ju att avsändare, mäklare, skeppare, tull, mottagare och andra eventuella led ska kunna validera att informationen de får elektroniskt är korrekt, vilket då valideras mot blockkedjan.
Genom att informationen som skickas mellan olika led i en transportkedja kan valideras så kan ingen manipulera siffror under resans gång, det är i alla fall tanken. Med konventionell teknik kan man inte avgöra om en mellanhand har ändrat exempelvis vikten när lasten skickas vidare till nästa led.
Varför är blockchain så hett?
Jag tror att blockchainteknik är här för att stanna. Det kommer bli en naturlig del om än inbyggd och osynlig i allt från bokföring och supply chain till bankers transaktioner samt inom IT- och datorsäkerhet. Frågan är hur och vem som ska äga rätten att validera data, för det är här de stora pengarna finns.
Genom att bygga sin teknik på olika kryptovalutor kan de stora aktörerna säkerställa att endast de har ”brytningsrätten” till den valutan för transaktioner som får via deras tjänster. Detta gör det till en guldgruva för den som lyckas få igenom sin teknik som standard.
Jag tycker dock inte man ska stirra sig blind på de stora och molnbaserade så kallade BaaS-tjänster (Blockchain as a Service) som erbjuds. Det är väldigt enkelt att bygga in blockchainteknik i egna lösningar för att säkerställa dataintegriteten i en kedja. Det som skiljer en enkel lösning mot avancerade tyngre alternativ är just valideringen där datakraften avgör hur säker kryptering och validering man har kapacitet för.
Man behöver inte heller koppla en blockkedja till en kryptovaluta, tekniken fungerar utmärkt fristående. Att man använder sig av kryptovalutors kedjor och teknik beror på att man vill ha en kraftfull kryptering och validering. Även opartiskheten hos den som tillhandahåller valideringen spelar roll då det är just här man har möjlighet att manipulera data och validering.
Vi kan redan idag implementera tekniken i kundspecifika lösningar. Vi kan också erbjuda lösningar baserade på BaaS-tjänster från exempelvis Microsoft när dessa släpps kommersiellt. Microsofts Coco framework förväntas släppas kommersiellt någon gång under 2018.
Vill ni veta mer?
Langate är experter på drift och underhåll av lokala system samt molntjänster som Office 365, Azure med flera. Vi kan erbjuda rådgivning, automation och effektiva supportlösningar. Vi jobbar också med verksamhetsutveckling och systemanpassningar inom SharePoint, Dynamics CRM, Dynamics 365 samt utveckling i Microsoft .NET.
Ni är alltid välkomna att kontakta oss, så ska vi berätta mer. Läs mer om våra tjänster på vår webbsida: http://langate.se/utveckling