Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Signatures Mast et Schnorr Partie 2

Par Anis BENZIANE Publié le 06/10/2019 à 18:56:07 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Contenu

L'amélioration de Bitcoin depuis quelques années s'est concentré sur quelques idées clés, la protection, l'adaptabilité et la productivité. L'une des principales améliorations a été la mise à niveau de l'Observateur Séparé ( Segregated observer ) qui est en train d'introduire le reste, le réseau Lightning a été poursuivi mais a été un effort dans un roulement alternatif car il a pris des échanges hors chaîne par opposition à la rationalisation du processus sur la chaîne. Une partie des innovations prévues pour améliorer cette procédure sont les Signatures Schnorr et les arbres syntaxiques abstraits merkélisés ou, en abrégé MAST ( Merkelized Abstract Syntax Trees ).

Arbres syntaxiques abstraits merkélisés

Une autre technologie à venir est Merkelized Abstract Syntax Trees qui vise à réduire la taille des transactions tout en augmentant la confidentialité de ces transactions.

Bitcoin Scripts

Pour comprendre d'abord le besoin de MASTs, rappelons ce que sont les scripts Bitcoin. Les scripts (avec un "S" majuscule) sont des pseudo-programmes qui sont inclus dans les transactions et qui permettent un verrouillage et un rachat dynamiques des fonds bloqués dans les sorties de transaction. Vous pouvez en apprendre d'avantage sur les Scripts ici

Un exemple d'un script Bitcoin couramment utilisé, trop simplifié ici, est celui qui retourne OP_TRUE si la clé privée est connectée à la clé publique (signature : Pay To Public Key Hash ). Lorsqu'un script retourne True, il donne la possibilité de dépenser tous les fonds bloqués dans une sortie non utilisée (UTXO).

scriptSig: [signature] {[pubkey] OP_CHECKSIG}

scriptPubKey: OP_HASH160 [20-byte-hash of {[pubkey] OP_CHECKSIG} ] OP_EQUAL

C'était assez simple, les scripts bitcoin peuvent être beaucoup plus élaborés. Disons qu'Alice et Bob vont se marier, et Bob veut s'assurer que s'il meurt ou s'ils divorcent, la moitié de son Bitcoin ira à Alice et l'autre moitié ira à sa famille. Bob effectue une transaction qui comprend 3 conditions, chacune pouvant être utilisée pour retourner TRUE et dépenser la transaction, la première condition est une dépense régulière, la deuxième condition exige une preuve de divorce pour dépenser l'argent et la troisième condition exige que la transaction ne soit pas dépensée pendant 6 mois, et nous allons supposer que si Bob ne touche pas son argent pendant 6 mois il est mort.

Une fois que l'une de ces conditions est déclenchée et que les bitcoins sont dépensés, toutes ces données doivent être sur la Blockchain. Cela peut remplir la Blockchain de données inutiles sur le mariage de Bob que personne ne veut savoir, pas même Bob.

Les conditions inutilisées augmentent la taille des transactions et réduisent la confidentialité en divulguant des informations inutiles au public, MAST cherche à cacher ces conditions.

Comment fonctionne MAST

MAST est un système en deux parties, la première partie est une arborescence de syntaxe abstraite, une AST est une façon de décrire un programme en le divisant en différentes parties, chaque partie étant connectée aux dépendances nécessaires pour exécuter sa fonction jusqu'à ce que toutes les dépendances soient mappées. Cela rend le programme plus facile à analyser, à tester et à optimiser.

L'autre partie est un Merkel Tree. Les arbres Merkle (aussi appelés arbres de hachage) permettent de "vérifier qu'un élément appartient à un ensemble" sans voir l'ensemble. Il est actuellement utilisé par les portefeuilles légers (SPV) Bitcoin pour économiser de la bande passante, au lieu de recevoir un bloc entier pour vérifier une transaction, il ne reçoit que les en-têtes et utilise la racine Merkle pour vérifier les informations de transaction. Les arbres Merkle sont créés en hachant les membres et en créant un identifiant court, cet identifiant est ensuite haché à nouveau avec l'identifiant d'un autre membre et les étapes sont répétées jusqu'à ce qu'il n'y ait plus de membres, le dernier hachage (en haut) étant la racine Merkle et identifiant l'ensemble dans quelques octets.

Un exemple d'arbre de hachage binaire. Les hachage 0-0 et 0-1 sont les valeurs de hachage des blocs de données L1 et L2, respectivement, et le hachage 0 est le hachage de la concaténation des hachage 0-0 et 0-1.source : wikipedia

La base de MAST est de permettre aux expéditeurs de remplacer les parties inutilisées du script par une preuve Merkle de son existence, de réduire la taille de la transaction, de faire des contrats plus importants une réalité et d'augmenter la confidentialité en épargnant à la chaîne de blocs tous les détails.

MAST

L'utilisation de MAST dans une transaction rend l'augmentation de la taille et du coût des transactions logarithmiques, non MAST, augmente linéairement. Cela signifie qu'il n'est plus difficile de traiter un gros contrat intelligent (bitcoin script) à l'aide de MAST, que ce soit pour des full nodes ou des light wallets.

La principale proposition de MAST est actuellement le BIP 144 par Johnson Lau qui définit un nouveau type de programme témoin qui utilise un arbre de Merkle pour coder des branches mutuellement exclusives dans les scripts, le BIP nécessite une Soft Fork.

Situation actuelle

MAST et Schnorr Signature nécessitent tous deux un Soft Fork pour être implémentés et bien que les idées soient actuellement gravées dans la pierre et en haut de la liste, on ne sait pas encore quand elles seront implémentées dans le réseau principal. Il a fallu près de deux ans et un Hard Fork pour mettre en œuvre le segwit, mais on espère que ces Soft Fork seront plus faciles à mettre en œuvre et à atteindre un consensus.

La route vers l'évolutivité de Bitcoin est pleine de technologies intéressantes et nouvelles, dans cet article je n'en ai écrit que quelques unes.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels