"Blockchain & Smart contracts", presentation by Dr. Kristof Verslype at SAI on October 3rd 2017 in Antwerp (Belgium): https://sai.be/event/8210 - elaborating on different Blockchain technologies, possibilities, weaknesses and use cases.
8. Traditionele Internationale Transactie
8
Bob Alice
Is dit mogelijk zonder vertrouwde partij?
1e gedistribueerde cryptomunt (2009)
Schok doorheen de financiële wereld
Snel aandacht voor Bitcoin/blockchain vanuit de financiële wereld
10. Idee
10
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Ik transfereer 0,4
BTC naar
Ok!
Ok!
Ok!
0,4 BTC →
Bob
Alice
Charlie
Dave
0,4 BTC →
0,4 BTC →
0,4 BTC →
11. Idea
11
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
I transfer
0,4 BTC to .
Ok!
Ok!
Ok!
0,4 BTC →
Bob
Alice
Charlie
Dave
0,4 BTC →
0,4 BTC →
0,4 BTC →
Blockchain
Atomisch
Iedereen schrijft de transactie in zijn/haar append-only spreadsheet
of niemand → Consensus mechanisme
Geldig
Enkel geldige transacties worden aanvaard door het netwerk
Vb. Bob is eigenaar / heeft het geld niet reeds eerder gespendeerd
Veilig en robuust
Systeem blijft correct werken, zelfs indien deel participanten offline of
kwaadaardig is
Relatief snel
Gedistribueerd
12. Blockchain
12
Aan vaste frequentie nieuwe blokken gecreëerd
met daarin de meest recente transacties
De blockchain bevat
alle transacties
Transacties in de blockchain
zijn onverwijderbaar
Blockchain = aaneenschakeling van
blokken, die transacties bevatten
Vele entiteiten bezitten dezelfde
kopie van de blockchain
Block 51
Header
Block 52
Header
Block 53
Header Header
Block 54
5,10 BTC →
0,70 BTC →
Blockchain specifiek: 10 minutes in
Bitcoin, 10 seconden in Ethereum,…
0,40 BTC →
13. Idee
13
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
Transactions
5,1 BTC →
0,7 BTC →
0,4 BTC →
Bob
Alice
Charlie
Dave
0,4 BTC →
0,4 BTC →
0,4 BTC →
20. Gelijktijdige Blokcreatie
20
Wat gebeurt er indien twee miners ongeveer gelijktijdig een geldig blok vinden
Langste tak is diegene die aanvaard wordt
Daarom best een aantal blokken wachten
vooralleer transactie als verwerkt te beschouwen
23. Veiligheid
23
Block 51
Header
Block 52
Header
5,10 BTC →
Header
Block 53
0,70 BTC →
Header
Block 54
0,40 BTC →
Header
Block 53
0,70 BTC →
Header
Block 52
Header
Block 54
0,40 BTC →
Hoe ouder de transactie, hoe beter beschermd
Want gevolgd door meer blokken
waarvoor cryptografische puzzel opnieuw opgelost moet worden
24. Veiligheid
24
Bitcoin is niet alleen een concept…
Gebruiker Software Infrastructuur
Verlies
Diefstal
Misbruik
Informaticus James Howells verloor in 2013 7500 bitcoins door per
ongeluk een oude harde schijf weg te gooien. Die harde schijf bevatte
zijn geheime sleutel…
Het bitcoin protocol is veilig zolang er geen participant meer dan
50% van de rekenkracht bezit
31. Blockchain.info
31
Schaalprobleem
- Alle transacties op blockchain
- 3 transacties / sec. ↔ Visa: 10 000 / sec.
- En blockchain toch al 120GB groot
Schaalprobleem
- Alle transacties in blockchain
- 3 transacties per seconde ↔ Visa: 65 000 / sec.
- En reeds > 132 GB (Blockchain + UTXO, SegWit))
Bitcoin Blockchain Grootte
blockchain.info/charts/blocks-size
Mogelijke aanpassingen korte termijn
- Deel transactie opgeslagen buiten block (SegWit)
- Dubbele blokgrootte (SegWit2X)
=> capaciteit x3-4, opslagvereisten x3-4
Toekomst: Lightening network
32. W a a r v o o r w o r d t h e t
g e b r u i k t ?
32
33. Bitcoin & Privacy
33
Fleder, Michael, Michael S. Kester, and Sudeep Pillai. MIT. "Bitcoin transaction graph analysis." arXiv preprint arXiv:1502.01657 (2015).
Goldfeder, Steven, et al. "When the cookie meets the blockchain: Privacy risks of web payments via cryptocurrencies." arXiv preprint arXiv:1708.04748 (2017).
“Geïdentificeerde” personen gelinkt aan
“Op de meeste shop websites ontvangen third party
trackers informatie over aankopen van gebruikers. Dit
voor analyse- en reclamedoeleinden. Wij tonen aan dat
indien de gebruiker betaalt met een cryptomunt,
trackers typisch genoeg informatie hebben over de
aankoop om de transactie op de blockchain uniek te
identificeren, te linken aan de cookie van de gebruiker,
en verder aan de echte identiteit van de gebruiker.”
Graad van privacy op Bitcoin netwerk, maar verre van perfect
37. Witwassen van Geld
37
Bob’s eBook Shop
https://www.quora.com/How-bitcoin-can-be-used-for-money-laundering
BobAlice Bitcoin Exchange
Bitcoin network
Real world
Anoniem, geen authenticatie
Geen gereguleerde entiteit betrokken
Wettelijke onderzoek bemoeilijk doordat meerdere
jurisdicties betrokken
38. Waarvoor wordt Bitcoin gebruikt?
38
Onmogelijk om exacte getallen te vinden
Illegale activiteiten
Gokken
Speculatie Bescherming tegen
waardeverlies lokale munt
(V.b. Venezuela)
Internationale
transacties
Transacties voor kleine bedragen soms erg duur
39. Waarvoor wordt Bitcoin gebruikt?
39
Onmogelijk om exacte getallen te vinden
Illegale activiteiten
Gokken
Speculatie Internationale
transacties
Transacties voor kleine bedragen soms erg duur
Bescherming tegen
waardeverlies lokale munt
(V.b. Venezuela)
Zet je euro’s om in bitcoins en de overheid heeft er geen vat meer op
→ Democratisering van vluchtroutes
40. Gemiddelde transactiekost in $
40
Volatiel en onvoorspelbaar Gebaseerd op vraag & aanbod
Gebaseerd op grootte (in bytes) van transactie en niet op bedrag
42. Enkele Bedenkingen
42
Bitcoin is een eerste experiment
• Niet perfect en dat mogen we ook niet verwachten
• Gebruik van eenvoudige, oude crypto concepten (jaren ‘70)
Blockchain = nieuwe technologie met potentieel
• In het bijzonder bij samenwerking maar vertrouwensissues
• Jonge technologie met uitdagingen en progressie
Idee distributie vertrouwen m.b.v. technologie
• “Alles dat met een vetrouwde autoriteit gedaan kan
worden, kan ook zonder” - D. Boneh, crypto prof. @ Stanford
• Niet enkel blockchain technologie
47. Data & Blockchain
47
Transaction
0,01 BTC →
Vertrouwde
entiteit
Transaction
Data
Onwijzigbaar
(integriteit)
Onverwijderbaar
(long-term)
Tijdsstempel
Eigenschappen van data in een blockchain
TransparantAuthentiek
→ Toepassingen verschillend van cryptomunten
met bestaande blockchain of met eigen blockchain
Robuust
(beschikbaarheid)
Voor de eenvoud…
50. 50
Registratie Feiten
Alice
9AF
Werkgever
Alice heeft geen blockchain kopie nodig
In werkelijkheid gewoonlijk meer crypto
(hashing, encryptie, pseudonymen)
Transaction 9AF
Diploma
Alice
Master in
Lego Design
KU Leuven
Alice
57. 57
Transfereren Activa
Transaction 23F
→
Transaction XP0
→ 9BG
Transaction 9BG
→ 23F
Hypotheekkantoor
(staatsinstelling)
De rechtmatige
eigenaar van
is .
De rechtmatige
eigenaar van
is .
Eigenaar 1 (Bob) Eigenaar 2 (Charlie)
De rechtmatige
eigenaar van
is .
enkel vereist bij
initiële registratie
Volledige historiek
op de blockchain
58. 58
Transfereren Activa
Transaction 23F
→
Hypotheekkantoor
(staatsinstelling)
Eigenaar 1 (Bob) Eigenaar 2 (Charlie)
Geen notaris vereist
om fondsen tijdelijk in
bewaring te houden
Transaction 9BG
→ 23F
→
Transaction XP0
→ 9BG
→
Eigenaar 3 (Alice)
Transactie enkel geldig
indien ondertekend door
zowel als .
Extra regels mogelijk
(Vb. geldig bodemattest
of goedkeuring notaris)
Exact betaalde bedrag moet verborgen blijven
60. 60
Permissionless Permissioned
Toegang & gebruik door hele wereld Extra laag voor toegangscontrole
Volledig transparant Meer controle op wie ziet wat (vb. audit)
Meestal erg onefficiënt Pakken efficiënter
Vertrouwen gedistribueerd Vertrouwen gedecentraliseerd
Cryptomunt vereist Cryptomunt niet steeds vereist
Vb. Verwerking medische voorschriften
- Enkel erkende artsen kunnen nieuwe
voorschriften uitgeven
- Enkel RIZIV bepaalt welke artsen erkend
- 5/7 mutualiteiten valideren transactie
Publiek Enterprise / Consortium
61. Stroomlijnen Processen
Banken delen blockchain
i.p.v. elk eigen database
Verhuis door burger 1 x
aangeven. Alle
belanghebbenden
geïnformeerd
(electriciteitsleverancier,
post, gemeenten, …)
Geboorte 1 x aangeven,
belang hebbenden
geïnformeerd: lokale
administratie, Kind en
Gezin, bank, verzekering
mutualiteit
Processen tussen overheidsinstellingen
Voordelen
- Geen centrale partij
- Robuust
- Elke stap gevalideerd / volgens regels
- Onwijzigbare audit trail
- Sequentieel → parallel
61
62. Robuuste Data Services
Apotheker
Apotheker Apotheker
Apotheker
62
Mutualiteit
Mutualiteit
Mutualiteit
Vb. Verzekerbaarheid: Is burger aangesloten bij een ziekenfonds
en heeft hij/zij recht op verhoogde tegemoetkoming?
64. Robuuste Data Services
Apotheker
Mutualiteit
Apotheker Apotheker
Mutualiteit
Apotheker
Geen high availability vereistIedereen steeds meest recente informatie
Mogelijks extra bescherming (cryptografie) vereist→ extra complexiteit
64
Mutualiteit
Vb. Verzekerbaarheid: Is burger aangesloten bij een ziekenfonds
en heeft hij/zij recht op verhoogde tegemoetkoming?
66. Uitdagingen
=> Veel onderzoek om deze uitdagingen aan te pakken
Standaardisatie /
best practices
Sleutelbeheer &
bescherming end-
points
Paradigma shift
Privacy &
confidentialiteit
Gebaseerd op
aantal aannames
Schaalbaarheid
Veiligheid Andere
Volatiliteit
wisselkoersen
66
67. Conclusies
Het gaat over VERTROUWEN
• Veelbelovende technologie voor applicaties die
traditioneel vertrouwen vereisen in centrale partijen.
• Daarom wordt het als disruptief beschouwd
Geen oplossing voor alles
• Het is mogelijk met blockchain ≠ Blockchain is de
beste keuze
Uitdagingen
• Schaalbaarheid, sleutelbeheer, privacy, juridisch, …
• Veel onderzoek (MIT, KU Leuven, TU Delft, IBM, …)
67
71. Smart Contracts (aka chaincode)
71
Regels zijn
- Hardgecodeerd in de
Bitcoin software
- Applicatiespecifiek
→ Niet flexibel
Code die uitgevoerd wordt op het blockchain netwerk, zonder centrale partij
Kan een blockchain netwerk ook op
een flexibele regels afdwingen voor
een diverse set van applicaties?
72. Smart Contracts (aka chaincode)
72
Regels zijn
- Hardgecodeerd in de
Bitcoin software
- Applicatiespecifiek
→ Niet flexibel
Code die uitgevoerd wordt op het blockchain netwerk, zonder centrale partij
- Smart contract = set
applicatiespecifieke regels
- Blockchain netwerk dwingt regels af,
zorgt voor correcte uitvoering
- Smart contracts kan cryptogeld
ontvangen, bijhouden en uitgeven
Verwerken
voorschriften
Verkiezingen Verzekeringen
Sterke toename potentieel blockchain technologie
74. Smart Contracts
74
Contract Auction{
function bid()
function end()
HighestBid: €
HighestBidder:
Beneficiary: Charlie
}
bid(), 20€
end()
bid(), 10€
20€
02010
Bob
Alice
Charlie
Alice
10€
Bob
Smart contract kan cryptogeld tijdelijk blokkeren
Niemand kan de correcte uitvoering beïnvloeden
77. 77
contract SimpleAuction
{
address public beneficiary;
uint public auctionStart;
uint public biddingTime;
address public highestBidder;
uint public highestBid;
bool ended;
event HighestBidIncreased(address bidder, uint amount);
event AuctionEnded(address winner, uint amount);
function SimpleAuction(uint _biddingTime, address _beneficiary)
{
beneficiary = _beneficiary;
auctionStart = now;
biddingTime = _biddingTime;
}
function bid() payable
Smart Contract Code
Disclaimer: Een Ethereum exploit wordt genegeerd voor de eenvoud
Interpretatie
Code voor meeste mensen moeilijker te begrijpen dan
menselijke taal
Stel, smart contracts meer en meer gebruikt in
huurcontracten, vastgoedtransacties, verzekeringen, …
Moeten juristen leren programmeren?
- Weinigen expert in twee domeinen
- Begrijpen smart contracts meerwaarde
http://solidity.readthedocs.io/en/develop/solidity-by-example.html
78. 78
contract SimpleAuction
{
address public beneficiary;
uint public auctionStart;
uint public biddingTime;
address public highestBidder;
uint public highestBid;
bool ended;
event HighestBidIncreased(address bidder, uint amount);
event AuctionEnded(address winner, uint amount);
function SimpleAuction(uint _biddingTime, address _beneficiary)
{
beneficiary = _beneficiary;
auctionStart = now;
biddingTime = _biddingTime;
}
...
}
6060604052346100005760405161037c3803806
37c833981016040528080518201919050505b5b
3600060006101000a81548173fffffffffffffffffffffff
fffffffffffff021916908373ffffffffffffffffffffffffffffffff
ffff1602179055505b8060019080519060200190
805460018160011615610100020316600290049
600052602060002090601f01602090048101928
01f106100b557805160ff1916838001178555610
3565b828001600101855582156100e357918201
b828111156100e2578251825591602001919060
101906100c7565b5b50905061010891905b8082
1156101045760008160009055506001016100ec
5b5090565b50505b505b6102608061011c60003
6000f30060606040526000357c0100000000000
000000000000000000000000000000000000000
000900463ffffffff16806341c0e1b514610049578
3cfae321714610058575b610000565b34610000
6100566100ee565b005b3461000057610065610
82565b604051808060200182810382528381815
815260200191508051906020019080838360008
Ontwikkelomgeving
Programmeertaal: Solidity
Gecompileerde Ethereum
byte code op blockchain
Turing compleet (↔ Bitcoin scripts). Alles wat te berekenen is
met een computer kan ook in Solidity / Ethereum byte code
79. Doe dit NOOIT…
79
// Proof of Ownership contract
contract ProofOfOwnership{
mapping(bytes32=>bool) proofs;
//calculate and store the proof for a document
function notarize(string document){
var proof = sha256(document);
proofs[proof] = true;
}
// check if a document has been notarized
function checkDocument(string document) returns (bool){
var proof = calculateProof(document);
return proofs[proof];
}
}
Dit werd als ernstig voorbeeld gegeven op een seminarie door een expert
proofs: c0796844c3cbc… → true
5d5f4926be230… → true
c56d58202b0aa… → true
17f8f6699a8948… → true
…
document VOLLEDIG bewaard in transactie op blockchain
80. Orakels
80
En wat indien een orakel foute informatie aanlevert?
Contract uitvoering kan niet teruggedraaid worden
Soms heeft een smart contract gegevens nodig uit de reële wereld
Compensatie Verzekering
Vertrouwde leverancier van gegevens uit de reële wereld
Orakel roept telkens contractfunctie aan → Transactie op blockchain
81. The DAO
81
Investeerders transfereren Ether naar The
DAO and ontvangen daarvoor voting tokens
1
Contractors dienen investeringsvoorstellen in
2
Investeerders stemmen voor / tegen voorstel
3
Smartcontract transfereert al dan niet geld
4
Set van smart contracts gepubliceerd op Ethereum
Een aantal cijfers
$54m gelekt
naar aanvaller
18 000
investeerders
14% van
alle Ether
$168m
verzameld
Volledig transparant:
code, data & historiek public.
Iedereen kan audit doen
Bugs
- “Code is law”?
- Investeerders vertrouwen dat smart
contract doet wat ze verwachten
82. Ethereum Hard Fork
82
Decentralised Autonomous Organisation (DAO)
DAO verzamelde
$168M (Juni ‘16)
DAO bug exploit –
$54M in Ether lekt
weg (July ‘16)
83. Ethereum Hard Fork
83
Decentralised Autonomous Organisation (DAO)
DAO verzamelde
$168M (Juni ‘16)
DAO bug exploit –
$54M in Ether lekt
weg (July ‘16)
Verwachting/Hoop
(Steun voor) oude tak verdwijnt volledig
“The DAO bug exploit is nooit gebeurd”
Een deel van het verleden wordt collectief vergeten
84. Ethereum Hard Fork
84
Decentralised Autonomous Organisation (DAO)
DAO verzamelde
$168M (Juni ‘16)
DAO bug exploit –
$54M in Ether lekt
weg (July ‘16)
Realiteit: beide takken blijven naast elkaar
→ Replay attack mogelijk
85. Ethereum Hard Fork
85
Tamper-resistance
- Hoe onwijzigbaar is de blockchain?
Niet zo absoluut als beweerd wordt
- Nog aftakkingen (forks)?
Contract split
- Plots niet één, maar twee smart contracts. Welk is geldig?
- Vb. Eén veiling, met twee verschillende winnaars
86. DAO
86
Decentralised Autonomous Organisation
Algoritme (contract) dat gedistribueerd draait op een
blockchain netwerk en autonoom beslissingen neemt
Geen fysiek adres - Geen menselijke interventie
The DAO
Interessante case
Toekomst
Met artificiële intelligentie
87. Initial Coin Offerings (ICO)
87https://www.economist.com/news/finance-and-economics/21721425-it-may-also-spawn-valuable-innovations-market-initial-coin-offerings
Publicatie white paper
(Claims meestal niet geaudit)
ICO periode:
Investeerders kopen munten
Gewoonlijk aan vaste prijs
Meestal ongereguleerd
Business operationeel
Gebruik vereist munten
Munten verhandelbaar
Crowdfunding door lanceren nieuwe cryptomunt
Succesvol → meer vraag → hogere waarde
(beperkt aantal munten)
Manier om geld te verdienen aan gedistribueerde protocols
Gedecentraliseerd
platform voor
competitie online game
Gedecentraliseerde
cloud opslag
88. Conclusies
88
Afdwingen afspraken tussen partijen
die elkaar niet vertrouwen
Mechanisme waarmee ook technisch verplichtingen
afgedwongen kunnen worden
→ Minder afdwingingsproblemen/geschillen
Smart Vs. Traditioneel
- Geen vervanging traditionele contracten/wetgeving
wegens noodzaak menselijke interpretatie
- “Code ondergeschikt aan de wet” en niet “code is wet”
Automatisering & vereenvoudiging
- Vereenvoudiging bestaande processen (zoals huurwaarborg)
- Nieuwe mogelijkheden (V.b. DAO’s, ICO’s)