- Retour au menu
- Retour au menuTarifs
- Retour au menuRecherche
- Retour au menuConsensus
- Retour au menu
- Retour au menu
- Retour au menu
- Retour au menuWebinaires et Événements
Le code est-il la loi ? Pas encore tout à fait.
Le code doit-il faire loi ? Dans cet article Analyses , Lukas Abegg soutient que de nombreux obstacles scientifiques restent à franchir avant que cela ne soit possible.
Après l'échec de l'expérience DAO, un débat Juridique houleux s'est ensuivi sur la manière de faire avancer le développement de la blockchain d'Ethereum.
Les positions allaient du maintien du paradigme de l'immuabilité avec « le code est la loi » comme règle la plus importante à Réseaux sociaux, à une approche plus Human consistant à demander aux mineurs et aux développeurs d'Ethereum quelles mesures devraient être prises.
Cependant, peu de temps a été consacré à la question de savoir ce qu'est uncontrat intelligentest réellement capable d’effectuer des performances.
Mais cette question même, je crois, devrait être au CORE du débat et la réponse correspondante est la seule base raisonnable sur laquelle une Juridique solide pour le développement de la blockchain et des contrats intelligents peut être construite.
Examinons donc de plus près les capacités des contrats intelligents.
Nature des informations
La caractéristique d’un contrat intelligent est dans son essence même le traitement de l’information.
Bien que la notion d’information varie et qu’il n’existe pas de définition universelle, il est utile de commencer par la manière dontthéorie de l'informationtraite de l’information puisque la théorie de l’information fait partie de l’ADN de l’informatique d’aujourd’hui.
Il est donc nécessaire de diviser l’information eninformations syntaxiques et informations sémantiques. Le premier étant les règles sur la relation entre les symboles et le second étant la signification attribuée à ces symboles (c'est-à-dire : « l'intention »). La frontière entre les deux est quelque peu floue et les distinguer est parfois difficile (ce qui, comme nous le verrons plus tard, conduit au problème des DAO en premier lieu), mais une différence entre eux existe clairement.
Un article intéressant sur la difficulté de capturer « l'intention » étaitrécemment écritpar Vitalik Buterin.
Les informations syntaxiques peuvent être analysées et mesurées (commeShannon et Tisserand (voir « Une théorie mathématique de la communication ») et est sujette à une démonstration mathématique. L'information sémantique, quant à elle, est ce qu'un être Human attribue à un symbole. Elle peut représenter tout ce à quoi un cerveau Human est capable de penser.
Normaliser l'information sémantique et la rendre traitable est une tâche assez difficile, c'est le moins que l'on puisse dire. L'informatique (en particulier les chercheurs en intelligence artificielle)se bat beaucoupen essayant de capturer des informations sémantiques, telles que le langage naturel, et de représenter leur signification dans un logiciel. Pour aggraver les choses, les informations sémantiques peuvent être très simples ou très complexes.
Des informations sémantiques plutôt simples et formelles, comme un brevet par exemple, peuvent déjà être traitées par le langage informatique. Imaginez un fichier CAO d'un widget breveté sur un ordinateur qui permet à une imprimante 3D d'imprimer exactement ce que contient ce fichier CAO.
Les informations sémantiques plus complexes, comme la notion juridique de « bonne foi » par exemple, ne peuvent pas encore être traitées par l’informatique. Pour ce faire, un grand bond en avant dans la recherche en intelligence artificielle est encore nécessaire.
Manque de gouvernance
Une autre façon de faire une distinction entre ces deux types d’informations serait de les appeler« code sec » et « code humide », un concept inventé par le cryptographe Nick Szabo.
Pour illustrer pourquoi il est impératif de respecter cette nature bilatérale de l'information, nous pouvons examiner The DAO. L'impératif de « ne pas nuire » (c'est-à-dire l'information sémantique) n'était écrit que sur la page d'accueil de The DAO et non dans son code (qui, pour la plupart, ne traitait que des informations syntaxiques).
Les partisans d'une doctrine stricte selon laquelle « le code fait loi » ont avancé que le pirate de la DAO pourrait ainsi KEEP les ethers drainés, puisque l'impératif de « ne pas nuire » ne figurait que dans les spécifications de la page d'accueil, et non dans le code lui-même, et n'était donc pas contraignant. Ils ont poussé leur argumentation encore plus loin en conservant la blockchain Ethereum non bifurquée et ont créé un environnement Ethereum parallèle, Ethereum Classic, ce qui pose des problèmes assez délicats aux utilisateurs et aux développeurs.
S'il y avait eu un outil de gouvernance approprié qui aurait traité des informations sémantiques (c'est-à-dire qui aurait assuré que tout le monde respecte la règle « ne pas nuire » et fourni des moyens pour traiter les contrevenants), une telle division n'aurait probablement pas eu lieu.
Preuve mathématique et immuabilité
Lorsque Shannon travaillait sur la théorie de la communication, il prenait grand soin de confiner ses recherches au domaine de l’information syntaxique. Cela lui permettait de prouver mathématiquement ses découvertes.
Cela n’aurait pas pu être fait si des informations sémantiques étaient impliquées. Pour Shannon, la preuve mathématique était importante pour faire progresser la science.
Coder un contrat intelligent ne fait pas réellement progresser la science et, par conséquent, la preuve mathématique n'est pas importante, pourrait- on penser. Cependant, dès que vous ajoutez l'immuabilité à votre code grâce à une implémentation blockchain, vous placez la barre de l'exactitude de votre code à un niveau incroyablement élevé, voire totalement inaccessible (cf.analyse plus détaillée).
Étant donné que votre code est immuable et ne peut pas être modifié, vous devez être parfaitement sûr que votre code ne présente aucun défaut.
La preuve mathématique de votre code semble donc soudainement être une fonctionnalité assez importante à avoir.
Et pourtant, Solidity tel qu'il est utilisé sur Ethereum pour la mise en œuvre de contrats intelligents, n'est pas un langage qui permet la preuve mathématique (c'est-à-dire qu'il n'est pas référentiellement transparent). Cela a permis la mise en œuvre d'informations sémantiques, ou plus explicitement, l'intention des développeurs. L'appel de récursivité qui a conduit au piratage de The DAO aurait dû être utilisé d'une manière spécifique, comme les développeurs l'avaient prévu.
De toute évidence, une telle intention n'a pas été capturée par le code et n'a donc T empêché le pirate informatique du DAO de vider le DAO.
En conclusion : l'immuabilité et l'exactitude du code sont comme les deux plateaux d'une balance. Plus vous accordez de « poids » à l'immuabilité, plus vous devez faire attention à l'exactitude de votre code.
Besoin d'un code vérifiable
Si la quasi-totalité de votre contrat intelligent s'exécute de manière immuable sur la blockchain (comme certains partisans du « code est la loi » l'imaginent comme la seule voie à suivre), vous n'êtes probablement pas en mesure de mettre suffisamment de « contrepoids » dans l'exactitude de votre code.
Toutes ces découvertes sont loin d’être nouvelles.
Déjà en 2002, Nick Szabo avait écrit un article sur unlangage formel des contrats, dans lequel il soulignait explicitement que l'utilisation d'un langage informatique procédural pouvait être tentante, mais causait plus de tort que de bien. Et cela T même mentionner tous les langages de programmation existants qui sont utilisés dans le secteur financier ou de nouvelles façons de créer des langages de programmation, qui permettent une preuve formelle (échantillonsiciet icihttps://legalese.com/docs).
Même le développeur de Solidity lui-même, le Dr Gavin Wood,envisagéà un stade précoce de la conception de Solidity, un langage qui permet la preuve mathématique et les recherches les plus récentes suggèrent que letraduction de Solidity en F*Pour parvenir à un code vérifiable, il faudrait.
Cependant, il semble clair à présent que l'état d'alégalité souhaité, où aucun engagement extérieur à un contrat intelligent n'est nécessaire, n'est pas encore atteint. Et il faudra probablement encore un certain temps pour y parvenir, si tant est qu'il puisse être atteint.
Combler le vide technique
Cela ne signifie pas pour autant que le concept de contrats intelligents est un échec ou qu'il serait inutile. Il nécessite simplement une architecture qui respecte les limites de la Technologies actuelle et une solution astucieuse pour combler les lacunes des langages de programmation et de l'intelligence artificielle qui restent à combler.
Une telle solution de contournement pourrait résider dans le système juridique du « meatspace » classique, en particulier dans un domaine spécifique appeléModes alternatifs de résolution des conflits(ADR).
Son objectif est de donner à deux ou plusieurs parties en conflit les moyens formels de résoudre leurs différends en privé sans avoir à recourir aux tribunaux publics. Il fournit des outils qui vous permettent d'établir vos propres règles, de définir les processus de gestion des conflits et/ou de sélectionner les juges de votre choix.
Il a également l'avantage d'être juridiquement contraignant pour les espaces classiques. C'est un formidable terrain de jeu à explorer, par exemple :idées futarchiques comme les Marchés de prédictionou de nouveaux concepts d'attribution de valeur commeRetour d'informationpour choisir un arbitre. Et il n’est même pas très difficile d’implémenter de telles règles d’arbitrage dans un contrat intelligent.
Assurez-vous simplement que chaque utilisateur d'un service de contrat intelligent accepte d'être soumis à de telles règles d'arbitrage, tout comme vous êtes soumis à des règles d'arbitrage constituées de manière privée (par exemple : celles de l'ICANN).UDRP) lors de l’enregistrement d’un nom de domaine.
On peut découvrir à quoi pourrait ressembler un tel LINK entre les contrats intelligents et les règles juridiques du marché réel.ici(Il ne s’agit pas de règles ADR mais de règles de droit des contrats. Leur mise en œuvre serait cependant très similaire).
Vers l'illégalité
Au premier abord, il peut paraître étrange d’utiliser d’anciens concepts pour progresser dans un nouveau domaine.
Cependant, si l'on considère ces structures comme des supports – à l'instar d'un objet fraîchement imprimé en 3D, et qui peuvent être progressivement déplacés une fois le nouvel objet installé –, l'étrangeté s'estompe. Plus encore, une telle approche pourrait même comporter un élément heuristique, dans le sens où elle permettrait d' en Guides davantage sur de nouveaux concepts et outils de gouvernance susceptibles de remplacer complètement les outils juridiques de l'espace physique à l'avenir.
Pour boucler la boucle avec le début, nous devrions respecter la nature bilatérale de l’information et laisser le code traiter les informations syntaxiques et déployer des outils de gouvernance pour que les êtres Human traitent les informations sémantiques.
L'utilisation d'un outil de gouvernance comme les règles d'arbitrage spécifiques aux contrats intelligents, combinée à la reconnaissance que les contrats intelligents ne sont ni des contrats intelligents ni des contrats, mais plutôt du code exécuté de manière vérifiable (VEC), peut fournir un moyen de tester une nouvelle Technologies d'une manière moins désastreuse que celle qui a été faite avec The DAO et peut également fournir la certitude nécessaire pour rendre les contrats intelligents intéressants pour les entreprises.
Au moins jusqu'à ce que la science rattrape la vision selon laquelle « le code est la loi » et un véritable état deillégalitépeut être atteint.
Image de golfvia Shutterstock
Remarque : Les opinions exprimées dans cette colonne sont celles de l'auteur et ne reflètent pas nécessairement celles de CoinDesk, Inc. ou de ses propriétaires et affiliés.