44
Bitcoin Kryptowährungen Tomica Sachevski Michael Schreiber Mario Strohmeier Universität Salzburg Fachbereich Computerwissenschaften

Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

BitcoinKryptowährungen

Tomica Sachevski Michael Schreiber Mario Strohmeier

Universität SalzburgFachbereich Computerwissenschaften

Page 2: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Inhaltsverzeichnis

1. Kryptowährungen

2. Bitcoin

Übersicht

Wie bekommt man eine eigene Bitcoin ”Adresse”

Wie werden Bitcoins gespeichert?

3. Blockchain

4. Mining

1

Page 3: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Kryptowährungen

Page 4: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Was sind Kryptowährungen?

• Kryptowährungen sind Währungen in Form digitalerZahlungsmittel. Bei ihnen werden Prinzipien der Kryptographieangewandt, um ein verteiltes, dezentrales und sicheres digitalesZahlungssystem zu realisieren. Sie werden - im Gegensatz zuZentralbankgeld - bis heute ausschließlich durch PrivatePersonen geschöpft.

Quelle: [1]

2

Page 5: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Unterschied zwischen Währungen und Kryptowährung

Im Gegensatz zu Währungen, bieten Kryptowährungen:

• Zahlungsfreiheit (Zahlung jederzeit möglich)• Sicherheit für Händler (z.B. keine “Chargebacks”)• Neutralität (nicht vom Staat oder von Banken gesteuert)• Anonymität

Die Nachteile sind jedoch:

• keine staatliche Überwachung• keine Möglichkeiten der Rückabwicklung• geringe Verbreitung

3

Page 6: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Kopieren von Krytpowährungen (“double-spend” Problem)

Die sog. ”Blockchain” ist die Lösung für ein generelles DigitalesProblem: Das duplizieren von Daten, bzw. in unserem Fall dasmehrmalige Ausgeben von digitaler Währung.Sie enthält Einträge mit Transaktionen, welche durch Kryptographieverschlüsselt und validiert werden.Die Blockchain ist für jeden öffentlich einsehbar und Fundamentalerbestandteil der meisten gängigen und beliebten Kryptowährungen.

4

Page 7: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Überblick beliebter Kryptowährungen

Rang Währung Marktkapitalisierung

1 Bitcoin 17.689 Mio. US-Dollar2 Ethereum 4.508 Mio. US-Dollar3 Ripple 790 Mio. US-Dollar4 Dash (ehem. Darkcoin) 494 Mio. US-Dollar

Liste von Kryptowährungen [2]

5

Page 8: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Bitcoin

Page 9: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Übersicht

Page 10: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Was ist Bitcoin?

• Bitcoin („digitale Münze“) ist ein weltweit verwendbares,dezentrales Zahlungssystem und der Name einer digitalenGeldeinheit.

Quelle: [3]

6

Page 11: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie ist Bitcoin entstanden?

• Satoshi Nakamoto (Pseudonym) startet das Projekt im Mai 2007.• Das Bitcoin-Zahlungssystem wurde erstmals im Oktober 2008 ineinem veröffentlichten White-Paper beschrieben. Im Jahr daraufwurde eine Open-Source-Referenz-Software dazu veröffentlicht.

• Nakamoto half bei der Weiterentwicklung des Quellcodes bisDezember 2010. Ab diesem Zeitpunkt wurde das Projekt jedochvon anderen Entwicklern übernommen (Open-Source).

7

Page 12: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie funktioniert Bitcoin?

• Basierend auf der Blockchain-Technologie• Transaktionen finden zwischen sog. ”Wallets” statt• Jedes Wallet hat einen einzigartigen Private Key, welcher fürTransaktionen benötigt wird

• Transaktionen sind öffentlich einsehbar und meist in 10 Minutenbestätigt/validiert, anhand eines Prozesses der ”Mining”genannt wird

8

Page 13: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Anonymität

