Aller au contenu

Développement de smart contracts : vos règles métier, appliquées de façon vérifiable.

Des règles automatisées, des transactions traçables et des applications blockchain conçues pour vos besoins.

Animation en six étapes : une règle de gestion écrite en français devient quatre règles programmables, puis du code Solidity ; les tests détectent une erreur, corrigée avant le déploiement ; le contrat est déployé sur un réseau de test puis sur le réseau principal ; une distribution conforme est exécutée et un appel anticipé est rejeté.

Besoin métier · Une règle de gestion, écrite en français.

Animation : exemple simplifié, données fictives. Les droits des investisseurs relèvent des contrats juridiques, pas du code.

Un smart contract, concrètement.

Un smart contract est un programme enregistré sur une blockchain. Il applique automatiquement des règles convenues à l'avance, de la même façon pour tous, et chaque exécution laisse une trace que les parties peuvent vérifier.

Comment il applique ses règles

Le contrat ne s'exécute pas seul : il réagit à une transaction, envoyée par une personne, une application ou un autre contrat. Il vérifie alors ses conditions. Si elles sont remplies, il exécute l'action prévue ; sinon, il rejette la transaction et rien ne change. Le résultat est enregistré sur la blockchain, où il ne peut plus être modifié.

  1. 01Une transaction l'appelle
  2. 02Il vérifie ses conditions
  3. 03Il exécute, ou il refuse
  4. 04Le résultat est enregistré

Quand il est pertinent

  • Plusieurs organisations doivent appliquer les mêmes règles sans dépendre d'un intermédiaire unique.
  • Les règles sont stables et vérifiables : conditions d'accès, répartitions, échéances.
  • Des actifs ou des droits, représentés numériquement, changent de main.
  • Chaque partie doit pouvoir vérifier l'intégrité de l'historique.

Quand il n'est pas nécessaire

  • Une seule organisation gère les données et tous les acteurs lui font confiance : une base de données classique suffit.
  • Les règles changent souvent ou reposent sur une appréciation humaine.
  • Les données doivent rester strictement confidentielles : sur une blockchain publique, les transactions sont visibles.
  • Le volume, la rapidité ou le coût des transactions ne sont pas compatibles avec le réseau envisagé.

Ce qu'un smart contract ne garantit pas

  • L'exactitude des données reçues.

    Il applique ses règles aux informations qu'on lui transmet. Si une donnée externe est fausse, le résultat le sera aussi. Le choix et la fiabilité des sources relèvent des oracles et de l'interopérabilité.

  • Une valeur juridique à lui seul.

    Les droits et les obligations des parties relèvent des contrats et du cadre réglementaire. Le code les met en œuvre ; il ne les remplace pas.

  • L'absence d'erreur.

    Les tests, les revues de code et les audits réduisent fortement le risque, sans le supprimer.

  • Une correction simple après déploiement.

    Le code déployé ne se modifie pas comme un fichier : une évolution passe par une nouvelle version ou par des mécanismes prévus dès la conception.

  • La confidentialité.

    Sur une blockchain publique, les transactions sont visibles de tous. Les données sensibles restent hors de la chaîne.

Ce que votre entreprise y gagne

  • Des règles identiques pour toutes les parties, vérifiables par chacune.
  • Des versements et des échéances qui s'exécutent sans relance.
  • Un registre commun qui réduit les rapprochements entre partenaires.
  • Un historique horodaté que chaque partie peut contrôler.

Le banc d'essai

Changez le montant, l'éligibilité des bénéficiaires, la date de l'appel ou la répartition des parts : le contrat présenté plus haut applique ses règles en direct.

Paramètres

jetons
Bénéficiaires : éligibilité et répartition des parts

Exécution

Simulation locale : aucune transaction réelle.

Résultat

  • R3Échéance atteinte · respectée
  • R1Bénéficiaires vérifiés · respectée
  • R4Aucun versement à un compte non vérifié · respectée
  • R2Montant au prorata des parts · respectée

L'appel a lieu à l'échéance exacte : la distribution est autorisée.

Les bénéficiaires vérifiés reçoivent leur part au prorata : A 4 800, B 3 000, C 2 400.

D n'est pas vérifié : sa part (1 800) reste dans le contrat. Son sort relève des contrats juridiques, pas du code.

Total versé : 10 200 sur 12 000. Prochaine échéance : dans 90 jours.

L'appel a lieu à l'échéance exacte : la distribution est autorisée. Les bénéficiaires vérifiés reçoivent leur part au prorata : A 4 800, B 3 000, C 2 400. D n'est pas vérifié : sa part (1 800) reste dans le contrat. Son sort relève des contrats juridiques, pas du code. Total versé : 10 200 sur 12 000. Prochaine échéance : dans 90 jours.

