É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N...

43
ÉTUDE DE LA CONSOMMATION ÉNERGÉTIQUE DES SMART CONTRACTS DANS LA BLOCKCHAIN ETHEREUM Jean-Patrick Gelas, Hayri Acar, Hind Benfenatki Université Lyon 1/LIRIS/INRIA/ENS Lyon Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon Navigate : Space / Arrow Keys | - Menu | - Fullscreen | - Overview | - Blackout | - Speaker | - Help M F O B S ? 1 / 43

Transcript of É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N...

Page 1: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ÉTUDE DE LA CONSOMMATIONÉNERGÉTIQUE DES SMART CONTRACTS

DANS LA BLOCKCHAIN ETHEREUM

Jean-Patrick Gelas, Hayri Acar, Hind Benfenatki Université Lyon 1/LIRIS/INRIA/ENS Lyon

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

Navigate : Space / Arrow Keys | - Menu | - Fullscreen | - Overview | - Blackout | - Speaker | - HelpM F O B S ?

1 / 43

Page 2: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

jp@ejc2018:~$whoami

{ "first_name" : "Jean-Patrick", "last_name" : "Gelas", "job" : "Assistant Professor", "locations" : [ "Université Claude Bernard - Lyon 1", "Avalon/INRIA/ENS Lyon" ], "url" : "https://perso.univ-lyon1.fr/jean-patrick.gelas", "email" : "[email protected]", "github" : "https://github.com/jpgelas", "hobbies" : [ "skydive", "wingsuit" ]}

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

2 / 43

Page 3: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

AGENDAOn ne parlera pas de ...

Cryptographie, Hash, Merkle tree,...Algorithmes de consensus (PoW, PoS, DPoS,...)Plateformes d'échangesComment miner de la crypto monnaieComment devenir crypto millionaire !

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

3 / 43

Page 4: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

COMPARATIF

https://blog.picks.co/pow-is-efficient-aa3d442754d3

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

4 / 43

Page 5: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

OBJECTIFSRappels (Blockchain, Mineurs, ...)Introduction à la blockchain EthereumLes Smart Contracts : Création, déploiement,fonctionnement.Modélisation et maîtrise de leur consommation.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

5 / 43

Page 6: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

BLOCKCHAIN

Blockchain : Structure de données simpleLa technologie Blockchain : « Base de données »sécurisées et décentralisées.

Démo : https://anders.com/blockchain/

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

6 / 43

Page 7: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

LES MINEURSHéberge une copie de la blockchainAjoutent de nouvelles liste de transactions (i.e. desblocs) à la chaîne.Vérifient l’intégrité de la blockchainGénèrent de nouveaux coins(Exécutent les Smart Contracts)

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

7 / 43

Page 8: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ETHEREUM Protocole d'échanges décentralisés

permettant la création par lesutilisateurs de contrats intelligentsgrâce à un langage Turing-complet.

- Wikipedia

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

8 / 43

Page 9: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ETHEREUMBlockchain de seconde générationDéveloppée par Vitalik Buterin, lancée en juillet2015.Fréquence moyenne des blocs : 14-15 secondesTaille des blocs : dynamiqueSymbole boursier : ETHQuantité maximale : non limitée

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

9 / 43

Page 10: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

L’infrastructure Ethereum 27500 nœuds contre 7000 pour Bitcoin

Source: - 18/07/2017https://twitter.com/peter_szilagyi/status/887272506914213888

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

10 / 43

Page 11: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

https://www.ethernodes.org

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

11 / 43

Page 12: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

SMART CONTRACTProgramme autonomeDéployé et répliquéNon modifiableAdapté pour gérer des transactions

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

12 / 43

Page 13: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

SMART CONTRACT SUITE

Du bytecode stocké dans la blockchainRédigé dans un langage de haut niveau : SolidityCompilé (solc)Accessible via une adresse codée sur 160 bitsExécuté dans l'Ethereum Virtual Machine (EVM) 0x71c7656ec7ab88b098defb751b7401b5f6d8976f

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

13 / 43

Page 14: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

CODE MACHINE"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORECALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH2 0x487 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE SWAP1 MLOAD PUSH1..." "object":"608060405234801561001057600080fd5b50604051602080610487833981016040908152905160008054600160a060020a0319163317808255600160a060020a03168152600160208190529290209190915560ff81166100606..."

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

14 / 43

Page 15: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

LE LANGAGE SOLIDITY

Langage de haut niveauinfluencé par C++, Python et Javascript.Typé statiquement.Supporte l'héritage,l'appel à des bibliothèques,la définition de type complexe par les utilisateurs.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

15 / 43

Page 16: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

HELLO WORLDpragma solidity ^0.4.18;contract Hello { string message = "Default message"; function getMessage () public view returns (string) { return message; } function setMessage (string _message) public payable { message = _message; }}

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

16 / 43

Page 17: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

