• No results found

Blockkedjor: Teknik för bevaring av dataintegritet i industriella nätverk

N/A
N/A
Protected

Academic year: 2022

Share "Blockkedjor: Teknik för bevaring av dataintegritet i industriella nätverk"

Copied!
67
0
0

Loading.... (view fulltext now)

Full text

(1)

Kandidatuppsats

IT-forensik och informationssäkerhet 180 hp

Blockkedjor

Teknik för bevaring av dataintegritet i industriella nätverk

Digital forensik 15 hp

Halmstad 2018-07-29

Martin Hansson och Olof Magnusson

(2)
(3)

Blockkedjor

Teknik för bevaring av dataintegritet i industriella nätverk

Martin Hansson och Olof Magnusson

Examensarbete teknologie kandidat

Akademin för informationsteknologi Högskolan i Halmstad

Handledare: Eric Järpe Examinator: Stefan Axelsson

29 juli 2018

(4)

© Martin Hansson och Olof Magnusson 2018 Akademin för informationsteknologi

Högskolan i Halmstad

(5)

Förord

Vi vill rikta ett stort tack till Kevin Leblanc och Jens Jakobsen på HMS Industrial Networks AB för gynnsamma förhållanden för uppsatsens utveckling. Även till handledare Eric Järpe och Markus Lundström för de givande diskussionerna och den objektiva feedback som blivit erhållen under arbetets gång. Tack vare ert engagemang har studien varit genomförbar.

Martin Hansson, Olof Magnusson Högskolan i Halmstad, 29 juli 2018

(6)
(7)

Abstrakt

I en perfekt värld hanteras all data på ett säkert och verifierbart sätt för att förhindra att information förändras, stjäls eller blockeras. Dagens infra- struktur bygger på centraliserade system som är format till ett fåtal aktörer som statliga organisationer, myndigheter och institutioner. Denna lösning är inte anpassningsbar till den digitala utvecklingen vilket har lett till att mer information sparas och hanteras online.

Blockkedjan har en stor potential att decentralisera hur vi lagrar och hanterar data genom effektivitet, transparens och säkerhet. Blockkedjetek- niken har en mängd appliceringsområden som finans, medicin och logistik, men kan summeras som en teknik där algoritmerna utformas för att skapa en distribuerad ledger av informationen som sparas, vilket är en teknik för att få data replikerad, synkroniserad, delad och utspridd geografiskt över ett antal platser.

Avsikten med blockkedjan är att tillämpas som ett register av tidigare transaktioner på ett sådant sätt att alla inblandade noder på nätverket tillhandahålls en kopia av kedjan, varmed samtliga deltagare kan verifiera med övriga på nätverket att kedjan inte har manipulerats.

Detta öppnar upp för frågorna: Hur ser landskapet ut idag? Vilka tekni- ker är lämpligast för just industriella system? Vad är det som krävs för att komma igång med en blockkedjeteknik i industriella nätverk? Syftet med studien är att undersöka de viktigaste teknikerna inom ämnet och föra ett resonemang kring lämplighet av olika tekniker med hänsyn till de egenska- perna som är relevanta för industriella system. Även ett experiment utförs om hur man kan använda blockkedjetekniken utifrån ett enkelt scenario taget från industrin.

Sammanfattningsvis ses blockkedjan som en innovation med potential att förändra hur man distribuerar information i industriella system på ett säkert sätt. Resultatet av denna studie är en kartläggning och en demonstra- tion som kan lägga grunden för beslut kring hur blockkedjor skulle kunna användas i framtiden.

Nyckelord: Dataintegritet, digitala utvecklingen, industriella system, block- kedja.

v

(8)
(9)

Abstract

In a perfect world, all data is handled in a secure and verifiable manner to prevent information from being changed, stolen or blocked. Today’s in- frastructure is based on centralized systems that are shaped to a few par- ticipants like government, authorities and institutions. This solution is not adaptable to the digital development, which has led to more information being stored and managed online.

The blockchain has a great potential to decentralize how we store and manage data through efficiency, transparency and security. Blockchain te- chnology has a variety of application areas such as finance, medicine and logistics, but can be summed up as a technology in which the algorithms are designed to create a distributed ledger of the information that is stored, which is a technique for getting the data replicated, synchronized, shared and spread geographically over a number of places.

The purpose of the blockchain is to be used as a ledger of previous trans- actions in such a way that all involved nodes on the network are provided a copy of the chain, whereby all participants can verify with the others on the network that the chain has not been manipulated.

This opens the questions: How does the landscape look like today? Which techniques are the most appropriate for industrial systems? What is requi- red to get started with a blockchain technology in industrial networks? The purpose of the study is to investigate the most important techniques in the area and clarify the most suitable of the different techniques, taking into consideration the characteristics relevant to industrial systems. An experi- ment is also being conducted on how to use the blockchain technique based on a simple scenario taken from the industry.

In summary, the blockchain is seen as an innovation with the potenti- al to change how to securely distribute information in industrial systems.

The result of this study is a survey and a demonstration that can lay the groundwork for decisions about how blockchains could be used in the future.

Keywords: Data integrity, digital development, industrial systems, blockchain.

vii

(10)
(11)

Innehåll

1 Introduktion 1

1.1 Inledning . . . 1

1.2 Bakgrund . . . 1

1.3 Applikationsområden . . . 2

1.3.1 Finans . . . 2

1.3.2 Medicin . . . 2

1.3.3 Livsmedel . . . 2

1.3.4 Logistik . . . 3

1.3.5 Övrigt . . . 3

1.4 Potential . . . 3

1.5 Syfte . . . 4

1.6 Problemformulering . . . 4

1.6.1 Problematisering . . . 4

1.6.2 Avgränsningar och förväntat resultat . . . 5

1.7 Positionering . . . 5

2 Metod 7 2.1 Litteraturundersökning . . . 7

2.2 Experiment . . . 8

2.3 Positionering . . . 8

2.4 Problematisering . . . 8

2.5 Alternativa metodval . . . 9

2.6 Etiskt ställningstagande . . . 9

3 Teori 11 3.1 Informationssäkerhet . . . 11

3.1.1 CIA-modellen . . . 11

3.1.2 Dataintegritet . . . 11

3.2 Blockkedjan . . . 12

3.3 Distributed ledger technology . . . 13

3.4 Konsensusmetoder . . . 14

3.4.1 Proof of Work . . . 14

3.4.2 Proof of Stake . . . 14

3.4.3 Practical Byzantine Fault Tolerance . . . 15

3.5 Bitcoin . . . 15

3.6 Blockkedjetekniker . . . 18

3.6.1 Ethereum . . . 19

ix

(12)

3.6.2 Hyperledger Fabric . . . 20

3.6.3 Quorum . . . 20

3.6.4 BigchainDB . . . 21

3.6.5 Summeringstabell . . . 22

3.7 Lämplighet för industriella nätverk . . . 23

3.7.1 Analys . . . 23

3.8 Tidigare arbeten . . . 23

4 Experiment 27 4.1 Teknisk uppställning . . . 27

4.1.1 Raspberry Pi 3 Modell B+ . . . 27

4.1.2 ASUS ZenBook UX303LA . . . 28

4.1.3 Netgear ProSafe 5 Port Gigabit Switch . . . 28

4.1.4 ASUS RT-AC51U Router . . . 28

4.1.5 Topologi . . . 29

4.2 Experimentuppställning . . . 30

5 Resultat 35 5.1 Statistik av experiment . . . 37

6 Inledande diskussion 39 6.1 Blockkedjor . . . 39

6.2 Metoddiskussion . . . 41

6.3 Resultatdiskussion . . . 42

6.4 Framtida arbeten . . . 43

7 Slutsats 45

Litteraturförteckning 47

(13)

Figurer

1 Illustration av arbetets flödesschema . . . 7

2 Illustration av hur blocken för kontroll med hjälp av föregående blockets hashsumma . . . 13

3 Illustration av hur en transaktion genomförs mellan två parter utan mellanhand . . . 17

4 Illustration av en traditionell transaktion mellan två parter via en bank . . . 17

5 Enheten Raspberry Pi 3 Modell B+ . . . 27

6 Switchen Netgear ProSafe GS105 . . . 28

7 Routern ASUS RT-AC51U . . . 29

8 Topologin för det privata nätverket . . . 30

9 Filen för genesisblocket, Genesis.json . . . 31

10 Skriptet som start geth-processen på miner1 . . . 32

11 Skriptet som start geth-processen på nod1 . . . 32

12 Peers på det privata nätverket . . . 33

13 Transaktion via Javascript-konsolen, i vilken data lagras för att säkra integriteten . . . 35

14 Blocket för den specifika transaktionen där temperaturen överfördes för att säkra integriteten . . . 35

