[THREAD] Qu'est ce qu'un Smart Contract ?

Un #SmartContract ou "contrat intelligent" est un programme informatique qui s'exécute sur toute #Blockchain compatible, et nous allons ici voir l'exemple d' #Ethereum, la plus célèbre et pionnière.

Bonne lecture 😇
La notion de Smart Contract a été théorisée et définie pour la première fois par Nick Szabo en 1994.

Il la définit comme "un protocole de transaction informatisé qui exécute automatiquement les termes d’un contrat.
Les objectifs généraux ...
... sont de satisfaire aux conditions contractuelles courantes
(modalités de paiement, privilèges, confidentialité, exécution),
de minimiser les erreurs tant malveillantes qu’accidentelles et de minimiser le besoin d’intermédiaires fiables."
Ce programme informatique matérialise un accord entre plusieurs parties et permet d'effectuer des transactions automatisées selon des conditions pré-établies.
Nul besoin d'une quelconque autorité centralisée ou d'un tiers de confiance.
C'est pour cette raison que l'on peut parfois lire "code is law", ce qui signifie que les intermédiaires pourront à terme être remplacés par de simples lignes de codes, à conditions que celles-ci soient éprouvées. De cette manière, aucune corruption possible car le code fait foi.
De plus, les SM sont permissionless, distribués, publics et immuables, ce qui rend leur utilisation particulièrement fiable, à condition que le contrat ne présente aucune faille, que ce soit involontairement ou pour faire office de "back-door".
La plupart des SM sont écrits dans le langage de programmation #Solidity, créé par @gavofyork, co-fondateur d'Ethereum et fondateur du projet @Polkadot.

@solidity_lang a été influencé par C++ Python et JavaScript.

(Il est également possible d'écrire des SM en Vyper @vyperlang)
Un SM est composé de fonctions (son code) et de données (son "state"), situés sur une adresse spécifique de la #Blockchain.

Les SM sont un type de compte #Ethereum à part entière, ils peuvent contenir des fonds et effectuer des transactions à travers le réseau.
Ils ne sont cependant pas régis par des utilisateurs mais uniquement déployés sur le réseau et s'exécutent sur l'Ethereum Virtual Machine (EVM).
Un SM peut également être régi par un "multisig", c'est à dire appartenir à plusieurs personnes et nécessitant l'accord d'un pourcentage défini des signataires pour effectuer certaines transactions. Ce mécanisme permet d'établir une meilleure confiance pour les utilisateurs.
⚠️ Attention cependant, les Smart Contracts ne sont en aucun cas comparables à des wallets, un wallet étant uniquement la passerelle entre un compte possédé par un utilisateur et la Blockchain, lequel permet d'effectuer des transactions via ses clés publiques et privées.
Les SM sont parfois comparés à des API publics dans la mesure où la fonction d'un contrat peut être appelée à tout moment, que cela soit par un utilisateur ou encore par un autre contrat. Un contrat peut même déployer un autre contrat !
Un SM présente toutefois des limites, comme de ne pas avoir accès à certaines "real world informations", tout simplement car il ne peut pas effectuer de requête HTTP. C'est là qu'interviennent les oracles, dont le plus fiable est à ce jour @chainlink data.chain.link
L'objectif d'un oracle va donc être d'aller chercher une information située "off-chain" pour qu'elle soit utilisée "on-chain", autrement dit sur la blockchain. Mais c'est un sujet qui mérite un thread à part entière 🙃
Autre caractéristique des SM: leur taille ne peut excéder 24KB. Au delà, le contrat ne pourra pas être déployé. Cela signifie que chaque contrat a un nombre de fonctionnalités limitées. Cette limite a été mise en place afin d'empêcher les denial of service attacks (DOS)
Ainsi se termine ce thread, n'hésitez pas à le compléter si j'ai oublié des éléments, ou me demander si certains points ne sont pas clairs.

Comme d'habitude les partages sont appréciés pour me motiver à créer du contenu et que les FR puissent en bénéficier ❤️

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Rayan 🦇🔊

Rayan 🦇🔊 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @0xRayan_

1 Oct
[THREAD] Qu'est ce que le Gas ? ⛽️
En temps qu'adeptes de la DeFi, vous avez très certainement déjà payé des "Frais de gas" pour effectuer votre transaction / interaction sur la Blockchain Ethereum (ou autre).

Je reviens sur ce concept pour qu'il soit mieux compris par chacun. Image
Le Gas est l'unité de mesure qui exprime l'effort de calcul nécessaire à la réalisation d'une action sur la Blockchain, puis l'ajout de cette transaction sur le registre décentralisé. Il faut comprendre que chaque opération est réalisée grâce à une transaction (Tx), laquelle est Image
elle même effectuée grâce au gas.
Chaque type d'action nécessite un coût en gas + ou - élevé selon l'effort de calcul demandé.(gasLimit)
Par ex certains smart contracts complexes effectuent à eux seuls de multiples Tx, ce qui nécessite une quantité de gas significative. Image
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(