Journal Microsoft s'intéresse au blockchain

Posté par (page perso) . Licence CC by-sa
Tags : aucun
11
11
juin
2016

Bonjour Nal,

Vu dans un article de ZDnet : Microsoft travaille sur un système d'identité basé sur blockchain avec Blockstack Labs et ConsenSys.

Blockchain

Le blockchain (chaîne de blocs en français) est une base de données décentralisée (et ses protocoles de communication) qui permet de certifier une transaction entre deux tiers. L'application la plus connue est le Bitcoin (une des monnaies virtuelles d'Internet) mais ce n'est pas la seule.

Plusieurs gouvernements ont des projets de certifications en utilisant une chaine de blocs (y compris le gouvernement français). Pour plus de détails voir l'article Wikipedia ou la vidéo de Rue89 ou Blockchain France.

Intérêt

Le fait qu'un poids lourd comme Microsoft s'intéresse au sujet, va sûrement faire apparaître ce genre de système sur les radars des décideurs.

Microsoft s'intéressait déjà à l'Ethereum (la seconde monaie virtuelle après le Bitcoin). Le fait de s'associer à Blockstack Labs et ConsenSys indique la volonté de la firme de développer un système en interne. D'après ZDNet, un système d'identification utilisant Blockchain verrait le jour sur le cloud Azure, d'ici "quelques semaines"… et cela serait un système Open Source !

C'est particulièrement intéressant dans le cadre des logiciels de comptabilité qui doivent prouver l'intégrité de leurs transactions.