15 Översättning av hexadecimal data ifrån blocket till klartext . . . . 36

16 Transaktionen observeras på nod #1 . . . 36

Tabeller

1 Redovisning av ingående data i ett block från blockkedjan #507098 18 2 Tabell där kartlagda blockkedjeteknikers egenskaper sammanställs . 22 3 Statistik från transaktionstest som genomfördes under 300 sekun- der, antalet transaktioner per block loggades under de fem minuter testet pågick för att observera transaktioner/block, transaktioner/s, block/s. Tabellen redovisar antalet block, transaktioner, standar- davvikelsen, variansen och medelvärdet. . . 38

xi

(14)

Förkortningar

P2P

Peer-to-peer, ett icke-hierarkiskt nätverk där alla noder har direkt kommu- nikation med varandra istället för klient-server-modellen.

Broadcast

När information skickas ut till samtliga noder i nätverket.

Ledger

Bokföring av ett stort urval av införanden, exempelvis transaktioner.

Digitala signaturer

Elektronisk form som används för att kontrollera innehållet och härrör från den som framstår som utställare.

Smart Contracts

Ett protokoll som underlättar vid transaktioner genom att endast tillåta avtalet om förutsättningar har uppfyllts.

Nod

En slutpunkt eller en omkopplingspunkt för datatrafik.

Open source

Ett program vars källkod är öppen för allmänheten att hämta, läsa, modifiera och distribuera fritt.

DLT

Distributed ledger technology, där ett ledger fördelas och synkroniseras på flera noder i ett P2P-nätverk.

Konsensus

Samförstånd som noder i en distribuerad ledger söker för att se till att det bara finns en enda sanning som godkänns av alla noder. Konsensus kan uppnås med olika metoder.

(15)

1 Introduktion

I detta första kapitel introduceras begreppet blockkedja och dess aktualitet. Vi- dare ges en bakgrund med exempel på dess egenskaper och användande i olika applikationsområden vilket leder fram till det syfte och den problemställning som arbetet ämnar utreda.

1.1 Inledning

I en perfekt värld hanteras all data på ett säkert och verifierbart sätt för att för- hindra att information förändras, stjäls eller blockeras. Att det förekommer brister i hantering av data är allmänt känt, liksom att detta kan få förödande konsekvenser för myndigheter, företag eller privatpersoner. Dataintegritet är en av de fundamen- tala byggstenarna i alla sorters digitala system, tillsammans med konfidentialitet och tillgänglighet. Privatpersoner och organisationer väljer att använda sig av di- gitala tjänster i högre utsträckning i förhållande till det traditionella sättet att göra det fysiskt [1]. Utöver detta visar [2] att dataintegriteten blir allt mer väsent- lig del av informationshantering för organisationer när utvecklingen går mot ett digitalt samhälle. Huvudsyftet med blockkedjor är att säkra dataintegritet genom att skapa en oförändringsbar distribuerad ledger. Det här arbetet undersöker hur blockkedjor kan vara till nytta inom industriella sammanhang.

1.2 Bakgrund

Distribuerade ledgers och blockkedje-algoritmer har funnits sedan 1990 [3], men när de först utvecklades var inte samhället uppkopplat på samma sätt som idag. År 2008 presenterades ett nytt koncept gällande hantering av digitala transaktioner.

Under pseudonymen Satoshi Nakamoto framlades en idé om en decentraliserad kryptovaluta vid namn Bitcoin. Anledningen till den plötsliga populariteten hos denna teknik var att den erbjöd ett alternativ till de allmänna centraliserade betal- ningsalternativen som marknaden var hänvisad till, och samtidigt ökade trygghe- ten med hjälp av ny validering för digitala överföringar. Kryptovalutan använder en P2P-modell för att hantera och lagra samtliga transaktioner. All information lagras och säkerställs i blockkedjan för samtliga noder i nätverket är försedda med, vilket garantera integriteten av data. Transaktion genomförs när 51% av noderna har bekräftat att den anses legitim [4].

Det allmänna intresset för kryptovalutan har varit stort under en ansenlig tid vilket har involverat stora aktörer inom olika typer av branscher. De centraliserade betalningsalternativen för att utföra finansiella transaktioner finns fortfarande i

1

(16)

stor utsträckning, då de decentraliserade alternativen inte har vunnit större mark beroende på dess aktualitet och osäkerhet kring ämnet. Det ledde till att många upptäckte algoritmerna på nytt, och började testa dem på olika sätt inom olika applikationsområden.

1.3 Applikationsområden

I denna sektion presenteras några av blockkedjornas möjliga applikationsområden.

1.3.1 Finans

Med Bitcoins framgång uppstod en stor mängd av kryptovalutor som stödjer sig på blockkedjetekniken. Vidare beskrivs det att en bank-ledger skapas, vilket är en loggbok för att spela in och erhålla ekonomiska transaktioner med en centraliserad databas [5]. Modellen har blivit mer påverkad av hackare genom cyberattacker när informationen är placerad i ett och samma ställe samt oftast säkrad genom utdate- rade IT-system. Detta ger utrymme för att skapa en decentraliserad infrastruktur för ökad effektivitet, säkerhet och minskade kostnader [5]. Genom att adressera blockkedjor kommer det fortfarande att ske realtidsutförande betalningar, men även komplett transparens som erbjuder bedrägeribekämpning i realtid.

1.3.2 Medicin

År efter hög reglering och byråkratisk ineffektivitet inom medicinsk dataåtkomst behövdes innovation för att erbjuda patienter bättre lösning för engagemang i sin sjukvård [6]. Användandet av blockkedjetekniken ger patienter tillgång till den me- dicinska informationen över leverantörer och behandlingsställen i större omfattning samt garanti att informationen blir oföränderlig. Vidare visar studien en modulär design som integrerar med leverantörernas nuvarande datalagringsmöjligheter och driftkompatibilitet som leder till att systemet blir konsekvent och anpassnings- bart. Upplägget är att stimulera medicinska intressenter att delta i nätverket som miners.

1.3.3 Livsmedel

Då den ekonomiska utveckling i Kina [7] blivit signifikant förbättrad, har detta förändrat konsumenters syn på handelsvaror. I de senaste åren har det medfört en serie av allvarliga incidenter i livsmedelsbranschen. ”Sudan red”, ”lenbuterol”

och ”sanlu toxic milk powder” är några av dem många exempel som existerar som

(17)

skadar människors hälsa och förtroende till matindustrin. I artikeln studeras ut- vecklingen och tillämpning av Radio-frequency identification (RFID) kombinerat med blockkedjetekniken. Analyser av fördelar respektive nackdelar med anseende att etablera ett spårbarhetssystem för att säkerställa mathanteringen med en sam- mankoppling i form av en kedja. Aktörer kan då addera, uppdatera och verifiera att kvalitén på produkten är korrekt genom konsensusbeslut.

1.3.4 Logistik

Benedict Lützenburg [8] adresserar en implementation på IKEA gällande hante- ring av logistikdata. Vidare skrivs det om den bakomliggande metodiken, argu- menteringen av metodiken och iakttagelserna. Analysen som existerar i studien har avslöjat blockkedjans potential för regleringen av transaktionerna och hur det skapar transparens. Deras tolkning ger utrymme för att diskutera problematik som blockkedjors kapacitet, hastighet och skalbarhet. I linje med Brennan och Lunn och andra författare, krävs det att forskare börjar acceptera blockkedjor som en lösning istället för ett problem.

1.3.5 Övrigt

I [9] ges en beskrivning av de applikationerna som kan förlikna sig med internet och att makten blir mer balanserad mellan de traditionella centraliserade myndigheter- na i områdena kommunikation, business och politik. I [10] ges ytterligare beskriv- ning med användningen av blockkedjornas egenskaper i företag som t.ex. logistik och industri. Resultatet visade att deltagarna var någorlunda positiva gentemot implementation av teknologin och vad den kan medföra.

1.4 Potential

Att blockkedjan har en stor potential att decentralisera hur vi lagrar och hanterar data. Detta beror på att blockkedjan kan eventuellt vid handel och kommunikation spela en central roll i dagens samhälle, nämligen mellanhanden. Blockkedjetekno- login inbjuder till skapandet av decentraliserade valutor och självförverkande di- gitala kontrakt, så kallade ”smart contracts” och intellektuella tillgångar som i sin tur kan bli kontrollerade över internet [9]. Utöver det finansiella, ger blockkedjan utrymmet för skapande av stora styrsystem som decentraliserade organisationer kan samarbeta via utan någon som helst mänsklig inblandning.

3

(18)

1.5 Syfte