Die Transaktionen zwischen Adressen ist öffentlich einsehbar.Jedoch sind hier auf den ersten Blick lediglich Zufallszahlen sichtbar.Wenn jedoch einer dieser Adressen eine Identität zugewiesenwerden kann, wäre es theoretisch möglich sämtliche Transaktionennachzuverfolgen.Dies kann jedoch erschwert werden, indem für jede Transaktion eineneue Wallet Private Key Adresse verwendet wird.

Beispiel:

• X hat in einem Forum eine Signatur mit seiner öffentlichenBitcoin Adresse und bekommt Währung transferiert

• X kauft einen Schoko Riegel mit Bitcoins von Person Y• Person Y will X ausspionieren! Daher analysiert Y die Blockchainund googelt sämtliche Adressen

• Person Y findet X anhand der Signatur im Forum, welche seineAdresse enthält

9

Page 14: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie bekommt man eine eigeneBitcoin ”Adresse”

Page 15: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Bitcoin Adressen

Bitcoin Adressen bestehen aus dem Private und Public Key:

• Private key• zufällig generiert (Zahlen und Buchstaben)• für Transaktionen benötigt• muss geheim bleiben• wird benötigt um auf ein Wallet zuzugreifen

• Public key• mathematisch zu diesem Private Key dazugehörend• kann öffentlich geteilt werden

• Bitcoin Adressen• mathematisch zu diesem Public Key dazugehörend• wird benötigt um eingehende Zahlungen zu erhalten

Private Key -> Public Key -> Bitcoin Adressen

10

Page 16: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie werden Bitcoins gespeichert?

Page 17: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie werden Bitcoins gespeichert?

• Simple Local Storage (Hot Storage)• Der einfachster Weg, um Bitcoins zu speichern, ist auf einemlokalen Gerät

• Cold Storage (Offline Speicherplatz)• Hierarchical wallet• Brain wallet• Paper Wallet• Hardware wallet

• Online Speicherplatz• Online Wallets

Quelle: [4, S. 101-113]

11

Page 18: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Threshold cryptography

Dient der erweiterten Sicherheit bei Transaktionen. Das Wallet (inwelchem Bitcoins gespeichert werden) kann so konfiguriert werden,dass Transaktionen von mehreren Instanzen authorisiert werdenmüssen.Z.B. kann eine Transaktion auf dem PC getätigt werden, welchejedoch abschließend von der Handy App authorisiert bzw. bestätigtwerden muss.

Quelle: [4, S. 108-112]

12

Page 19: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Multi-signatures

Eine Multi-Signature Adresse ist eine Adresse, die mit mehr alseinem Private Key verknüpft ist. Um eine Transaktion zu betätigen,müssen mind. N aus M Personen ihren Key zur Verfügung stellen.

Quelle: [4, S. 108-112]

13

Page 20: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Blockchain

Page 21: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Grundlagen I

• Jeder Block hat:• Hash des vorherigen Blocks• Daten• Hash dieses Blocks

• Es gibt einen initialen Block, da dieser referenziert werden muss.

• Durch das referenzieren der vorherigen Blöcke entsteht dieBlockchain.

14

Page 22: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Grundlagen II

• Die Blockchain wird über P2P verschickt• Was passiert, wenn eine Transaktion getätigt wird?

• Der neue Block wird erzeugt, durch:• Referenzieren des vorherigen Blocks• Die Daten werden abgespeichert• Der SHA-256 Hash des Blocks wird erzeugt

• Die neue Blockchain wird zu den Peers geschickt und es wirdüberprüft, ob es sich um eine korrekte Blockchain handelt

15

Page 23: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Praktisches Beispiel

Einfache Blockchain in Javascript mit Node.jsUmsetzung der Grundlagen

Download + Anleitung ist unterhttps://github.com/Raydercorp/blockchain

zu finden.

Aufbauend auf: [5]

16

Page 24: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Code-Snippets I

Block erstellengenerateNextBlock = ( blockData ) => {

var previousBlock = getLa tes tB lock ( ) ;var nextIndex = previousBlock . index + 1 ;var nextTimestamp = new Date ( ) . getTime ( ) / 1000 ;var nextHash = calculateHash ( nextIndex , previousBlock . hash , nextTimestamp , blockData ) ;return new Block ( nextIndex , previousBlock . hash , nextTimestamp , blockData , nextHash ) ;

} ;

