RICM5 2018 2019 - UGAChain - Smart Contract

From air
Jump to navigation Jump to search

Smart Contract

Définition

Les « Smart Contracts » sont des contrats qui s’appuient sur la technologie Blockchain pour rendre infalsifiables leurs termes et les conditions de leurs exécutions.

Qu’est-ce qui rend un « Smart Contract » intelligent ? Alors qu’un contrat légal traditionnel définit les règles d’un accord entre plusieurs parties, un Smart Contract va plus loin et fige ces règles dans une Blockchain tout en assurant le transfert d’un actif – quel qu’il soit – lorsque les conditions contractuelles se vérifient.

Références : https://www.lemagit.fr/conseil/Blockchain-quest-ce-quun-Smart-Contract-et-a-quoi-ca-sert

Un Smart Contrat est essentiellement la logique métier utilisée dans une blockchain.

Par exemple un smart contrat pourrait mettre à jour la balance d'un compte bancaire en assurant que la somme d'argent nécessaire au débit est bien présente sur un compte avant d'effectuer ce dernier.

Références : https://www.hyperledger.org/wp-content/uploads/2018/04/Hyperledger_Arch_WG_Paper_2_SmartContracts.pdf

Catégories de Smart Contract

Les Smart Contracts sont la logique métier des blockchains. Ils sont classés dans deux catégories suivant le cas d'usage :

  • On-chain Smart Contracts
  • Installed Smart Contracts

On-chain Smart Contracts

Ils sont exécutés quand une transaction survient dans la blockchain et ils sont stockés au cœur même de cette dernière.

Installed Smart Contracts

Ils sont exécutés avant que les transactions n'arrivent au "ledger" ou avant le lancement de l'application (le réseau).

Références : https://hackernoon.com/how-are-smart-contracts-executed-in-hyperledger-57efebf03f12

Smart Contract et Hyperledger

Les Smart Contract sont au coeur de l'implémentation des Blockchain. La plateforme open source Hyperledger facilite l'implémentation des Smart Contract, et donc la "business logic" qui régit le fonctionnement des Blockchain.

Exécution d'un Smart Contract au sein d'Hyperledger

La figure 1 montre comment une requête envoyée à un smart contrat est traité.

L'entré comprend l'identifiant du contrat à utiliser, la requête de transaction, l'état courant du ledger et les éventuelles dépendances de la transaction.

L'interpréteur de contrat (le bloc du milieu) est chargé avec l'état courant du ledger et le code du smart contract. Quand l'interpréteur de contrat reçoit une requête il la vérifie immédiatement et la rejette en cas d'invalidité.

Les sorties appropriées sont générées si la requête est valide et acceptée. Ces sorties incluent un nouvel état du ledger et d'éventuels effets-secondaires.

Quand le traitement est terminé l'interpréteur empaquette le nouvel état, une attestation de validité et d'éventuels indices d'ordre pour le service de consensus.

Smart contract hyperledger.png

Références : https://www.hyperledger.org/wp-content/uploads/2018/04/Hyperledger_Arch_WG_Paper_2_SmartContracts.pdf#page=4

Interaction entre les Smart Contracts et les composants Hyperledger

La figure suivante montre comment les Smart Contracts interagissent avec les différentes couches architecturales de Hyperledger.

Hyperledger layers interaction.png

Références : https://www.hyperledger.org/wp-content/uploads/2018/04/Hyperledger_Arch_WG_Paper_2_SmartContracts.pdf