Med hänsyn till tidigare forskning och i syftet att klargöra hur blockkedjor skulle kunna användas för att bevara dataintegriteten i industriella nätverk, avser arbe- tet att bidra till ökat medvetenhet om blockkedjornas betydelse och användning samt till en demonstration över hur blockkedjor kan tillämpas för säkring av da- taintegritet.

1.6 Problemformulering

Arbetet ska söka svar på huruvida de viktigaste teknikerna inom ämnet kan använ- das för att säkra dataintegritet. Det ska även föras ett resonemang kring lämplighet av dessa tekniker med hänsyn till de egenskaper som är relevanta för industriel- la system. Dessutom ska ett experiment genomföras på hur man kan använda blockkedjetekniken utifrån ett enkelt scenario taget från industrin.

• Kartläggning av blockkedjetekniker: Hur ser landskapet ut idag? Sam- manfatta de viktigaste teknikerna inom området blockkedjor.

• Analys kring lämplighet: Vilka tekniker är lämpligast för just industriella system? Föra ett resonemang kring lämplighet av olika tekniker med hänsyn till de egenskaperna som är relevanta för industriella system.

• Implementering av teknik: Vad är det som krävs för att komma igång med en blockkedjeteknik i industriella nätverk? Genomföra ett experiment på hur man använda blockkedjetekniker utifrån ett enkelt scenario taget från industri.

1.6.1 Problematisering

Egenskaper såsom snabba transaktioner och en säkrare mellanpart erbjuder möj- ligheter inom finansvärlden [11]. Industrins och myndigheternas syn på den revo- lutionerade blockkedjetekniken ger utrymme för att diskutera dess problematik.

Med stöd av tidigare arbeten, finns det ingen ren och klar bild av om blockkedjan verkligen klarar av de volymer av data som hanteras varje dag. Vidare har block- kedjetekniken enbart använts ett par år och många implementationer befinner sig fortfarande i utvecklingsfasen. Därmed kan det finnas okända risker vid tillämp- ning som ger utrymme för potentiella attackvektorer. Det är idag inte kristallklart om blockkedjor är det bästa eller enda sättet att lösa dessa problem.

De senaste åren har det producerats en mängd forskning kring kvantdatorer som möjliggör lösandet av matematiska problem som är mycket svårt att hantera

(19)

med de konventionella datorerna [12]. Således kan de ta kraften ur flera av de kryptografiska algoritmer, vilket berör system som löser nyckelproblematiken med hjälp av publika nycklar.

Den problematik som kvantdatorn medför till blockkedjan leder till att blockens säkerhet måste stärkas på motsvarande nivå. Blockets säkerhet beror på svårig- hetsgraden: att matematiskt räkna ut en särskild hashsumma, så kallad kollision.

Detta skulle innebära att det är möjligt för kvantdatorer att ersätta blockens in- formation utan att bli upptäckt [13].

1.6.2 Avgränsningar och förväntat resultat

Arbetet riktar sig främst mot en litteraturundersökning som ligger till grund för en kartläggning av ämnet, en teoretisk analys kring lämplighet inom industriella nätverk, och ett experiment i form av en demonstration i mindre skala för illu- strera konceptet. Det experimentella avgränsas till en av dessa blockkedjetekniker som endast är tänkt att ge ett exempel på hur blockkedjetekniken kan användas inom industriella sammanhang, utan att göra någon djupare empirisk studie eller jämförelse.

Resultatet är en kartläggning och en demonstration som kan lägga grunden för beslut kring hur blockkedjor skulle kunna användas i framtiden.

1.7 Positionering

Tidigare undersökningar demonstrerar hur blockkedjor kan användas i olika typer av applikationsområden för säkring av dataintegritet [5–8]. Det som är slående är att majoriteten av publicerade material endast belyser hur en enstaka blockkedja kan fungera i olika miljöer snarare än hur man egentligen lägger en grund till vilka blockkedjor som är mer eller mindre lämpliga för industriella system. Det kan vara förståeligt att många av de tidigare arbeten nedprioriterade att göra en mer djupare kartläggning över alla tekniker för att hitta en lösning, varmed att tekniken är ny och det tar tid. Att experimentera sig fram kan anses vara ett enklare tillvägagångssätt.

Högst relevant är att undersöka hur landskapet ser ut inom ämnet blockkedjor och jämföra de olika teknikernas egenskaper, som senare processas i form av en analys för att motivera val av teknik. De tekniker som uteslutes av analysen kan bli mer användbara i andra typer av verksamheter och därmed inte förkastade.

För de företag som tillhandahåller tjänster eller produkter som ständigt behöver utveckla sig med nya verktyg för att förhindra manipulation av data, blir det viktigt att visa en summering av de diskuterade blockkedjeteknikerna med deras egenskaper. Därmed kunna bevisa vilken blockkedjeteknik som är mest lämplig

5

(20)

i nuläget för att säkra dataintegriteten i industriella nätverk. Det blir väsentligt att genomföra en demonstration för att underlätta beslut för en implementation i framtiden.

(21)

2 Metod

En grundläggande problematik har funnits över en längre tid är att, dagens infra- struktur bygger på centraliserade system som är format till ett fåtal aktörer som statliga organisationer, myndigheter och institutioner. Denna lösning är inte appli- cerbar till den digitala utvecklingen vilket har lett till att mer information sparas online [14]. Distribuerade ledgers och blockkedje-algoritmer har funnits länge [3], men i samband med ökad popularitet av kryptovalutan Bitcoin. Detta ledde till att många återupptäckte algoritmerna på nytt och testade dem på olika sätt i finans-, medicin-, livsmedels- och logistikbranschen. Den abstrakta tolkningen an- ser vilka behov blockkedjor kan tillfredsställa är att autenticiteten garanteras och det går att lita på informationen som tillhandahålles samt att data är tillgänglig för tillåtna användare utspritt geografiskt över ett antal platser [15].

Projektet börjar därför med en litteraturundersökning över blockkedjetekni- ker för att lyfta fram relevanta egenskaper, fördelar och nackdelar samt teoretisk analys kring lämplighet för industriella nätverk. Dessutom kommer det att genom- föras en demonstration i form av ett experiment över hur blockkedjetekniken kan tillämpas för säkring av dataintegritet. I Figur 1 illustreras arbetets upplägg och tillvägagångssätt.

Figur 1: Illustration av arbetets flödesschema

2.1 Litteraturundersökning

En litteraturundersökning genomförs för att hämta in information som är värdefull för bakgrund, teori och experimentuppställning [16, 17]. Experimentet samman- binder olika vetenskapliga och tekniska områden som matematik, kryptografi och tidigare arbeten som leder fram till en demonstration över hur blockkedjor kan

(22)

användas för säkring av dataintegritet. Dessa ämnen användes som beteckningar i två primära databaser som IEEE Xplore och Summon. IEEE Xplore är en stor databas med inriktning att behandla vetenskapliga artiklar inom teknik. Resulta- tet är arbeten som identifierar blockkedjor och olika tillvägagångssätt. För att inte få en svår begränsning till att bara behandla en specifik plattform studerades det vidare för att hitta ytterligare forskning kring ämnet. Summon är ett sökverktyg för att söka igenom de flesta databaser som Högskolan i Halmstad har tillgång till. Vid inhämtning av information är det viktigt att ställa krav på granskning- en av innehållet i böckerna, artiklarna och publicerade journalerna inom berörda ämnen och således genomföra ett noga urval samt uteslutande av icke relevant information.

2.2 Experiment

Experimentet genomförs som ett komplement till litteraturundersökning och ana- lysen i syfte att med en demonstration visa hur blockkedjan kan tillämpas för säkring av dataintegritet, samt visa vad som krävs för att implementera en block- kedja. Komplett experimentuppställning redovisas vidare i Kapitel 4.

2.3 Positionering

Att kartlägga tidigare genomförd forskning över ett ämne är en väletablerad me- tod för inhämtning av information. Det som skiljer denna rapport mot de tidigare är att det först genomförs en litteraturundersökning samt analys vilket ligger som grund för implementationen av den fungerande demonstrationen. Tidigare rappor- ter har valt att med hjälp av praktiska experiment belysa funktionalitet för att sedan diskutera utfallet [18–20]. Med en kartläggning och analys som grund för experimentet skall denna rapport ge en högre förståelse över ämnet samt en mer träffsäker motivering för experimentuppställningen med den teknik som är mest lämplig för en implementation.

Möjligheten finns givetvis att kunna separera dessa metoder och göra en lit- teraturundersökning eller ett experiment. För att kunna värdera resultatet väljes metodiken där en litteraturundersökning kompletteras av ett experiment. På detta vis erhållna kunskapen ger en högre verkningsgrad och förståelse [21].

2.4 Problematisering

Metoderna i tidigare arbeten kan vara svåra att applicera på de utvalda enhe- ter som väljs ut i experimentet. Vid implementation av teknik finnas alternativa