0X (ZRX) TOKEN (ERC-20)contract ZRXToken is UnlimitedAllowanceToken { uint8 constant public decimals = 18; uint public totalSupply = 10**27; // 1 billion tokens, 18 string constant public name = "0x Protocol Token"; string constant public symbol = "ZRX"; function ZRXToken() { balances[msg.sender] = totalSupply;...

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

17 / 43

Page 18: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

NEXIUM (NXC) TOKEN (ERC-20)contract Nexium { ... function Nexium() { initialSupply = 100000000000; balanceOf[msg.sender] = initialSupply; name = 'Nexium'; symbol = 'NxC'; decimals = 3; burnAddress = 0x1b320000000000000000000000000000000000 } function totalSupply() returns(uint){ return initialSupply - balanceOf[burnAddress]; } function transfer(address _to, uint256 _value) ... function transferFrom(address _from, ...

http://b2expand.com/nexium-token

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

18 / 43

Page 19: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ETHEREUM VIRTUAL MACHINE

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

19 / 43

Page 20: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ETHEREUM VIRTUAL MACHINEMachine (quasi-) Turing complete.Environnement d'exécution des Smart ContractsÉmule une machine 256 bits avec des pseudo-registresRegistres émulés par une stack virtuel

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

20 / 43

Page 21: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ETHEREUM ET UNITÉS DE MESUREEther (ETH) : le nom de la crypto monnaieWei : une fraction d'Ether (1 ETH = 1018 Wei)GAS : unité de mesure en terme de quantité decalculGAS price : défini le prix (en GWei) que vous êtes prêtà payer au mineur.GAS limit : Quantité maximum de gas que vous êtesprêt à payer pour une transaction.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

21 / 43

Page 22: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

ANALOGIEGAS limit : capacité du réservoir d'une voiture enlitre.

GAS price le prix du litre de carburant.

Voiture : 1,50 EUR (prix) par litre (unité)Ethereum : 20 GWei (prix) par GAS (unité)

Pour remplir le réservoir il faut :

50 litres à 1,50 EUR = 75 EUR21000 unités de GAS à 20 GWei = 0.00042 ETH

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

22 / 43

Page 23: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

REMARQUESFixer un GAS limit évite de dépenser une fortune encas de problème.La quantité de GAS requise est définie par laquantité d'instructions exécutées.Fixer un GAS limit trop petit a peu d'intérêt.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

23 / 43

Page 24: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

COÛT DES INSTRUCTIONS

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

24 / 43

Page 25: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

COÛT D'UNE TRANSACTIONCoût total d'une transaction = GAS_price * GAS_usedPriorité aux transactions avec un GAS_price élevé.Plus l'utilisateur est prêt à payer, plus vite latransaction sera traitée.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

25 / 43

Page 26: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

https://www.myetherwallet.com

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

26 / 43

Page 27: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

27 / 43

Page 28: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

28 / 43

Page 29: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

PERFORMANCES ACTUELLESblock time 15 sec, 4 blocks/min5959 block/day, 2 174 897 block/yearBlock Gas limit 8 000 000Daily Gas cap 47 668 965 51776 364 avg gas/tx624 236 tx/day cap433 tx/min7 tx/sec

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

29 / 43

Page 30: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

EN RÉSUMÉ : POUR LE CALCUL... L'infrastructure Ethereum est un énorme ordinateurTuring complet distribuéUltra tolérant aux pannesTrés mal exploité car tous les noeuds exécutent lesmêmes instructions avec les même données

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

30 / 43

Page 31: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

EN RÉSUMÉ : POUR LE STOCKAGE... On est limité par conception à :

la capacité de stockage des noeudsle débit (90 kB / 15 sec => 50 kbits/s)le prix du GAS qui fluctue en fonction de l'EtherSSTORE : 20.000 GAS/Word -> 640.000 GAS/KB

3,5 GWei / GAS -> 0,00224 ETH/KB200 $/ETH -> 0,448 $/KB

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

31 / 43

Page 32: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

448 000 USD / GBYTES~45 HEURES

(novembre 2018)

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

32 / 43

Page 33: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

33 / 43

Page 34: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

OUTILS DE DÉVELOPPEMENT

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

34 / 43

Page 35: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

GANACHE

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

35 / 43

Page 36: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

METAMASK

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

36 / 43

Page 37: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

TRANSACTION

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

37 / 43

Page 38: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

TRANSACTION DÉTAIL

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

38 / 43

Page 39: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

39 / 43

Page 40: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

REMIX

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

40 / 43

Page 41: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

CONCLUSIONMiner de l'ether = Sécuriser le réseau = Vérifier lestraitementsPar conception la blockchain Ethereum garantie :

l'immutabilité des données,l'exécution et l'accès sans censure possible.

Analyser un Smart Contract en terme deconsommation de GAS pour maitriser le coûtoperationnel.Maximiser les calculs et le stockage offchain.

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

41 / 43

Page 42: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

QUESTIONS Cette présentation est disponible sur

https://gitpitch.com/jpgelas/EJC

:wq!

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

42 / 43

Page 43: É T U DE DE L A CO N S O M M AT I O N É N E R G É …É T U DE DE L A CO N S O M M AT I O N É N E R G É T I Q U E DE S S M A RT CO N T RACTS DA N S L A B LO C KC H A I N E T H

LIENS UTILESOPCODE list + GAS :

Ethernodes (28/10/2018 -> 13320 nodes) :

https://hackernoon.com/ether-purchase-power-df40a38c5a2fhttps://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-

YAUCcNK950dUzMQPMJBxRtGCqs/edit#gid=0https://www.ethernodes.org/network/1

https://www.etherchain.org/charts/averageBlockUtilizationhttps://etherscan.io/https://medium.com/coinmonks/storing-on-ethereum-analyzing-the-costs-922d41d6b316

Entretiens Jacques Cartier, 12-13 novembre 2018, ENS Lyon

43 / 43