Applez Nous: +41 22 518 70 00
Théorisé par Nick Szabo dès 1994 et concrétisé par Ethereum en 2015, un Smart Contract (contrat intelligent) est un programme autonome déployé sur la blockchain. Il dispose de sa propre adresse de compte, stocke des variables d’état et exécute automatiquement des instructions logiques déterministes dès qu’il est sollicité par une transaction externe.
L’EVM est un ordinateur mondial décentralisé à pile (Stack Machine) exécutant du bytecode standardisé (Opcodes). Chaque opération élémentaire exécutée par l’EVM (une addition, une écriture dans le stockage, une comparaison) consomme une quantité déterminée de Gas :
Coût de transaction = Gaz consommé × Prix unitaire du Gaz (exprimé en Gwei)
Ce mécanisme de gaz empêche les boucles infinies accidentelles ou malveillantes (problème de l’arrêt de Turing) et rémunère les nœuds pour les ressources matérielles mobilisées.
Dans la pratique professionnelle transmise par ecole-informatique.ch :
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
/**
* @title CoffreFortSimple
* @dev Contrat de dépôt et retrait sécurisé pour le Groupe Éducasuisse
*/
contract CoffreFortSimple {
// Variable d'état stockée de manière permanente sur la blockchain
address public immutable proprietaire;
mapping(address => uint256) public soldes;
// Événement émis lors d'une transaction
event DepotEffectue(address indexed deposant, uint256 montant);
event RetraitEffectue(address indexed beneficiaire, uint256 montant);
constructor() {
proprietaire = msg.sender;
}
function deposer() external payable {
require(msg.value > 0, "Le montant depose doit etre superieur a 0");
soldes[msg.sender] += msg.value;
emit DepotEffectue(msg.sender, msg.value);
}
}
Règle de syntaxe : L’indication de licence SPDX et la directive
pragma soliditysont obligatoires en tête de chaque fichier source pour fixer la version du compilateur.