(23)

tekniker att tillämpa om det inte skulle fungera korrekt eller ger utrymme för fel resultat. Med hänsyn till komplexiteten av experimentet kommer det tillsättas extern hjälp för bistånd med delvis programmering och analys över utrustning- ens kompatibilitet för att tillika ett välgjort resultat. De blockkedjetekniker som undersöktes kommer avgränsas om de anses vara irrelevanta för arbetet.

2.5 Alternativa metodval

Att implementera flera tekniker och jämföra dem empiriskt hade kunnat vara ett alternativ för att adressera frågeställningarna. Dessutom finns också möjlig- heten att göra en enkätundersökning mot organisationer om hur de ställer sig till ämnet blockkedjor. Även ur säkerhetsaspekten att utföra genomgående penetra- tionstestning av blockkedja hade varit en möjlighet för att observera hur säker data i blockkedjan är. Anledningen till författarnas metodval av en litteraturun- dersökning, teoretisk analys kring lämplighet inom industriella nätverk, och ett experiment i form av en demonstration i mindre skala, var för att illustrera en blockkedja med ett realistiskt scenario.

2.6 Etiskt ställningstagande

Rapporten innebär kartläggning av blockkedjetekniker för säkring av dataintegri- tet i industriella nätverk. Således krävs etiskt ställningstagande vid genomförandet av arbetet. Att göra en kartläggning utan hänsyn till organisationens regelverk skulle äventyra deras säkerhet och anseende. Då undersökningen behandlar upp- gifter av sekretess kommer den information som betraktas känsligt eller kritiskt för organisationen uteslutas. Därefter studeras litteratur relaterade till just etik och moral för att ställa höga krav på ett sådant sätt att det verkligen genomsyrar hela rapporten. I [22] presenteras studier och element som karaktäriserar koncepten kring etik och moral i ett it-sammanhang.

9

(24)
(25)

3 Teori

Den nödvändiga teorin för läsaren att sätta sig in i ämnet och förstå dess proble- matik presenteras här.

3.1 Informationssäkerhet

Dataintegritet är en av de fundamentala byggstenarna i alla sorters digitala system, tillsammans med konfidentialitet och tillgänglighet. Detta behandlas nedan.

3.1.1 CIA-modellen

CIA är en modell inom allmän IT-säkerhet som summeras ner till tre bestånds- delar. Confidentiality, Integrity och Availability. Triadens term används generellt inom informationssäkerhet och är en modell för att säkra data [23].

Confidentiality: att data är skyddad från otillåten åtkomst, således att endast de med behörighet ska ha tillgång till information. Avslöjas informationen har konfidentialiteten blivit förlorad och intrång inträffat.

Integrity: att autenticiteten garanteras och det går att lita på informationen som tillhandahålles.

Availability: att data är tillgänglig för tillåtna användare när det väl behövs.

Tillgängligheten kan gå förlorad vid exempelvis överbelastningsattacker och att användare då förlorar åtkomst till informationen.

3.1.2 Dataintegritet

Att säkra dataintegriteten innebär att man förhindrar obehöriga ifrån att under några omständigheter förändra data. Vidare är det den fundamentala komponen- ten av informationssäkerhet där huvudsakliga syftet är att bevara integriteten på informationsflödet i de digitala systemen [24].

“Det är viktigt att det inte går manipulera med mjölktemperaturen, men att den obehörige får tillgång till mjölktemperaturen är inte ett så allvarligt hot.”

- Jens Jakobsen, Fil.dr, Utvecklingschef, HMS

11

(26)

3.2 Blockkedjan

Algoritmer för blockkedjor har länge funnits, men kom återigen i samband med ökad popularitet av kryptovalutan Bitcoin. Algoritmerna som utformas skapar en distribuerad ledger av informationen som sparas, vilket är en teknik för att få data replikerad, synkroniserad, delad och utspridd geografiskt över ett antal platser. I och med att data är utspridd på flera platser blir det möjligt att säkra dataintegriteten genom att jämföra informationen i efterhand för att identifiera möjlig förändring. Blockkedjan är en typ av distribuerad ledger, men inte den enda.

Directed acyclic graphs (DAG) är en annan typ av distribuerad ledger där samling av händelser representeras i form av hur de har inflytande på andra händelser.

Istället för en blockkedja av samtliga överföringar i kronologisk ordning, visar DAG istället endast de händelser som har haft inflytelse på varandra. Detta kan göras på flera plan samtidigt. Nano är en teknik som utnyttjar detta i form av en kryptovaluta [15].

Avsikten med blockkedjan var att tillämpas som ett register av tidigare trans- aktioner och alla inblandade noder på nätverket skulle tillhandahålla en kopia av kedjan, därmed kan samtliga deltagare avstämma med övriga på nätverket att kedjan inte har manipulerats. Blockkedjan drivs helt av klienterna på nätverket, därutav krävs ingen centraliserad server för hantering av administrativa handling- ar. Transaktionerna signeras digitalt för möjligheten av verifikation. Dessutom är kedjan oföränderlig sålunda konsensus krävs för manipulation av blocken i kedjan [10].

“The first generation of the digital revolution brought us the Internet of information. The second generation — powered by blockchain techno- logy — is bringing us the Internet of value: a new platform to reshape the world of business and transform the old order of human affairs for the better.”

- Don Tapscott, inflytelserik och auktoritativ författare Blockkedjan är en distribuerad databas, där varje nod per automatik verifie- rar ändringar som genomförs på någon av de andra enheterna. Datalagringen sker permanent i olika block som tillsammans bildar en kedja. Transaktionerna som ge- nomförs måste accepteras av majoriteten av ett antal noder i nätverket innan det accepteras som ett nytt block till blockkedjan [25]. Detta för att på ett säkert sätt kunna distribuera information till nätverkets noder. Således bidrar detta till en ökad transparens, minskad asymmetri i information och möjlighet att kunna be- vara dataintegritet i industriella nätverk genom att ett stort antal enheter erhåller samma data.

(27)

Blockkedjor tillåter individer, samhällen och verksamheter att ändra sina nu- varande kommunikationsmöjligheter baserat på automatisering och tilltro [26].

Som utgångspunkt i kedjan användes ett genesisblock, det första blocket i ked- jan. Alla noder som existerar på nätverket har det här till kännedom och vet den primära rooten [27]. Blocket är statiskt och oftast hårdkodat i mjukvara eller applikationer som använder blockkedjan.

Individuella block är representerade med en hashalgoritm, exempelvis SHA-256 i headern. Då det uppstår någon form av förändring i de existerande blocken som alla noder är synkroniserade med, körs algoritmer för evaluering och verifikation av informationen i blockkedjans historik. I Figur 2 illustreras ett normalt förfarande av hur blocken har kontroll genom verifiering av hashsumman från föregående block.

Figur 2: Illustration av hur blocken för kontroll med hjälp av föregående blockets hash- summa

3.3 Distributed ledger technology

Distributed ledger technology (DLT), är en databas som är konsensuellt delad och synkroniserad över webbplatser, institutioner eller geografiska områden [28].

Detta möjliggör att distribuera data med stort geografiskt avstånd i en kon- trollerad miljö. Anledningen till dess effektivitet är att förändringarna som sker i varje del av nätverket är automatiskt speglade i alla kopior på ledgern. Vidare blir utrymme för obehöriga ändringar, som leder till att ledger blir korrupt, mycket begränsat. DLT är fortfarande i en tidig utvecklingsfas. Det finns möjligheter att utveckla grundalgoritmer som kan addera raffinemang till ledgers genom stöd av smart contracts, signaturer och andra applikationer [28].

Utvecklingen av blockkedjor är ett viktigt steg mot den genombrytande re- volution i DLTs som kan omvandla förhållandet hos organisationerna mellan den publika och privata sektorn. Det finns många olösta problem att anamma innan man kan nå den fulla potentialen av denna teknik [28].

13

(28)

3.4 Konsensusmetoder

Konsensusmetoder används av DLTs och blockkedjor för att noder ska komma överens om vilken information som anses vara sann och därefter placeras i block- kedjan. Detta måste ske på ett säkert sätt för att garantera integritet i systemet.

Mycket forskning sker på nya metoder för att låta system nå konsensus på ett så effektivt och säkert sätt som möjligt. Konsensus kan ske på två olika sätt, permis- sioned och permissionless. Permissioned innebär att endast utvalda noder får bidra till att nå konsensus i systemet, permissionless tillåter vem som helst att bidra [29].

Nedan presenteras de några av de viktigaste lösningarna på detta problem.

“A blockchain based system is as secure and robust as its consensus model.”

- Arati Baliga, Fil.dr i datorvetenskap