On verra ce que cela donnera.

  • # Ethereum n'est pas une monnaie

    Posté par . Évalué à 4.

    Ethereum n'est pas simplement une monnaie, c'est un mécanisme utilisant une blockchain comme bitcoin mais cela permet de faire plus que simplement une monnaie.

  • # J'ai jamais tout compris aux chaines de blocs!

    Posté par . Évalué à 10.

    Je viens de passer les 3 liens, et je ne comprends toujours pas comment ça marche!
    Le premier bloc est créé comment?
    Quand on mine, on résout quoi exactement?
    Si toutes les transactions jamais faites par BC sont gardées sur une chaîne, quelle taille fait cette chaîne aujourd'hui? Quelle taille ferait-elle si elle devait absorber les échanges quotidiens en $ ou €?
    Comment peut-on demander à un réseau de 1 milliards de noeuds de rester synchronisé sans que des bouts soient ajoutés ici et là dans plusieurs branches?
    Comment peut-on savoir si la majorité du réseau approuve la transaction sans savoir combien de noeuds existent?
    Si un État créé 10millions d'"utilisateurs" et donc autant de noeuds, peut-il saborder le système en invalidant les transactions qui lui déplaisent?
    On dit que les utilisateurs restent anonymes derrière une clé publique, mais si l'autre partie identifie l'utilisateur de la clé, il peut ensuite pister toutes ses transactions en surveillant la chaîne?

    Et pour finir: comment on fait un système d'identification avec ça??

    • [^] # Re: J'ai jamais tout compris aux chaines de blocs!

      Posté par . Évalué à 10.

      " Quand on mine, on résout quoi exactement?"

      De mémoire, pour le bitcoin, tu dois trouver un nombre 128 bits, qui, ajouté à un bloc donne un hash SHA-256 avec un nombre déterminé de bit à zéro.

      Donc, tu testes un grand nombre de nombre pour en trouver un.

      " Si toutes les transactions jamais faites par BC sont gardées sur une chaîne, quelle taille fait cette chaîne aujourd'hui?"

      Qq centaine de Go de mémoire.

      " Comment peut-on demander à un réseau de 1 milliards de noeuds de rester synchronisé sans que des bouts soient ajoutés ici et là dans plusieurs branches?"

      Par un système de vote à la majorité, et une vérification des autres blocs et détection d'erreur qui ferait refuser les blocs douteux;

      " Comment peut-on savoir si la majorité du réseau approuve la transaction sans savoir combien de noeuds existent?"

      sur bitcoin, on attend juste la réponse de quelques noeuds pas de tous. Cette latence est en train de devenir un problème. (gros mineur en chine avec peu de bande passante)

      " Si un État créé 10millions d'"utilisateurs" et donc autant de noeuds, peut-il saborder le système en invalidant les transactions qui lui déplaisent?"

      Oui si il dispose plus de 50% de la puissance de calcul, mais cela ne serait pas discret. De plus, les noeuds sont des asic plus des PC ou même des cartes graphiques puissantes.

      " On dit que les utilisateurs restent anonymes derrière une clé publique, mais si l'autre partie identifie l'utilisateur de la clé, il peut ensuite pister toutes ses transactions en surveillant la chaîne?"

      Oui, c'est la différence entre le pseudonymat et l'anonymat.

      "Et pour finir: comment on fait un système d'identification avec ça??"

      Si tu connais le système de certificat TLS actuelle, tu sais qu'une clef est connu si elle est signé par une compagnie dont les clefs sont dans les navigateurs. Il faut donc leur faire confiance. Ici, la clef est simplement stocké dans la blockchain.

      "La première sécurité est la liberté"

    • [^] # Re: J'ai jamais tout compris aux chaines de blocs!

      Posté par . Évalué à 10.

      Le premier bloc est créé comment?

      Manuellement

      Quand on mine, on résout quoi exactement?

      Version simple: On fait un hash de l'en-tète du prochain bloc, on compare la valeur de ce hash avec une valeur arbitraire et si ce hash y est inférieur, bravo, tu as un nouveau bloc. Par nature, on ne peut pas connaitre la valeur de ce hash sans le calculer, donc il faut essayer encore et encore et encore et encore…
      Le truc, c'est que le système ajuste la difficulté si on rajoute de la puissance de calcul, ce qui conduit a une ridicule course à l'armement entre mineurs. Bien entendu, ça coute cher en électricité et aujourd'hui presque toute la puissance est entre les mains de quelques mineurs en Chine…

      Si toutes les transactions jamais faites par BC sont gardées sur une chaîne, quelle taille fait cette chaîne aujourd'hui? Quelle taille ferait-elle si elle devait absorber les échanges quotidiens en $ ou €?

      La blockchain de bitcoin ne fait que ~70Go aujourd'hui, mais c'est plus le résultat du fait que personne n'utilise bitcoin. En pratique, une transaction bitcoin moyenne fait ~500 octets. Pour info, Visa peut en moyenne traiter 30000 transactions à la seconde, ce qui équivaudrait à plus d'un To par jour (et on ne parle que de Visa). Bitcoin en est toujours à 2,7 maximum par seconde….
      Bref, non, ça ne scale pas.

      Comment peut-on demander à un réseau de 1 milliards de noeuds de rester synchronisé sans que des bouts soient ajoutés ici et là dans plusieurs branches?

      Partons de l'idée ridicule que bitcoin puisse prendre une ampleur mondiale. La réponse à la question précédente prouve que maintenir un noeud sera prohibitif et il n'y en aura donc pas des millions.

      Comment peut-on savoir si la majorité du réseau approuve la transaction sans savoir combien de noeuds existent?

      Le contenu des blocs est décidé par les mineurs. Théoriquement, un groupe de noeuds et mineurs peuvent refuser les blocs d'un autre mineur ce qui crée un fork dans la chaine. Et la c'est le bordel: le système continuera à marcher avec deux chaines, le seul problème est que les utilisateurs se retrouveront à interagir avec l'une ou l'autre chaine sans vraiment savoir ce qui se passera au final. Magique, hein?

      Si un État créé 10millions d'"utilisateurs" et donc autant de noeuds, peut-il saborder le système en invalidant les transactions qui lui déplaisent?

      Encore une fois, les transactions inclues dans les blocs sont décidées par les mineurs. Il y a deux vecteurs d'attaque toutefois:
      - Attaque Sybil sur les noeud qui permet théoriquement de stopper la propagation des "mauvais" blocs. C'est d'autant plus facile qu'il est trivial de simuler un noeud. Il n'y a à ma connaissance pas de solution.
      - Attaque 51%: Si un mineur controle un majorité absolue de la puissance de minage, il peut théoriquement invalider rétroactivement les blocs (et donc transactions) de la chaine. Cette attaque nécessite un certain investissement initial (quelques centaines de millions d'euros à ce jour). Bref, pas de quoi stopper un état…

      On dit que les utilisateurs restent anonymes derrière une clé publique, mais si l'autre partie identifie l'utilisateur de la clé, il peut ensuite pister toutes ses transactions en surveillant la chaîne?

      Oui

      Je laisse la dernière question à ceux que ça intéresse, j'ai personnellement perdu tout intérêt dans la chose.
      L'idée originale du fonctionnement de la blockchain était certainement intelligente mais je peine sérieusement à voir une application qui ne peut être mieux réalisée en utilisant d'autres idées bien plus éprouvées.
      Pendant quelques années, tout le monde parlait de bitcoin, mais une fois la curiosité passée, tout le monde à vu que ça n'apportait strictement rien et l'extrême toxicité de la communauté a fait le reste. Aujourd'hui, on tente de vendre la blockchain parce que bitcoin ne vend plus. C'est le même produit, on a juste changé le nom.

    • [^] # Re: J'ai jamais tout compris aux chaines de blocs!

      Posté par (page perso) . Évalué à 1.

      Il ne répond sans doute pas à toutes tes questions, mais j'avais trouvé très intéressant cet article sur le bitcoin avec un bon dosage précision/pédagogie pour quelqu'un déjà à l'aise sur les concepts informatiques (en anglais) :

      http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/1

  • # Pas de pognon?

    Posté par . Évalué à 2.

    Je vois bien comment Bitcoin peut fonctionner : les mineurs créent des Bt et se rémunèrent par la même occasion. En théorie, ça peut même stabiliser la monnaie (puisqu'on arrête de miner quand le coût du minage dépasse le taux de change du Bt), même si en pratique ça ne semble absolument pas être le cas.

    Par contre, quand les blockchain contiennent des infos (genre identifiants, certifications, etc), quel peut bien être l'intérêt de miner et de maintenir des nœuds? S'il n'y a pas de rétribution, je vois mal comment le système peut se maintenir, et comment on pourrait par exemple empêcher un acteur motivé (État, entreprise, ou simplement cracker à la tête d'un réseau de machines zombies) de mettre le système à genoux…

    • [^] # Re: Pas de pognon?

      Posté par . Évalué à 2.

      On peut avoir d'autre intéret que l'argent pour miner. Comme garantir les informations dans la blockchain. Or, on est bien dans ce cas lorsque l'on parle de blockchain à d'autre fins que la monnaie. Autre point important, dans blockchain, il y a block et chain. En validant un bloc aujourd'hui, tu valide aussi tout les autres blocs dans la chaine.

      Attention, aussi, le bitcoin est une technologie de blockchain ( la première avec ces faiblesses et ces atouts). Il en existe d'autre plus adaptées à d'autre usages avec d'autres contraintes.

      Par exemple, pour le cadastre (on en parle souvent), l'état peut très bien être le seul à pouvoir validé un bloc. Rien n'empêche les autres de le vérifier par la suite. L'état peut faire miner par d'autre en échange de récompense ou sur du bénévolat mais il sera le seul à décider à la fin.

      • [^] # Re: Pas de pognon?

        Posté par . Évalué à 3.

        On peut avoir d'autre intéret que l'argent pour miner. Comme garantir les informations dans la blockchain.

        J'entends bien, mais ça me semble beaucoup moins motivant en termes de ressources que l'espoir d'un retour sur investissement. C'est typiquement le genre de systèmes sensible à la faille des 51%, puisqu'un attaquant motivé pourrait très bien avoir les moyens de mettre en l'air la fiabilité de l'information.

        L'état peut faire miner par d'autre en échange de récompense ou sur du bénévolat mais il sera le seul à décider à la fin.

        Mouais, pourquoi alors ne pas simplement héberger les infos sur un serveur?

        • [^] # Re: Pas de pognon?

          Posté par . Évalué à 2.

          J'entends bien, mais ça me semble beaucoup moins motivant en termes de ressources que l'espoir d'un retour sur investissement.

          C'est comme toutes bonnes backups, c'est du temps, de l'investissement perdus. Sauf le jour où tu en aura vraiment besoin.

          C'est typiquement le genre de systèmes sensible à la faille des 51%.

          C'est une faille de la blockchain bitcoin. Comme dis, il y a d'autres technologies de blockchain avec d'autres failles et d'autres avantages. Il suffit de choisir laquel correspond le

          mieux.Mouais, pourquoi alors ne pas simplement héberger les infos sur un serveur?

          Un serveur, c'est centralisé, s'il est compromis, on n'a plus rien du tout. La blockchain étant partagée, c'est autant de backups disponibles.
          Et pourquoi aller chercher une info un serveur distant alors que l'on peut tout avoir en local.
          Tu as acheté ta maison. Garde donc une copie de la blockchain ayant la transaction avec toi. Tu pourra prouver et vérifier que tu l'as acheté. A eux de prouver que tu la revendus entre temps si besoin.

          Quand on parle de blockchain, on parle de deux technologies en faites :
          - un réseau P2P se partageant, en autre, la blockchain et gérant nouvelles transactions.
          - la blockchain proprement dit.

          Dans le cas cité, il faut que les notaires transmettent les nouvelles transactions et ils faut que l'état diffuse sa validation, le réseau P2P d'une blockchain marche parfaitement pour cela.

          Pour les cadastres, les transactions sont inaltérables. Une fois une transaction valide, si on veut revenir à l'état d'avant, il faut faire une transaction inverse. On ne peut pas supprimer. Une fois une transaction validée et plus le temps passera, plus il devriendra difficile de compromettre ce bloc même par l'état. Car il faudrait recalculer tout les blocs depuis cette transaction. Tu as donc tout interêt à avoir une version récente de la blockchain pour prouver que tu est bien propriétaire ( ou plus ). Cela renforce le besoin de diffusion de la blockchain.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.