calculateHash = ( index , previousHash , timestamp , data ) => {return Crypto JS . SHA256 ( index + previousHash + timestamp + data ) . t oS t r i ng ( ) ;

} ;

17

Page 25: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Code-Snippets II

Block hinzufügenaddBlock = ( newBlock ) => {

i f ( isVal idNewBlock ( newBlock , ge tLa tes tB lock ( ) ) ) {blockchain . push ( newBlock ) ;

}} ;

isVal idNewBlock = ( newBlock , previousBlock ) => {i f ( previousBlock . index + 1 ! = = newBlock . index ) {

console . log ('invalid index' ) ;return fa l se ;

} else i f ( previousBlock . hash ! = = newBlock . previousHash ) {console . log ('invalid previoushash' ) ;return fa l se ;

} else i f ( ca lculateHashForBlock ( newBlock ) ! = = newBlock . hash ) {console . log ( typeof ( newBlock . hash ) + ' ' + typeof calculateHashForBlock ( newBlock ) ) ;console . log ('invalid hash: ' + calculateHashForBlock ( newBlock ) + ' ' + newBlock . hash ) ;return fa l se ;

}return true ;

} ;

ca lculateHashForBlock = ( block ) => {return calculateHash ( block . index , block . previousHash , block . timestamp , block . data ) ;

} ;

18

Page 26: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Code-Snippets III

Peer broadcast bearbeitenhandleBlockchainResponse = (message ) => {

var rece ivedBlocks = JSON . parse (message . data ) . so r t ( ( b1 , b2 ) => ( b1 . index − b2 . index ) ) ;var l a tes tB lockRece ived = rece ivedBlocks [ rece ivedBlocks . length − 1 ] ;var l a tes tB lockHeld = getLa tes tB lock ( ) ;i f ( la tes tB lockRece ived . index > la tes tB lockHeld . index ) {

console . log ('blockchain possibly behind. We got: ' + la tes tB lockHeld . index + ' Peer got: ' +la tes tB lockRece ived . index ) ;

i f ( la tes tB lockHeld . hash === la tes tB lockRece ived . previousHash ) {console . log ("We can append the received block to our chain" ) ;blockchain . push ( la tes tB lockRece ived ) ;broadcast ( responseLatestMsg ( ) ) ;

} else i f ( rece ivedBlocks . length === 1 ) {console . log ("We have to query the chain from our peer" ) ;broadcast ( queryAllMsg ( ) ) ;

} else {console . log ("Received blockchain is longer than current blockchain" ) ;replaceChain ( rece ivedBlocks ) ;

}} else {

console . log ('received blockchain is not longer than current blockchain. Do nothing' ) ;}

} ;

19

Page 27: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Code-Snippets IV