3.4.1 Proof of Work

Den centrala idén kring proof-of-works system är att publicera en tillståndsöver- gång, för att arbeta med ett problem som kräver en viss mängd datorkraft för att lösa. Vidare om deltagare upptäcker en lösning till ett givet problem, kommer övergångstillståndet tillhandahållas med lösningen [30].

Den värdefulla inblicken är förståelsen huruvida konsensusbeslut etableras i system, är att förslag för övergångarna behöver publiceras. För vetenskapen över vilka övergångar som accepteras måste deltagarna kontinuerligt verifiera validi- teten av lösningarna som ges. Således måste deltagarna acceptera varje övergång när lösningen blivit validerad. Detta ger en indikation på att någon har arbetat med problemet och upptäckt en lösning. Med hänsyn till konsensus av arbetet måste utförligheten ha en kostnad, för publicering av övergången som kontrolleras av de deltagarna som publicerar den övergången, och förväntningen att systemets tillstånd vara giltig i högre utsträckning [30].

3.4.2 Proof of Stake

Med säkerheten bakom proof-of-work följer en stor kostnad. Redan i år 2013 be- räknades driften av Bitcoin förbruka lika mycket energi som hela Irland gör av med på ett år [30]. I takt med denna ohållbara utveckling av energikonsumtion krävdes ett nytt tillvägagångssätt för säkerheten i blockkedjor. Proof-of-stake in- nebär att man istället låter slumpen avgöra vem skaparen av nästa block i kedjan blir, baserat på insatsen som man köpt i kryptovalutan för den specifika block- kedjan [31]. Detta medför en minskad energikonsumtion då tillståndsövergång inte

(29)

behöver räknas ut. Kryptovalutor som PPCoin använder sig av proof-of-stake som konsensusmetod i kombination med proof-of-work. Detta konceptualiseras genom att användaren skickar en transaktion med en symbolisk summa till sig själv, vil- ket förbrukar åldern på valutan men ger användaren möjligheten att vinna nästa block och acceptera valutan ifrån blocket som skapas [32].

3.4.3 Practical Byzantine Fault Tolerance

Practical Byzantine Fault Tolerance (PBFT) är en konsensusmetod som baseras på ett gammalt dilemma där Bysantinska generaler kommunicerade för etablering av en krigsplan, utan att infiltrerade illvilliga generaler skulle kunna bidra till ett negativt beslut för Bysantinerna [30]. Detta jämförs med dagens teknik där information till en blockkedja ska beslutas, istället för en attackplan. Inom block- kedjetekniken fungerar PBFT så att en omgång initieras för att skapa ett block.

Varje nod publicerar en offentlig nyckel, och alla meddelanden som flödar genom noden är signerade för att verifiera formatet. När tillräckligt många identiska svar uppnås kan enheterna komma överens om att det är en giltig transaktion [33].

3.5 Bitcoin

År 2008 presenterades ett nytt koncept gällande hantering av digitala transaktio- ner. Under pseudonymen Satoshi Nakamoto framlades en idé om en decentraliserad kryptovaluta vid namn Bitcoin. Anledningen till den plötsliga populariteten hos denna teknologi var att den erbjöd ett alternativ till de allmänna centraliserade betalningsvägarna som marknaden var hänvisad till och samtidigt ökade trygghe- ten med hjälp av ny validering för digitala överföringar. Kryptovalutan använder sig av en P2P-modell för att hantera och lagra samtliga transaktioner. Informatio- nen lagras och säkerställs i blockkedjan som samtliga noder i nätverket är försedda med, för att garantera integriteten av data. En transaktion genomförs när 51% av noderna har bekräftat att den anses legitim [4].

Kryptovalutans uppenbara framgång förde med sig nyfikenhet om vilken person Satoshi Nakamoto egentligen var. En australiensare vid namn Craig Wright gick ut 2016 med ett erkännande i anslutning med artikeln Bitcoin: A peer-to-peer electronic cash system [4], och erbjöd bevis. Detta kunde dock inte styrkas, vilket resulterade i att upphovsmannen av kryptovalutan fortfarande är ett mysterium [34].

15

(30)

“Bitcoin is the beginning of something great: a currency without a go- vernment, something necessary and imperative. But I am not familiar with the specific product to assert whether it is the best potential setup.

And we need a long time to establish confidence.”

- Nassim Taleb, statistiker och riskanalytiker Tillvägagångssättet i processen är att nya transaktioner skickas till alla noder på nätverket där varje nod ackumulerar de nya transaktionerna i ett block. Vidare när en nod anträffar ”proof-of-work” sänds blocket till alla noderna. Acceptans sker endast om transaktionerna i blocket är giltiga och inte redan spenderade. Detta görs genom skapandet av ett nytt block i kedjan med användandet av hashen från det accepterade blocket [4]. I nätverket kommer noderna alltid bedöma den längsta kedjan att vara den korrekta.

I Figur 3 illustreras ett typiskt fall på hur en transaktion med Bitcoin kan vara möjlig genom blockkedjan. Avsändare A, Alice, vill leverera 10 bitcoins till mottagare B, Bob. Transaktionen hanteras genom att informationen om Alice avsändarkonto, Bobs mottagarkonto samt antalet kryptovaluta som ska skickas sparas i ett block som via ett broadcast når ut till alla noder i nätverket. Vidare görs en överenskommelse i nätverket kring om Alice verkligen har kryptovalutan och är legitim, vilket görs genom identifiering av de föregående blockens hash och digitala signatur. Om så anses vara fallet bekräftas genomförandet av transaktionen, annars kommer det nekas och stämplas korrupt. Därefter läggs blocket i blockkedjan, vilket validerar och arkiverar transaktionen mellan Alice och Bob. Avslutningsvis slutförs transaktionen varmed att Bob erhåller kryptovalutan.

(31)

Figur 3: Illustration av hur en transaktion genomförs mellan två parter utan mellanhand

Vidare i Figur 4 illustreras det traditionella förfarandet av finansiella transak- tioner med bistånd av en tredje part. Som tidigare nämnts, innebär en tredje part möjligheten att validera, säkra och bevara transaktionerna samt ansvara för att obehöriga exkluderas. I den situation som tas upp i Figur 4 utreds huruvida en bank kontrollerar att transaktionen är giltig och att Bob erhåller pengarna. Detta kan leda till höga transaktionskostnader, tidskrävande processer och ökade poten- tiella säkerhetsrisker med användandet som förekommit av t.ex. mobilt BankID [35].

Figur 4: Illustration av en traditionell transaktion mellan två parter via en bank

17

(32)

Ett exempel av bitcoin-data som ingår i ett block i blockkedjan redovisas i Tabell 1.

Tabell 1: Redovisning av ingående data i ett block från blockkedjan #507098

Transaktioner 1590

Output Total 8,180,70681858 BTC

Beräknad transaktionsvolym 1,92251037 BTC

Höjd 507098 (Huvudkedjan)

Tidsstämpel 2018-02-01 13:07:01

Mottagen tid 2018-02-01 13:07:01

Replayed by BTC TOP

Svårighet 2,603,077,300,218,59

Bits 392962374

Storlek 1038,217 kB

Vikt 3992,902 kWU

Version 0x20000000

Nonce 2893717962

Blockbelöning 12,5 BTC

Hash

00000000000000000057132e4108bf2718bf3cdc21b3e87a3e1128ae21d6b4cc Föregående block

00000000000000000004bcf55bc3a6c63062f8d6daff853317a70e12c4d7e18d Nästa block(er)

000000000000000000227373d574984995cce0a398e041346e08fc69e4ef3960 Merkle Root

0983e974fd4d37d2bdce41501612edf9c4c0b66d0b2c3cc4d006221F9bcd46fe

3.6 Blockkedjetekniker

Olika typer av blockkedjetekniker med fördelar respektive nackdelar presenteras här. Teknikerna begränsas till projekt som tillåter en privat kedja, är open source och är möjliga att erhålla via Github. Projekt som tillhandahåller minst 2000 stjärnor på Github har kartlagts, som riktlinje för relevans och användning.

(33)

3.6.1 Ethereum

Ethereum är konstruerat sålunda att det inte finns någon direkt eller fixad begräns- ning för transaktioner eller blockstorlekar. Detta är styrkan av Ethereum nätver- ket, att den verkligen skalar. Teknologin använder sig av ”gas” för anpassningen av transaktionsstorleken. Värdet på gasen representerar maximala antalet beräk- ningssteg vid en transaktion [36]. Enligt dokumentationen [37] blir block-tiden placerad mellan 10-20 sekunder, beroende på svårighetsgrad för mining. Antalet transaktioner per sekund är approximativt 15 [38].

