La Blockchain



  • INTRODUCTION
    L’argent sert à faciliter les échanges, qui sont devenus de plus en plus complexes à travers les siècles. Les informations sur ces échanges ont été bien souvent isolées et non divulguées au public. Ainsi, pour faciliter et approuver les transactions, des tiers et des intermédiaires de confiance sont utilisés (gouvernements, banques, comptables, notaires, et même l’argent-papier…). Ces personnes s’appellent : Les Tiers de Confiance. Cependant, ces tiers sont controversés de nos jours quand à leurs interêts.
    Parlons du bitcoin maintenant.

    Le LEDGER
    Le logiciel Bitcoin permet de créer un réseau entre les ordinateurs afin de maintenir un relevé des informations financières (un livre de compte en gros) grâce à internet. Ce livre de compte n’est pas censuré, ni contrôlé par une seule partie, mais au contraire, ces données sont ouvertes au public et disponibles digitalement en un seul relevé de compte (= couramment appelé « Ledger ») qui est distribué intégralement à travers le réseau.
    Il s’agit de la Blockchain.

    Les Clés
    Lors de la création d’un compte bitcoin, un numéro de compte lui est attitré (il s’agit de l’adresse, ou de la clé publique), ainsi qu’une clé privée liée mathématiquement à ce numéro de compte (Edit : La clée privée permet de génerer la clé publique mais il n’est pas possible de remonter à la clé privée à partir de la clé publique).

    Les transactions
    Le wallet comporte la clé privée, et permet la création de signatures. Pour créer une signature, la clé privée et le texte issu d’une transaction sont introduits dans une fonction cryptographique (basée sur l’arithmétique principalement, cette fonction permet de préserver la confidentialité des données, mais aussi à assurer leur intégralité et leur authenticité). Une autre fonction permet aux autres personnes de pouvoir vérifier cette signature, afin de vérifier qu’elle a bien été créée par le compte en question. Ainsi, ces signatures ne peuvent être copiées et réutilisées. Elles sont uniques à chaque transaction.

    L’ordre des transactions
    La signature permet de prouver l’identité de la personne qui a envoyé la transaction. Cependant, elle ne peut prendre en compte le moment où elle a été effectuée. Ceci s’avère quelque peu problématique. En effet, lorsque l’on paye par chèque dans le système banquier traditionnel, si Alice émet deux chèques, mais n’a d’argent que pour en payer un, la banque payera le premier à déposer son chèque, et refusera le second car le compte d’Alice sera vide. Ainsi, l’ordre de dépôt de ces chèques est important car il détermine qui sera payé.
    L’ordre est beaucoup plus complexe à déterminer dans le système bitcoin, car à la place d’une banque, il y a des individus répartis dans tout le monde. Les délais du réseau peuvent faire que les transactions arrivent dans un ordre différent et à des moments différents. Ainsi, la technologie bitcoin permet d’éviter ceci en laissant le monde décider l’ordre des transactions. Si de nouvelles transactions sont créées, elles vont dans un pool de transactions en attente (une sorte de réservoir temporaire qui stocke les transactions), puis de là elles seront extraites, regroupées pour former des blocks, puis ces blocks seront inclus dans une chaine géante qui les lie définitivement dans l’ordre. Pour savoir quel block du pool sera le prochain, des mineurs vont essayer de résoudre un problème qui va lier ce nouveau block la fin de la chaine. La première personne à résoudre l’algorithme remporte la reward (récompense issue des frais sur les transactions ainsi que l’émission annuelle des bitcoins (émission qui durera jusqu’à ce que l’on atteigne les 21 millions de btc sur le marché)) et le droit de faire en sorte que le block qu’ils viennent de résoudre soit le prochain de la chaine.

    Le Hash Cryptographique et le contrôle de l’authenticité
    L’algorithme permettant de relier les blocks entre eux est un hash cryptographique (de son petit nom intime SHA256). Il va mélanger les données arrivant afin de sortir un nombre. La complication vient du fait que ce mélange est irréversible : il est impossible de partir du nombre d’arrivée pour remonter aux données d’arrivée sans faire énormément de suppositions aléatoires. Or, c’est exactement ce que font les mineurs : insérer dans cette fonction de nombreux chiffres de sortie jusqu’à ce que le chiffre d’entrée corresponde à certains critères. Après cet aspect aléatoire, les mineurs peuvent ajouter un block du pool d’attente au dernier block de la chaine.
    Chaque nœud du réseau, appelé node, représente un ordinateur connecté via son wallet, qui dispose une copie complète de la blockchain.
    Sur la base des technologies mathématiques de pointe présentées ci-dessus, les transactions sont vérifiées par les mineurs, qui veillent à la fiabilité et l’exactitude du ledger. Les principes mathématiques permettent également aux nodes de vérifier continuellement et automatiquement la légitimité et la véracité de l’état actuel du ledger et de chaque transaction ayant lieu. En effet, chaque transaction dispose d’une signature mathématique spécifique et unique. Si une tentative de fraude à lieu, les nodes ne pourront pas arriver à un consensus, et la transaction ne sera pas acceptée dans la blockchain.

    Pour résumer, chaque transaction est publique et des milliers de nodes acceptent unanimement qu’une transaction a eu lieu à telle heure, telle date. C’est presque comme si ce réseau permettait de valider chaque transaction par un notaire.

    Le Consensus
    En plus de valider et de contrôler chaque transaction en cours, le réseau bitcoin permet également d’arriver à un consensus sur l’état des transactions passées. Par exemple, Bob rejoint le réseau pour la première fois et nécessite une copie de la blockchain et reçoit différentes versions. Comment peut-il savoir quelle est la bonne ? Logiquement, il devrait faire confiance en celle que la majorité des gens utilise, mais réussir à déterminer ceci sur internet est difficile. Après tout, comment empêcher une seule personne de voter pour sa version des millions de fois ? La technologie bitcoin permet d’éviter cela en exigeant la résolution de problèmes mathématiques de la part des votants. Ainsi, chaque vote possède un coût en puissance de calcul permettant de rendre très très improbable l’opportunité qu’ une seule personne ou qu’un groupe puisse offrir la majorité des votes du réseau.
    Le processus de mise en ordre des transactions expliqué précédemment fournit effectivement le système de vote. Une partie des données du problème mathématique est issue du dernier block de la chaine, donc chaque supposition lors de la résolution du problème arithmétique est un vote pour cette chaine. En effet, comme le hash cryptographique possède des fonctions statistiques très bien définies, il est possible de regarder chaque réponse pour savoir combien de suppositions il a fallu faire aléatoirement pour en arriver à trouver les données d’entrées.

    Proof of Work
    Ainsi, les liens de la chaine ne se contentent pas de mettre les blocks dans le bon ordre, mais agissent également comme un vote effectif permettant de voir quelle blockchain les gens utilisent. Ces « votes » représentent une quantité de travail nécessaire pour découvrir un block. La technologie du PoW (Proof of Work) est basée sur le fait que chaque block doit pouvoir prouver son caractère fiable en démontrant qu’une quantité de travail a été dépensée par les peers (pairs) pour sa résolution, quantité de travail suffisante pour que personne ne puisse émettre une quantité de travail supérieure afin de modifier les blocks passés.
    De cette façon, chacun peut accéder à une unique source de confiance partagée : la blockchain.

    Perspectives d’avenir
    En soit, que les transactions comportent des sommes en € ou en $ ou n’importe quoi ayant de la valeur, il s’agit des utilisateurs qui décident pour eux même ce que représentent une unité de bitcoin.
    Les satoshis (la division la plus petite possible du bitcoin, soit 0.00000001 btc) sont identifiables et programmables, ce qui signifie que les utilisateurs peuvent leur assigner des propriétés. Par exemple, il est possible de programmer une unité pour qu’elle représente un centime d’Euro, une action d’entreprise, un kilowatt d’énergie, ou même un certificat de propriété digitalisé ou un vote durant les élections. Et ceci fait que le bitcoin est bien plus qu’un simple moyen de payement. Il permet de rendre notre monnaie plus intelligente, qui automatise nos liquidités et nos flux d’argents.
    Imaginez une allocation spécifique ne pouvant être utilisée que pour couvrir les frais de santé de parties certifiées (médecins, hôpitaux…). Dans cet exemple si quelqu’un suit les règles, la bureaucratie n’a plus besoin de vérifier ses antécédents à chaque fois. Ces règles sont juste programmées dans l’argent, et les mêmes pour tous. L’unité peut aussi être programmée de telle façon que l’argent sera retourné automatiquement au fournisseur en cas de non utilisation après un certain délai. Ainsi, le fournisseur s’assure également du fait que les allocations ne sont pas thésaurisées. (Note : Actuellement, ce système nécessiterait un tiers de confiance pour le stockage des allocations)
    Une entreprise peut contrôler ses dépenses de la même façon, en programmant les budgets des salaires, de la maintenance, des achats de fournitures, … permettant de s’assurer de la juste utilisation de cet argent.
    Automatiser les dépenses de cette façon mène à une très forte réduction des besoins de bureaucratie et une économie de temps considérable. Ainsi, ces propriétés permettent de reconstruire et d’innover dans le secteur financier, les processus administratifs en les rendant plus efficients et transparents, tout en réduisant de manière importante la bureaucratie.

    Sources :


    https://bitcoin.org/en/developer-guide#block-chain

    https://en.bitcoin.it/wiki/Transaction
    Entretiens avec Mably - Seccour - Tulsene


  • Bitcoiner

    @Lexyon

    " Lors de la création d’un compte bitcoin, un numéro de compte lui est attitré (il s’agit de l’adresse, ou de la clé publique), ainsi qu’une clé privée liée mathématiquement à ce numéro de compte. "

    La façon dont ta phrase est tournée j’ai l’impression que tu dis que la clé privée vient de la clé publique, j’aurais plutôt dit : Lors de la création d’un compte bitcoin, une clé privée est générée ( Équivalent d’un identifiant + mot de passe ) mais aussi une clé public ( Un peu comme un numéro de compte ) qui est créer à partir de la clé privée.

    " Pour savoir quel block du pool sera le prochain, "

    C’est les transactions qui sont dans une pool pas des blocks

    " En plus de valider et de contrôler chaque transaction en cours, le réseau bitcoin permet également d’arriver à un consensus sur l’état des transactions passées. Par exemple, Bob rejoint le réseau pour la première fois et nécessite une copie de la blockchain et reçoit différentes versions. Comment peut-il savoir quelle est la bonne ? Logiquement, il devrait faire confiance en celle que la majorité des gens utilise, mais réussir à déterminer ceci sur internet est difficile. Après tout, comment empêcher une seule personne de voter pour sa version des millions de fois ? La technologie bitcoin permet d’éviter cela en exigeant la résolution de problèmes mathématiques de la part des votants. Ainsi, chaque vote possède un coût en puissance de calcul permettant de rendre très très improbable l’opportunité qu’ une seule personne ou qu’un groupe puisse offrir la majorité des votes du réseau. "

    Pour moi toute cette partie est fausse. Tu mélange plusieurs choses ici. Prenons un exemple :
    Bob créer son wallet et télécharge la blockchain, mais il y a un problème. Il y a eut un fork ce qui fait qu’à partir des derniers blocks il y a eut 2 blockchains différentes ( on va dire pour l’exemple que le dernier block commun était le block 1000 et que le dernier block créer est le 1010 ).
    Dans cet exemple les deux blockchains sont bonnes. Sauf que la blockchain qui l’emportera sur l’autre ne sera pas celle dans laquelle il y a un plus gros hashrate, mais celle qui sera le plus utilisé par les marchands / exchange.
    Parce que si tout les marchands et les exchange sont sur le fork A et que Bob est sur le fork B. Il ne pourra ni vendre, ni acheter, ni utiliser ses bitcoins.

    Et sinon le paragraphe d’après est faux sauf our cette partie :
    " La technologie du PoW (Proof of Work) est basée sur le fait que chaque block doit pouvoir prouver son caractère fiable en démontrant qu’une quantité de travail a été dépensée par les peers (pairs) pour sa résolution, quantité de travail suffisante pour que personne ne puisse émettre une quantité de travail supérieure afin de modifier les blocks passés. "

    Cette partie je la trouve à moitié vrai. par contre la dernière phrase après la virgule… On ne peut pas modifier un block déjà créer et valider. Parce qu’en faisant ça, tout les blocks d’après seraient invalides, et les gens devront volontairement faire un roll back pour aller sur ce fork. Ce qu’un attaquant ne pourra pas forcer.

    " En soit, que les transactions comportent des sommes en € ou en $ ou n’importe quoi ayant de la valeur, il s’agit des utilisateurs qui décident pour eux même ce que représentent une unité de bitcoin. "

    Les transactions ne comportent uniquement des sommes en Bitcoin. Après certains BTC peuvent être interpréter comme représentant un smart contract ou autre comme tu l’explique juste après.

    La valeur du Bitcoin dépend juste de l’offre et de la demande et donc la valeur de la transaction de la quantité de Bitcoin échange * la valeur du BTC.

    BTC : 1BWZ3FE6VQqsfMwUp7uwcu6GQ2BeeNQJRi | NXT : Seccour

    0

Se connecter pour répondre