Simulation pédagogique exécutée dans votre navigateur : aucune blockchain, aucun wallet, aucune transaction réelle. Elle reproduit la logique de la fonction distribuer() du héros, comparée à ce même contrat exécuté sur une blockchain de test locale.

Ce que vous pouvez nous confier

Cinq périmètres d'intervention, à combiner selon votre projet. Chacun est rédigé comme un article : ce que nous faisons, ce que vous y gagnez et, lorsqu'il le faut, ses limites.

  1. Article 1

    Conception et développement

    Nous traduisons vos règles de gestion en spécification, puis en contrats : conditions, droits, transferts, distributions et cas de refus. Chaque règle écrite est reliée au test qui la vérifie.

    Vous obtenez des règles appliquées à l'identique pour tous.

  2. Article 2

    Intégration dans vos applications

    Nous relions les contrats à vos applications web et mobiles, aux wallets de vos utilisateurs et à vos outils de gestion, et nous rendons chaque transaction compréhensible pour la personne qui la signe.

    Vous obtenez un service utilisable par vos clients, pas seulement un contrat déployé.

  3. Article 3

    Tests et relecture

    Tests automatisés de chaque règle et des cas limites, puis relecture du code au regard de la spécification. Les points relevés sont corrigés, puis vérifiés à nouveau avant tout déploiement.

    Vous obtenez des risques identifiés avant la mise en service.

    Réserve. Une relecture interne réduit les risques ; elle ne constitue pas un audit indépendant.

  4. Article 4

    Reprise de code existant

    Un contrat écrit par vos équipes ou par un autre prestataire ? Après examen du code et de sa documentation, nous vous indiquons si nous pouvons le relire, le corriger ou le faire évoluer, et dans quelles conditions.

    Vous obtenez une décision fondée sur l'état réel du code.

    Réserve. Étude au cas par cas. Un contrat déjà déployé ne se corrige pas comme un fichier : selon son architecture, une correction passe par une nouvelle version.

  5. Article 5

    Suivi et maintenance, selon le projet

    Suivi des opérations, évolutions encadrées, gestion des accès d'administration : nous définissons avec vous ce qui est possible selon l'architecture du contrat, ses mécanismes de mise à jour et les autorisations prévues.

    Vous obtenez un contrat suivi dans la durée.

    Réserve. Proposé au cas par cas, dans le périmètre contractualisé. Un contrat conçu comme immuable ne peut pas être modifié.

Du cadrage au déploiement, des risques réduits à chaque étape.

La sécurité d'un smart contract ne se décrète pas : elle se construit en réduisant les risques, étape par étape. Aucune démarche, audit compris, ne peut garantir l'absence de faille.

  1. Étape 1 : Cadrage et spécification

    Vos règles, écrites en français, sont découpées en conditions ; les cas de refus et les rôles sont décidés avant le code. Si le projet blockchain lui-même reste à cadrer, notre démarche de projet blockchain commence en amont.

  2. Étape 2 : Conception

    États du contrat, droits de chaque rôle, mécanismes d'évolution ou de suspension d'urgence lorsqu'ils sont nécessaires : ce qui n'est pas prévu ici ne pourra pas être ajouté simplement après le déploiement.

  3. Étape 3 : Développement

    Un code lisible, appuyé sur des bibliothèques reconnues ; chaque règle est reliée à la ligne qui l'applique.

  4. Étape 4 : Tests

    Tests automatisés de chaque règle, des cas limites et des usages abusifs, sur une copie locale du réseau, puis sur un réseau de test.

  5. Étape 5 : Relecture de code

    Le code est relu au regard de la spécification ; les points relevés sont corrigés et testés à nouveau. Cette relecture réduit les risques, sans constituer un audit.

  6. Étape 6 : Préparation de l'audit

    Lorsque le contrat gère des actifs ou des droits importants, nous constituons le dossier attendu par un auditeur : spécification, couverture des tests, choix de conception documentés.

  7. Audit éventuel, selon le projetIntervention indépendante

    Étape 7 : Audit indépendant

    Lorsque le projet le justifie, le code peut être audité par un intervenant distinct de Crawler Agency, sur un périmètre défini contractuellement et sous réserve de sa disponibilité. Les corrections qui en découlent sont effectuées selon nos engagements.

  8. Étape 8 : Déploiement encadré

    Réseau de test, puis réseau principal ; code source publié et vérifiable ; accès d'administration répartis entre plusieurs signataires lorsque le projet le prévoit. Qui détient ces pouvoirs, qui approuve une évolution, comment se préparent les vérifications : c'est l'objet de la sécurité et la gouvernance du projet blockchain.