Ethereum säkrar integriteten med proof-of-work, vilket försvårar möjligheten till påverkan på informationen i blockkedjan. Sårbarheter som förknippas med tek- nologin är smart contracts. I [39] nämns ett antal problem som uppstår i Ethereums implementering, bland annat smart contracts. Svagheterna delas in tre kategori- er: Sårbarheter gällande programmeringsspråket Solidity, attacker mot Ethereum Virtual Machine och blockkedjesvagheter. De allmänna sårbarheterna beträffande Solidity är Call to the unknown, Gasless send, Exception disorders, Type casts, Reentrancy och Keeping secrets. Call to the unknown en sårbarhet som får mot- tagarens fallback-funktion att åberopas. Detta kan i senare skede utnyttjas vid exempelvis en DAO-attack som artikeln nämner. DAO (decentralized autonomous organization) skulle vara en självstyrd grupp inom organisationer för ersättning av hierarkistyrning. DAO skapades för smart contracts inom Ethereum på grund av tidigare svagheter. Angriparen kunde då komma över stora summor pengar [39].

Sårbarheter kring EVM (Ethereum Virtual Machine) är Immutable bugs, Et- her lost in transfer och Stack size limit. Immutable bugs innebär att när ett smart contract väl har publicerats kan inte kontraktet förändras. Existerar det sårbar- heter vid implementationen av smart contracts blir det problematiskt att patcha och kan då utnyttjas av angripare [39].

Vidare sårbarheter som nämns är Unpredictable state, Generating randomness och Time constraints. Unpredictable state är en sårbarhet där transaktioner i olika tillstånd kan få ett kontrakt att exekveras i ett oförutsägbart tillstånd. Tillståndet baseras på värdena av transaktionens fält och saldot. Att en transaktion exekveras i ett oförutsägbart tillstånd leder till sårbarheter i ett senare skede vid utnyttjande av illvilligt smart contract för tillskansning av kryptovalutan [39].

Enligt [40] stöds inte ”light-klienten” av Ethereum vid denna tidpunkt, varmed det krävs tillsättning av en proxy, alternativt en stor digital lagringsenhet för ackumulering av blockkedjan. Det ges en flexibilitet och enkelhet vid användning av en proxy, men det innebär också en risk att man kompromissar säkerheten med en tredje part.

I [41] berörs Ethereums sårbarhet mot attacker där informationen förgrenas i kedjan, vilket resulterar i dubbelspendering av samma pengar. Således att samma pengar används för olika transaktioner.

19

(34)

En numerisk värdering av användandet för Ethereum har gjorts genom att stu- dera det officiella biblioteket [42]. Där anges antal gånger projektet har kopierats och modifierats, vilket resulterar i en förgrening. Förgreningsantalet återspeglar användningsstatistik. Ethereum-projektet har förgrenats, i skrivande stund, 5 203 gånger. Anledningen till den höga förgreningen är att Ethereums smart contracts egenskap skapar en generisk plattform för alla typer av applikationer och är ”per- missionsless”, samt för att konsensus baseras på PoW.

3.6.2 Hyperledger Fabric

Hyperledger Fabric framlades genom ett projekt under ”Linux foundation” och är en open-source DLT, som upprätthålls av Hyperledgers community. Blockked- jetekniken utgör den fundamentala byggstenen för utveckling av blockkedjeap- plikationer mot ett stort utbud av branscher [43]. Vidare drivs ett distribuerat ledger-protokoll på olika typer av noder.

I [44] visas en genomströmning på uppemot 3 500 transaktioner per sekund.

Detta stöds av artikeln [45] som uppnådde liknande resultat. Hyperledger uppnår konsensusbeslut genom användning av tekniken PBFT [46]. Flaskhalsen i Hyper- ledger [41] härstammar ifrån konsensusmetoden, vilket resulterar i försämrad ge- nomströmning. I [47] visas en automatiserad attack mot PBFT-konsensusmetoden och identifierar sårbarhet kring utnyttjandet av en MAC-attack för att få PBFT- processen att upphöra, vilket resulterar i att genomströmningen drastiskt sänks.

Data som blir lagrad är ”Chaincode”, som kan liknas med smart contracts. Vi- dare används programmeringspråken Golang, Java, Javascript, Python och Rust för modifikation [48]. Ytterligare använder Hyperledger Public key infrastructure (PKI) för att nyckelbytet ska ske på ett korrekt sätt [44, 49].

En numerisk värdering av användandet för Hyperledger Fabric har gjorts ge- nom att studera det officiella biblioteket [50]. I skrivande stund har Hyperledger Fabric 2 898 förgreningar, dels för den modulära plattform och att skalbarheten och integritet förstärks genom den privata möjligheten samt för användandet av PBFT-algoritmen. Att Hyperledger blivit förgrenat mindre än Ethereum är för att tekniken är ganska ny och Ethereum är väletablerad i dagens system.

3.6.3 Quorum

Quorum är en företagsorienterad blockkedjeteknik som bygger på Ethereums egen- skaper som prioriterar hög genomströmning, hastighet och säkerhet [51]. Protokol- let stödjer smart contracts och samtliga transaktioner använder sig av Quorums konsensusmetoden Raft där överenskommelse nås om vilka block som accepte- ras, istället för användningen av proof-of-work [51]. Dataintegritet uppnås genom kryptografi och segmentering. Vidare är segmenteringen applicerad på varje nods

(35)

lokala databas som innehåller lagring av kontrakt som är enbart tillgänglig för den noden.

Quorum hanterar över 100 transaktioner per sekund och beroende på konfi- gurationen av nätverket och smart contracts [52]. Administration sköts manuellt och regler definieras av administratörerna. Noderna utses till väljare, blockskapare eller passiva noder. Kryptering från klient till klient stöds för säkring av transak- tionerna [51]. De sårbarheter som nämns är att noderna fortfarande kan orsaka uppsåt och begå bedrägeri i de privata transaktionerna [51].

En numerisk värdering för användandet av Quorum har gjorts genom att stu- dera det officiella biblioteket [53]. I skrivande stund har Quorum 418 förgreningar.

3.6.4 BigchainDB

BigchainDB (BDB) är en distribuerad skalbar blockkedjedatabas som är designad för sammanfogning av två olika världar, den traditionella distribuerade databasen och blockkedjan. Något som är av betydande vikt är att BDB stödjer både privat och publik användning. Uträkningen av hashen tar mindre än en sekund eftersom valideringen baseras på en federation av röstande noder [54]. I förfarandet att va- ra en decentraliserade databas kan BDB var ett komplement till decentraliserade bearbetningstekniker som t.ex. Ethereum. BigchainDB är en databas med hög ge- nomströmning, kapacitet, sökfunktioner och låg latens vilket fungerar i industriella sammanhang tillsammans med skapandet av privata blockkedjor i anslutning till blockkedjans kapacitet vid större skala [54].

Vidare i [54] visas förfarandet där användning av blockkedjor ger möjligheter att lagra och hantera data av produkter i livsmedelskedjor. I livsmedelsbranschen är många aktörer involverade som leverantörer, tillverkare, distributörer, återför- säljare, konsumenter och certifierare. Följande scenario uppnår konsensusbeslut genom addering, uppdatering och verifiering av att informationen på produkten är korrekt om registrerad användare existerar i systemet [54]. Ytterligare en egenskap för BDB är att varje produkt kan vara kopplad till en RFID-tag (Radio-Frequency Identification), som är ett unikt digitalt identifikationssätt som sammanför fysiska enheter till virtuella identiteter.

Att redovisa BigchainDBs genomströmning är problematiskt då statistik sak- nas. Genom undersökning av RethinkDB, den underliggande databastekniken för BigchainDB, observerades i en testmiljö på 16 noder en genomströmningen på 500 000 queries per sekund [55]. Detta ökar linjärt, enligt BigchainDBs egna tester [56], då 32 noder genererade över 1 000 000 skrivningar per sekund. BigchainDB applicerar en overhead på dessa överföringar, som i sin tur resulterar att genom- strömningen blir mindre än 1 000 000 eller 500 000. I en obekräftad bloggpost till- kännager utvecklare från BigchainDB att målet är att uppnå 1 000 000 transaktio- ner per sekund, då genomströmningen generar ungefär 200 000 transaktioner per

21

(36)

sekund [57]. Enligt BigchainDBs egen dokumentation används Tendermint som konsensusmetod och Python och Javascript för modifikation samt datalagringen sker i NoSQL [56, 58].

Sårbarheter gällande BigchainDB gick inte att identifiera vid kartläggning.

Negativa aspekter gällande BigchainDB är att utvecklingen av kedjan inte är full- ständig. I [59] nämns exempel på svagheter som kräver tillsyn enligt författaren.