Blockchain ersetzenreplaceChain = ( newBlocks ) => {

i f ( i sVa l idCha in ( newBlocks ) && newBlocks . length > blockchain . length ) {console . log ('Received blockchain is valid. Replacing current blockchain with received

blockchain' ) ;blockchain = newBlocks ;broadcast ( responseLatestMsg ( ) ) ;

} else {console . log ('Received blockchain invalid' ) ;

}} ;

i sVa l idCha in = ( b lockchainToVal idate ) => {i f ( JSON . s t r i n g i f y ( b lockchainToVal idate [ 0 ] ) ! = = JSON . s t r i n g i f y ( g e t I n i t i a l B l o c k ( ) ) ) {

return fa l se ;}var tempBlocks = [ b lockchainToVal idate [ 0 ] ] ;f o r ( var i = 1 ; i < b lockchainToVal idate . length ; i ++ ) {

i f ( isVal idNewBlock ( b lockchainToVal idate [ i ] , tempBlocks [ i − 1 ] ) ) {tempBlocks . push ( blockchainToVal idate [ i ] ) ;

} else {return fa l se ;

}}return true ;

} ;

20

Page 28: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Zusätzliche Funktionen für Cryptocurrencies?

• Frühere Transaktionen müssen in den Daten referenziert werdenkönnen.

• Es muss nicht die ganze Blockchain überprüft werden.

• Es wird eine Signatur benötigt.• Eine Möglichkeit, um eine Transaktion mit bestimmten Usern zumachen.

• Effizientes bearbeiten mehrerer Transaktionen zum “gleichen“Zeitpunkt.

Diese Funktionen sind alle in der Blockchain umgesetzt!

Quelle: [4, S. 78]

21

Page 29: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! I

” hash ” : ” 5a42590fbe0a90ee8e8747244d6c84f0db1a3a24e8f1b95b10c9e050990b8b6b ” ,” ver ” : 1 ,” v in_sz ” : 2 ,” vout_sz ” : 1 ,” lock_t ime ” : 0 ,” s i z e ” : 404 ,” in ” : [{” prev_out ” : {” hash ” : ” 3be4ac9728a0823cf5e2deb2e86fc0bd2aa503a91d307b42ba76117d79280260 ” ,”n” : 0

} ,” s c r i p t S i g ” : ” 3 0 4 4 0 . . . ”

} ,{” prev_out ” : {” hash ” : ” 7508e6ab259b4df0fd5147bab0c949d81473db4518f81afc5c3f52f91f f6b34e ” ,”n” : 0

} ,” s c r i p t S i g ” : ” 3 f 3 a 4 c e 8 1 . . . ”

}] ,” out ” : [{” value ” : ” 10 . 1 2287097 ” ,” scr iptPubKey ” : ”OP_DUP OP_HASH160 69e02e18b5705a05dd6b28ed517716c894b3d42e OP_EQUALVERIFY

OP_CHECKSIG ”}

]

22

Page 30: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! II

• Frühere Transaktionen werden durch die Inputs referenziert.• Die Hashes dienen als Pointer.• Außerdem wird der Index der vorhergehenden Transaktion des zuüberprüfenden Outputs übergeben.

• Jeder input wird zusätzlich noch signiert, um zu beweisen, dasswir die vorherigen Outputs auch verwenden dürfen.

” in ” : [{” prev_out ” : {” hash ” : ” 3be4ac9728a0823cf5e2deb2e86fc0bd2aa503a91d307b42ba76117d79280260 ” ,”n” : 0

} ,” s c r i p t S i g ” : ” 3 0 4 4 0 . . . ”

} ,

23

Page 31: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! III

• Bestimmte User werden über die Outputs referenziert.• Zuerst gibt es das value Feld. Das sind die zu überweisendenBitcoins.

• Ist die Summe dieser Felder kleiner als die Summe der referenziertenInputs, dann handelt es sich um eine Überweisung an den Ausstellerdes Blocks.

• Ansonsten um eine Überweisung des Ausstellers.

” out ” : [{” value ” : ” 10 . 1 2287097 ” ,” scr iptPubKey ” : ”OP_DUP OP_HASH160 69e02e18b5705a05dd6b28ed517716c894b3d42e OP_EQUALVERIFY

OP_CHECKSIG ”}

]

24

Page 32: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! IV

• Da die Public Keys gehasht sind handelt es sich bei dem FeldscriptPubKey um eine Reihe von Scripts die ausgeführt werden,um die Transaktion durchzuführen.

• Diese Transaktion kann von einem Public Key der zu X hasht, inVerbindung mit einer Signatur des Besitzers des Public Keys,eingelöst werden.

• Um dies zu bewerkstelligen, ist die Signatur des Inputs auch einscript. Diese zwei scripts werden nun konkateniert und müssennacheinander Fehlerfrei ablaufen, damit die Transaktion gültig ist.

” out ” : [{” value ” : ” 10 . 1 2287097 ” ,” scr iptPubKey ” : ”OP_DUP OP_HASH160 69e02e18b5705a05dd6b28ed517716c894b3d42e OP_EQUALVERIFY

OP_CHECKSIG ”}

]

25

Page 33: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! V

• Um mehrere Transaktionen zum gleichen Zeitpunkt bearbeitenzu können, werden keine einzelnen Transaktionen gespeichert,sondern eine Baumstruktur die mehrere Transaktionenbeinhaltet.

26

Page 34: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Umsetzung dieser Funktionen! VI

Abbildung 1: Baumstruktur [4, S. 88]

Quelle: [4, S. 78-89]

27

Page 35: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Bitcoin spezifische Daten

• Älteste Blockchain (Januar 2009)• ∼126 GB groß• ∼6700 Peers. Redundant und Öffentlich

Stand: März 2017 [6]

28

Page 36: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Mining

Page 37: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Wie funktioniert Bitcoin Mining?

Es gibt eine Liste mit Blöcken unbestätigter Transaktionen.Diese Blöcke enhalten Informationen über die Transaktionen.Die Miner bestätigen/validieren diese Blöcke und fügen sie derBlock Chain hinzu.Die Blöcke werden dabei in einen Hash umgewandelt, dabei wirdauch der Hash des Vorgängerblocks mit einbezogen. Dies verhindertauch die Manipulation der Blockchain bzw. der Blöcke.Für jeden neuen Hash verwendet die Mining-Software eine anderezufällig generierte Zahl für den Block Header (”nonce”).

Um das Mining schwieriger zu gestalten, gibt es dieZiel-Schwierigkeit:

• gültier Hash muss kleiner als Ziel-Schwierigkeit sein• Ziel-Schwierigkeit wird alle 2016 Blöcke angepasst• es werden ca. 14 Tage benötigt für 2016 valide Blöcke• Ziel-Schwierigkeit wird an die Leistung im Netzwerk angepasst 29

Page 38: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Hardware

• CPU• GPU (parallele Berechnungen) ca. +50-100% Hashrate imVergleich zur CPU

• Field Programmable Gate Arrays (FPGA) ca. 5-facheEnergieeffizienz im Vergleich zur GPU

• Application Specific Integrated Circuit (ASIC) ca. +100% Hashrateim Vergleich zur GPU / FPGA

30

Page 39: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Software

• ”Bitcoin Classic”:• Grafische Oberfläche (Desktop Programm)• Dient als Wallet (Anlegen / Verwalten von Adressen)• Überweisen / Empfangen von Bitcoins• kann als Server gestartet werden um Bitcoins zu ”minen”

• ”GUIMiner”:• Bitcoins ”minen”• Grafische Oberfläche• Unterstützt GPU / CPU

31

Page 40: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Pooled mining / Private mining

• Pooled mining:• mehrere Clients arbeiten an einem Block• geteiltes Einkommen anhand der geleisteten Arbeit (”processingpower”)

• regelmäßiges Einkommen

• Private mining:• nur ein Client arbeitet an einem Block• volles Einkommen beim finden eines gültigen Blocks• unregelmäßiges Einkommen

32

Page 41: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

Noch Fragen?

32

Page 42: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

References I

Wikipedia.Kryptowährung.https://de.wikipedia.org/wiki/Kryptow%C3%A4hrung.Accessed: 24.04.2017.

Wikipedia.Liste von Kryptowährungen.https://de.wikipedia.org/wiki/Liste_von_Kryptow%C3%A4hrungen.Accessed: 20.04.2017.

Wikipedia.Bitcoin.https://de.wikipedia.org/wiki/Bitcoin.Accessed: 24.04.2017.

Page 43: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

References II

Narayanana Arvind, Bonneau Joseph, Felten Edward, MillerAndrew, and Goldfeder Steven.Bitcoin and Cryptocurrency Technologies.https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf?a=1.Accessed: 14.04.2017.

lhartikk and lukaswelte.Naivechain.https://github.com/lhartikk/naivechain.Accessed: 06.04.2017.

Page 44: Bitcoin - Kryptowährungenuhl/PScrypt17/Bitcoin.pdf · Was sind Kryptowährungen? • KryptowährungensindWährungeninFormdigitaler Zahlungsmittel.BeiihnenwerdenPrinzipienderKryptographie

References III

Wikipedia.Blockchain.https://de.wikipedia.org/wiki/Blockchain#Anwendungsbeispiel_Bitcoin.Accessed: 18.04.2017.