Audit de smart contracts : qui fait quoi ?

Un audit n'a de valeur que s'il est indépendant de l'équipe qui a écrit le code. Nous ne délivrons donc pas de rapport d'audit, et nous ne présentons jamais une relecture interne comme un audit.

Répartition des rôles entre Crawler Agency et l'auditeur indépendant
Crawler AgencyCabinet ou auditeur indépendant
RôleConcevoir, développer, tester et relire le codeAnalyser un code qu'il n'a pas écrit, et ses risques
LivrableDossier d'audit et documentationRapport d'audit et recommandations
Après l'auditCorrections, puis nouvelle vérificationContrôle des corrections, si sa mission le prévoit

Le contrat n'est qu'une partie de la surface d'attaque : les interfaces et les API qui l'appellent se protègent aussi. Notre pôle cybersécurité traite la sécurisation des applications et des API.

Questions fréquentes sur le développement de smart contracts

Valeur juridique, frais d'exécution, évolutions, données externes, relecture et audit.

Un smart contract a-t-il une valeur juridique ?

Pas à lui seul. Un smart contract exécute des règles ; les droits et les obligations des parties relèvent des contrats juridiques et du cadre réglementaire applicable. Le code et les documents juridiques doivent donc dire la même chose : c'est pourquoi la spécification s'appuie sur vos documents contractuels, et pourquoi les questions juridiques sont traitées avec vos conseils. Une divergence entre les deux crée un risque difficile à corriger, puisque le code aura déjà été exécuté.

Combien coûte l'exécution d'un smart contract ?

Chaque opération qui modifie l'état du contrat paie des frais de transaction au réseau, souvent appelés « gas ». Leur montant dépend du réseau choisi, de son activité au moment de l'opération, ainsi que du calcul et du stockage demandés. La simple lecture des données est en général gratuite. Le choix du réseau, la conception du contrat (ce qui est stocké sur la chaîne, ce qui reste dans vos systèmes) et l'écriture du code permettent de maîtriser ces frais ; ils sont mesurés pendant les tests.

Peut-on modifier un smart contract après son déploiement ?

Le code d'un contrat déployé ne se modifie pas. Une évolution n'est possible que si elle a été prévue à la conception : logique remplaçable, mise à jour soumise à plusieurs signatures, délai avant application ou suspension d'urgence. Sans ces mécanismes, corriger une faille impose de déployer un nouveau contrat et d'y faire migrer les utilisateurs et, le cas échéant, les actifs. Chaque mécanisme a son revers : il crée des droits d'administration qu'il faut protéger. Ces choix se font donc avant le déploiement, avec vous.

Un smart contract peut-il utiliser des données extérieures à la blockchain ?

Pas directement : un contrat ne lit que les données présentes sur la chaîne. Une information extérieure, comme un cours, une date de livraison ou le résultat d'une vérification d'identité, doit lui être transmise par une transaction, envoyée par votre application ou par un service spécialisé appelé oracle. Le contrat applique ses règles à cette information sans pouvoir en vérifier l'exactitude. La fiabilité de la source, le nombre de sources et la conduite à tenir si l'une d'elles est indisponible font donc partie de la conception.

Quelle différence entre une relecture de code et un audit de smart contract ?

La relecture fait partie du développement : elle vérifie que le code applique la spécification et repère les erreurs avant le déploiement. Un audit est une analyse menée par un intervenant indépendant, qui n'a pas écrit le code et remet son propre rapport sur les risques identifiés. Nous réalisons la relecture et préparons l'audit ; nous ne délivrons pas de rapport d'audit. Ni l'une ni l'autre ne garantit l'absence de faille : toutes deux réduisent le risque.

Parlons de vos règles.

Une règle de gestion à automatiser, un contrat existant à relire ou à reprendre, un audit à préparer : décrivez votre besoin, nous l'étudions avec vous.

contact@crawleragency.com
+33 4 94 36 20 09

Article 6

Votre projet

  1. 6.1Vous décrivez la règle, le contrat ou le projet en quelques lignes, sans préparation technique.
  2. 6.2Nous vous répondons sous 24 à 48 heures ouvrées.
  3. 6.3Nous convenons d'un premier échange pour cadrer le périmètre.

Vos cookies, votre choix

Avec votre accord, nous mesurons la fréquentation du site pour l'améliorer.Sans accord, aucun cookie de mesure n'est déposé.Modifiable à tout moment : « Gestion des cookies », en bas de page. En savoir plus