Exempelvis diskuterades att nodmjukvaran fortfarande inte fungerar som ett legi- timt P2P-system utan utför replikering av data likt ett databassystem. BigchainDB är dessutom inte tolerant mot Bysantinska fel [60].

En numerisk värdering för användandet av BigchainDB har gjorts genom att studera det officiella biblioteket [61]. I skrivande stund har BigchainDB 459 för- greningar.

3.6.5 Summeringstabell

I Tabell 2 visas en summering av diskuterade blockkedjeteknologier och deras egenskaper.

Tabell 2: Tabell där kartlagda blockkedjeteknikers egenskaper sammanställs

Protokoll Ethereum Hyperledger Fab- ric

Quroum BigchainDB

Tillstånd Publik + privat Privat Privat Privat

Användningsområde Finansiellt Industriellt Industriellt Industriellt

Syfte Kryptovaluta

med smart con- tracts

Privata blockked- jor för industrier

Ethereum-klon för privata block- kedjor

Databas i kombi- nation med block- kedja

Datalagring Kryptovaluta, di- gitala tillgångar, smart contracts

Chaincode Smart Contracts NoSQL

Scriptspråk Solidity, Serpent, LLL

Golang, Java, Ja- vascript, Python, Rust

Golang Python

Block Timing 10-20 sek Anpassningsbar 0.5 sek Anpassningsbar Transaktionsstorlek Skalbar Anpassningsbar 780 kB Anpassningsbar Transaktionshastighet 15 tx/sek 3 500 tx/sek 100+ tx/sek 200 000 tx/sek Konsensusmetod PoW - Ethash PBFT PoS - Raft Tendermint Användning 5 203 förgreningar 2 898 förgreningar 418 förgreningar 459 förgreningar

(37)

3.7 Lämplighet för industriella nätverk

Analys och beslut kring den mest lämpliga blockkedjetekniken presenteras här.

3.7.1 Analys

Enligt de egenskaper som lyfts i Kapitel 3 framkommer det att Hyperledger Fabric är mest relevant för industriella sammanhang. Dels för anpassningsbarheten, att kunna hantera transaktionsegenskaperna och användningen av servercluster för säkring av dataintegritet. Tekniken är open-source vilket innebär att alla kan ta del av och modifiera koden för att anpassa den för eget ändamål. Hyperledger Fab- ric har enligt användarstatistiken använts i stort omfång, vilket visar att tekniken är testad i flera miljöer och uppfyller det som förväntas av tekniken. Egenskaperna som lyfts i teorikapitlet visar hög genomströmning och många transaktioner per se- kund, vilket är ett krav för industriella nätverk där stora mängder data strömmar.

Det ges möjligheten till garanti av olika typer av processer inom olika sektioner i samhället som t.ex. sjukvård och produktion eftersom tekniken erbjuder kollektivt definierade medlemskap- och åtkomsträttigheter inom företagsnätverket. Tekni- ken ger även flexibilitet då transaktionerna visualiseras för att välja parter med rätt krypteringsnycklar. Då Hyperledger Fabric inte använder sig av mining eller beräkningar för att fastställa transaktionerna, ger det utrymme för mindre dataan- vändning. Vidare utnyttjas den inbäddade logiken i chaincode för automatisering av informationsöverföring över nätverket.

I [43] ges redogörelse med en framställning av ett test av 10 000 transaktioner som utförts med de två olika teknikerna Hyperledger och Ethereum. Vidare visas att Hyperledger Fabric konsekvent överträffar Ethereum i fråga om exekveringstid, latens och genomströmning. Skillnaderna mellan de här plattformarna är i förhål- lande till huruvida exekveringstiden och latensen kommer att bli mer signifikant i antalet transaktioner. De framställda testerna visar däremot att Ethereum är kapabel att erhålla 50 000 transaktioner gentemot Hyperledger Fabrics 20 000 vid samma data och period.

3.8 Tidigare arbeten

Det allmänna intresset av att använda blockkedjor i industriella sammanhang har blivit ett hett område under den senaste tiden. En ny standard för att garantera integriteten av data som distribueras i digitala system har inte kunnat bli fullt etablerad i någon större omfattning på grund av att tekniken är så ny. Således är det svårt i nuvarande läge att applicera en fullständig implementation av tekniken

23

(38)

inom ramen av industriella nätverk eftersom källkoden delvis hålls hemlig och bearbetas för att eftersträva organisationers behov.

I [18] är metodiken uppdelad på två olika delar som ’frontend’ och server. Fron- tend innehåller bland annat User Interface och program som implementerar tjäns- terna av servern. Server bär därav huvudansvaret för genomförandet med transak- tionerna och skapandet av block samt användarkontroll. Genom en användarsida och serversida uppnås konsensus för bevarande av egenskaperna konfidentialitet och tillgänglighet. Författarnas tolkning är att blockkedjor förlitar sig på att det är matematiskt omöjligt för en individ att ta över systemet med datakraft. Detta ger utrymme för problematik med kvantdatorer av den orsaken att kryptografiska nycklarna (Elliptic Curve Digital Signature Algorithm) kan bli knäckta med hjälp av extrem datorkraft, vilket skulle göra denna typ av blockkedjor oanvändbara.

I [62] presenteras användandet av blockkedjetekniken för ett flertal industriella applikationer som är utvecklade inom ramen för IBMs initiativ för blockkedjor.

Dessutom klarläggs möjligheten att konceptualisera tekniken med användningen av smart contracts, digitala överenskommelser och säkerhetsfunktioner till ett stort urval av industrier som finans, regering och där säkerhet, skalbarhet och effektivitet har huvudfokus. Författarna anser att den digitala världen producerar utmaningar, då krävs nya förändringar som producerar effektivitet, analyser och modeller för bättre beslutsprocesser.

Thomas Lundqvist och Andrea Blanche m.fl. [19] genomförde ett proof-of- concept där syftet ämnade att tillåta en enhet betala en annan genom elektricitet.

Scenariot var inkoppling av en kabel till ett uttag. På den andra änden kan vad som helst vara anslutet. Vid implementation användes Raspberry Pi enheterna som inbyggda styrenheter i både kabel och uttag. Uttaget kontrollerar tillförsel av elektriciteten med reläer och en sensor som kalkylerar den distribuerade energin.

Resultatet var att tillåta transaktioner mellan olika typer av enheter per automa- tik. Med användandet av Bitcoin gav det utrymme för ett billigare alternativ, mer anonymitet och att innehållet av informationen blev oföränderlig.

Dessförinnan har blockkedjetekniken enbart blivit nyttjad i finansiella samman- hang som exempelvis Bitcoin och Ethereum. I [63] visas en modell på ett decentra- liserat tillvägagångssätt för att samla, lagra och ge nätverkets användare åtkomst till data på ett säkert sätt. Vidare diskuteras protokoll gällande hantering av per- sonlig data i ett P2P-nätverk med blockkedjetekniken. Plattformen gör det möjligt genom att kombinera blockkedjan med hjälp av en access control-moderator med en off-blockkedjelösning. Detta förfarande resulterar i att användarna och organi- sationen inte har behov att förvissa sig om trovärdigheten av en tredje part för säkring av integriteten på informationen.

Detta revolutionära förfaringssätt är inte enbart en dans på rosor, utan ger utrymme för ett antal kända attacker. I [20] genomförs systematiska analyser och

(39)

tester över olika typer av blockkedjor i digitala system. Den mest populära kon- sensusmetoden inom blockkedjor är Proof of Work. Problemet med detta val av konsensusmetod är slösaktigheten av datorkraft, även om utvecklarna bakom Et- hereum jobbar hårt med en ny lösning. Författarnas tolkning av den växande tekniken dAPPs (decentralized Apps) är att dataintegritets-läckagerisken bör tas mer seriöst, med olika tekniker som kan adressera problemen som förvirring gällan- de kod, applikationshärdning och databehandling. Vidare producerar blockkedjor mycket data som block, transaktioner och kontraktens bytecode. Detta innebär att de flesta utvecklarna inte är överens om att all data som erhålls av blockkedjor är giltig.

25

(40)
(41)

4 Experiment

Experimentets genomförande presenteras i detta kapitel. Val av implementerings- teknik blev en privat instans av Ethereum för en enklare demonstration.

4.1 Teknisk uppställning

Utrustningen för experimentet presenteras här. Modellbeteckningar kommer be- skrivas för att kunna upprepa experimentet med liknande medel.

4.1.1 Raspberry Pi 3 Modell B+

I experimentet testas två stycken Raspberry Pi 3 Modell B+ som innehåller en processor på 1.4GHz 64-bit quad-core, 1GB RAM, dual-band wireless LAN och en 10/100 MBit/s Ethernetport. Enheten drivs av en 5V micro USB-kabel som ansluts med en adapter till ett strömuttag. Enheten visas i Figur 5.

Figur 5: Enheten Raspberry Pi 3 Modell B+

27

(42)

4.1.2 ASUS ZenBook UX303LA

Datorn som används i experimentet är en ASUS ZenBook UX303LA. Enheten har en dubbelkärnig Intel I5-4210U på 1.7Ghz, en SSD på 128GB, 4GB intern RAM-minne och sammankopplas med det privata nätverket med hjälp av en USB- Ethernetadapter. Strömmen förses med en extern laddare.

4.1.3 Netgear ProSafe 5 Port Gigabit Switch

En switch av modellen Netgear ProSafe 5 GS105 används under experimentet för att få enheterna att kommunicera med varandra. Enheten förses med ström via en extern strömförsörjande kabel och kommunikationen sker via RJ-45-anslutning.

Switchen klarar av att hantera hastigheter på 1 GB/s. Enheten visas i Figur 6.

Figur 6: Switchen Netgear ProSafe GS105

4.1.4 ASUS RT-AC51U Router

En ASUS RT-AC510U används i experimentet för att ge enheterna tillgång till internet för att ladda ner nödvändig mjukvara. Routern används även som DHCP- server. Enheten visas i Figur 7.

(43)

Figur 7: Routern ASUS RT-AC51U

4.1.5 Topologi

I Figur 8, visas komplett topologi av nätverket som används för implementering av blockkedjan under experimentets gång.

29

(44)

Figur 8: Topologin för det privata nätverket

4.2 Experimentuppställning

I denna sektion redovisas experimentets tillvägagångssätt.

Experimentet har som syfte att simulera ett industriellt scenario. Informatio- nen som överförs med hjälp av transaktioner består av en simulerad temperatur,

(45)

position samt klockslag för mjölken i en mjölktank. Detta för att säkra mjölkens färskhet från bondgård till mjölkpaket. Informationen sparas i blockkedjan och där- med säkras integriteten. Denna process kan i framtiden automatiseras av sensorer i tanken och automatiskt föras in i blockkedjan via transaktioner från noderna.

I experimentet används en PC med operativsystemet Linux virtualiserat och två Raspberry Pi Modell B+ som ansluts till ett privat nätverk. Raspberry Pi- enheterna har uppgraderats med senaste versionen av Raspbian OS, i detta expe- riment har Raspbian Stretch Lite Version 4.14 använts. Enheterna kommunicerar inom det slutna nätverket med hjälp av enheternas integrerade nätverkskort via nätverkskablar och sammankopplas med hjälp av en switch. IP-addresser delas ut till samtliga enheter med hjälp av routerns integrerade DHCP-server. För att kon- trollera en fungerande nätverkstopologi används verktyget ping för att verifiera att alla noder kan kommunicera med varandra.

Därefter laddas den senaste versionen av Go-Ethereum (geth) ner på samtliga enheter för implementering. Två mappar skapas på PCn, miner1 och miner2 genom kommando mkdir -p ~/Chainskills/miner1 och

mkdir -p ~/Chainskills/miner2, och mkdir -p ~/Chainskills/node1 samt mkdir -p ~/Chainskills/node2 på Raspberry Pi-enheterna. Vidare skapas ge- nesisblocket manuellt för att alla noder ska ha samma utgångspunkt och kunna synkronisera informationen mellan enheterna i filen genesis.json. Genesisblocket visas i Figur 9.

Figur 9: Filen för genesisblocket, Genesis.json

Miner1 och miner2 initialiseras med hjälp av kommandot

geth --datadir ~/Chainskills/miner1 init genesis.json och

geth --datadir ~/Chainskills/miner2 init genesis.json. På Raspberry Pi-enheterna körs kommandot

geth --datadir ~/Chainskills/node1 init genesis.json och 31

(46)

geth --datadir ~/Chainskills/node2 init genesis.json. Konton skapas på miner1 och miner2 genom kommandot

geth --datadir ~/Chainskills/miner1 account new och

geth --datadir ~/Chainskills/miner2 account new. På Raspberry Pi-enheterna körs kommandot

geth --datadir ~/Chainskills/node account new och

geth --datadir ~/Chainskills/node2 account new istället. Lösenord anges för de konton som skapas. Ett skript skapas för att starta geth-processen och moduler som ska startas med processen anges. Skriptet är unikt för varje enhet då avlyss- ningsport samt enhetsnamn anges för geth-processen. Genom skriptet initialiseras mining-processen på datorn och nod-processen på Raspberry Pi-enheterna. I Figur 10 visas geth-skriptet för miner1.

Figur 10: Skriptet som start geth-processen på miner1

I Figur 11 visas skriptet som startar geth-processen på nod1.

Figur 11: Skriptet som start geth-processen på nod1

Fortsättningsvis sammankopplas enheterna statiskt till varandra med hjälp av en enode-address, IP-address och nätverksport samt sparas i filen static-nodes.json.

Enode-adressen är en individuell adress som varje enhet får av geth-processen för sammankoppling. Filen static-nodes.json tillåter blocksynkroniseringen att initiera mellan de angivna noderna i filen när skriptet körs. Enode-addressen identifieras att med hjälp av kommandot geth attach som startar upp Javascript-konsolen och därefter skrivs admin.nodeInfo.enode in.

Genom konsolen tillåts även transaktioner att skickas, status på konton att kontrolleras och inspektion av individuella block att undersökas och felsökning att göras. För att säkerställa att noderna har sammankopplats körs kommandot admin.peers vilket visas i Figur 12. Vidare är blockkedjan färdigimplementerad och funktionsduglig.

(47)

Figur 12: Peers på det privata nätverket

33

(48)

Datorn konfigureras för att agera som miner, då Ethereum använder konsen- susmetoden proof-of-work. De två Raspberry Pi-enheterna konfigureras som noder på det privata nätverket. På detta vis kan en majoritet nås vid beslut om ett block ska placeras i kedjan eller inte.

Genom att i Javascript-konsolen exekvera kommandot

eth.sendTransaction({from:sender, to:receiver, value: amount}) genom- förs en transaktion ifrån sender till receiver, och value representerar antalet Ether.

Antalet Ether som skickas är oväsentligt då en privat Ethereum-instans körs och valutan saknar värde.

Ett manipuleringstest av blockkedjan utfördes genom att ändra en av nodernas interna klocka till ett tidigare skede. Den interna klockan på nod 1 konfigurerades till 03:30 medans de övriga nodernas klocka var ställd på 12:20. Syftet var att placera in ett block med en tidigare tidsstämpel än övriga noder i kedjan och manipulera tidslinjen för blocken. Att konfigurera klockan på noden gjordes med kommandot sudo date +%T -s "03:30:00".

För att återställa konfigurationen efter manipulation av variabler krävs det att mappen geth raderas på samtliga noder, genesis.json-filen initialiseras igen och static-nodes.json-filerna uppdateras med de nya enode-adresserna som utdelas.

För att testa ett realistiskt scenario där noder sänder insamlad information till blockkedjan, överfördes tio transaktioner i sekunden under ett fem-minutersintervall.

Ett annat test genomfördes för att identifiera medelvärdet av tiden att produ- cera fram varje block. Detta genomfördes med hjälp av ett skript, för att loopa igenom de senaste n blocken. Skriptet hämtade systematiskt ut epochen för varje block och jämförde det med blocket närmast före för att få en mellanskillnad i se- kunder. Dessa mellanskillnader jämfördes därefter för att räkna ut ett medelvärde för utvinning per block.

References

Related documents

In the Northeast Colorado and Kemp Area, payment levels will be lower than the company-wide average because of the lower sugar content of beets there last

� Vår undersökning har visat att båda företagen som arbetar efter Lean Produktion har stressade operatörer. � Assa Abloy AB:s största anledning till stressade

The ”Total test suites” number represents the total number of different test suites that can be generated for each program (i.e., in how many ways we can combine a modelled program

Min fallstudie bygger på Telematics Valley, en ideell organisation som har till syfte att skapa ett regionalt forum för kommunikation, erfarenhetsutbyte och nätverk för

De största problem som uppstått under detta första år handlar om brister i antagningssystem, rutiner för att kunna anta studenter till program som genomförs i samarbete av

Riksdagen ställer sig bakom det som anförs i motionen om att utreda vilka direktiv som vore lämpliga att införa för att enprocentsregeln ska kunna tillämpas bättre och leda till

I stället för att ta den närmaste vägen hem går du en extra omväg för att undvika ett buskage, en gångtunnel eller ett oupplyst stråk. En av de platser som upplevs som mest

Lagförslaget om att en fast omsorgskontakt ska erbjudas till äldre med hemtjänst föreslås att träda i kraft den 1 januari 2022. Förslaget om att den fasta omsorgskontakten ska