L’année dernière, en décembre 2014, je vous présentais BitShares ici sur Le-coin-coin, et je vous promettais une version 1.0 accompagnée d’une campagne marketing qui ferait du bruit. Mais aujourd’hui la market cap est à $11M, sous celle de Dogecoin, ce qui semble peu glorieux pour la crypto qui a l’ambition de révolutionner le monde des affaires. Et pourtant, si beaucoup de promesses n’ont pas été tenues, que beaucoup d’obstacles se sont dressées sur la la route et que le prix est sous l’eau, ce n’est pas le moment d’enterrer BitShares : d’après moi cela reste un des projets crypto les plus prometteurs.

Énormément de choses se sont passées pour BitShares cette année. Principalement, le code a été entièrement réécrit, et la version 2.0 est sortie la semaine dernière, le 13 octobre. Cette nouvelle version n’a pas encore parfaitement tenu ses promesses au niveau de l’interface utilisateur, néanmoins elle fonctionne très bien au niveau de la blockchain, et jette de nouvelles bases en terme de flexibilité, d’efficacité et d’évolutivité (scalability).

Dans cet article, je vais vous introduire BitShares 2.0, avec tout d’abord un rapide retour sur ce qui s’est passé en 2015.

1. Petite rétrospective de l’année écoulée

Le wallet était poussif et fonctionnait mal sur windows, l’échange décentralisé n’était pas tout à fait fonctionnel et son comportement surprenait les utilisateurs, leur faisant parfois perdre pas mal d’argent notamment lors des margin call sans que cela soit anticipé. La campagne marketing promise n’était que du vent et n’aurait jamais lieu (le « directeur marketing » a quitté le navire), et la tant attendue version stable 1.0 ne pointait pas son nez. L’échange chinois BTER.com, qui avait le plus gros volume pour BTS, s’est fait hacker et a perdu 7170 BTC. Dans ces crises successives, la faible dilution introduite récemment pour compenser les délégués était fortement remise en cause. Beaucoup d’investisseurs ont fuit, et même les développeurs se faisaient étrangement silencieux sur le forum. Le prix de BTS a atteint son plus bas historique sur poloniex à 1276 satoshi le 29 avril 2015.

Et pourtant, si beaucoup n’y croyaient plus, dans les coulisses, les développeurs travaillaient d’arrache-pied. En juin, il a été annoncé que la version 1.0 ne verrait jamais le jour…  car tout le code était réécrit sur une meilleure base, sous le nom de Graphene.

Puisqu’à ce bas prix les développeurs étaient incapables de subvenir à leurs besoins avec leur seule paye de délégué (= la dilution des BTS), il a également été annoncé qu’ils reformaient une compagnie indépendante de BitShares, Cryptonomex . Cette compagnie s’est donnée pour première mission de lancer BitShares, et les développeurs restent profondément investis, mais si le code de Graphene reste visible par tous sur Github, son usage est soumis à des restrictions de copyright. Cela n’a pas plu à tout le monde . Cependant BitShares reste la propriété des détenteurs de BTS et reste libre, et Dan Larimer souhaite que la blockchain puisse se prendre en main par elle même et qu’elle ne soit plus entièrement dépendante de lui, ce qui est tout à son honneur.

2. BitShares 2.0

2.1. La vision générale de BitShares

Avant d’attaquer BitShares 2.0 proprement dit, il est utile de rappeler ce qui différencie BitShares des autres crypto-monnaies.

L’idée initiale de BitShares consiste à voir Bitcoin non pas comme une monnaie ou comme de l’or, mais comme la première DAC (Decentralized Autonomous Company), et les BTC individuels comme des parts dans la DAC Bitcoin. Dans le cas de Bitcoin, l’entreprise serait déficitaire : elle a des coûts non négligeables en équipement et en électricité, et ses recettes, les frais de transaction, sont largement incapables de subvenir aux besoins des mineurs, aussi il y a une forte dilution par l’introduction des nouveaux Bitcoin. S’il n’y a pas de nouvel argent qui entre dans le système, il n’y a aucun intérêt à détenir des Bitcoin : ils perdent de la valeur à cause de la dilution. De plus, la sécurité achetée par le minage est au final assez limitée, puisque la sécurité dépend de la décentralisation, or avec les pools la centralisation est forte.

Pour la validation des transactions, BitShares a introduit le protocole DPOS, Delegated Proof of Stake, à la place du Proof of Work. Ce sont des délégués (d’où le « Delegated ») élus par les détenteurs de BTS (chaque BTS est une voix, d’où le « Proof of Stake ») qui signent et valident les blocs à tour de rôle, en échange d’une compensation à chaque bloc signé. Si un délégué se comporte mal en signant des transactions invalides ou en refusant des transactions valides, les autres délégués ne laisseront pas passer les mauvaises transactions, et l’attaquant pourra être expulsé des délégués élus.

Mais le principal atout de BitShares réside dans ses BitAssets (aussi appelés SmartCoin), tels que BitUSD ou BitBTC, qui sont aussi simples d’utilisation que n’importe quel token cryptographique, mais dont la valeur est indexée sur un actif du monde réel. Ils sont garantis par 3 fois leur montant sous la forme de BTS gardés en collatéral par la blockchain. Les BitAssets répondent ainsi à un des problèmes majeurs de l’adoption des cryptos, à savoir l’instabilité du prix des cryptos. De plus, comme il est possible de créer des marchés pour échanger ces BitAssets entre eux, il est possible de créer une plateforme de trading totalement décentralisée.

2.2. Avec BitShares 2.0, DPOS 2

Dans la première version de BitShares, il y avait 101 délégués qui assuraient la validation des blocs. Mais ils étaient également compensés et pouvaient recevoir une paye à un taux variable, ce qui permettait à quelqu’un de « travailler pour la blockchain » à hauteur des services rendus s’il arrivait à se faire élire. Les délégués étaient également responsables de la publication des price feed (c’est à dire les prix officiels des BitAssets) et déterminaient quelle était la version officielle du protocole en suivant les règles de production des blocs.

Malheureusement, tous ces rôles sont conceptuellement très différents. Par exemple si on voulait compenser des efforts de marketing par une position de délégué rémunéré, ce délégué marketing devait tout de même effectuer le travail technique nécessaire pour produire des blocs de manière fiable, tout en publiant des price feed… Ce système posait donc un certain nombre de problèmes, et les rôles ont été distribués de manière bien plus optimale dans BitShares 2.0. Les détenteurs de BTS peuvent désormais élire 3 types de postes :

1) Les témoins (Witness), qui ont pour unique rôle de valider les transactions en les incluant dans des blocs qu’ils signent. Ils touchent une rémunération fixe à chaque bloc validé, 1.5 BTS actuellement.
2) Les délégués (Committee Member) sont co-signataires d’un compte spécial qui a le pouvoir de modifier la plupart des paramètres de la blockchain, tels que les frais appliqués pour les différents types de transactions, l’intervalle entre 2 blocs, la paye des witness, etc. Un changement de paramètre, même lorsqu’il obtient l’aval de 50 % des parts, ne devrait être effectif qu’après deux semaines, afin de donner un délai de réflexion et de mobiliser les électeurs en cas de modification dangereuse. (Il me semble toutefois qu’actuellement, pour les phases de rodage du système, ce délai n’est pas en place, mais ça reste à confirmer). Les délégués ne sont pas rémunérés.
3) Enfin, il est possible de voter pour approuver des propositions de travailleurs (Workers), qui s’engagent à effectuer un travail en échange d’une rémunération. Chaque jour, la blockchain peut générer un maximum de 432,000 BTS pour financer ces propositions. Ces BTS sont tirés de la pool de réserve, qui comprend 1.2 milliards de BTS initialement, et dans laquelle reviennent se verser les frais qui ont été brûlés. Si la pool de réserve est vide, plus aucun worker ne peut être payé (d’ailleurs, les witness non plus), il y a ainsi une limite définitive au montant de BTS en circulation de 3.7 milliards (2.5 milliards actuellement en circulation, + 1.2 milliards situés dans la pool de réserve). Les Workers qui ont reçus le plus de votes sont les premiers rémunérés. On peut voter pour des Refund worker dont le rôle est de reverser les BTS directement à la pool de réserve, il est ainsi possible qu’il n’y ait aucun worker rémunéré. Les positions de worker permettent aux développeurs d’être rémunérés par la blockchain.

Enfin, les Price feed des BitAssets sont initialement publiés par le compte du comité (c’est à dire co-signé par les délégués), mais n’importe quelle organisation peut désormais établir son propre BitAsset et publier ses propres Price feed.

Il y a actuellement 27 witness et 11 délégués. La sécurité d’un tel réseau a été débattue, et il est sans doute préférable d’avoir un petit nombre de membres de confiance qu’un grand nombre d’inconnus. Ces nombres peuvent changer, quand on vote pour les witness on vote également pour le nombre de witness qu’on aimerait avoir. Il est également possible de déléguer ses votes à un compte proxy à qui on fait confiance.

2.3. Optimisation des performances

Si la taille des blocs de Bitcoin n’est pas modifiée, Bitcoin est limité à 7 transactions par seconde. BitShares a l’ambition d’être un échange à la pointe, capable de concurrencer le NASDAQ ou VISA et leurs dizaines de milliers de transactions par seconde.
Pour optimiser les performances, BitShares 2.0 s’est inspiré de l’architecture LMAX, capable de gérer 6 millions de transactions par seconde dans une file unique d’événements (c’est à dire traités par un seul ordinateur, pas en parallèle). En effet, dans le cas des transactions financières, il est extrêmement complexe de valider des transactions en parallèle, et il est bien préférable de les traiter une par une pour avoir un ordre bien établi de l’ensemble des transactions.
Pour maximiser la performance, il faut garder l’état de tous les comptes sur la blockchain dans la RAM (uniquement les soldes des comptes, pas besoin de retenir les transactions qui ont été faites). Tout ce qui ne nécessite pas de connaître l’état du réseau, dont le travail cryptographique de vérifier les hashes et signatures, peut et doit être fait en parallèle, puis envoyé à la file unique.

Même avec 3 milliards de comptes sur la blockchain, cela ne nécessiterait qu’un Térabyte de RAM, or il est déjà possible de se procurer une telle quantité de RAM pour moins de 15000 dollars aujourd’hui ! A terme, avec du matériel performant, le réseau BitShares pourra soutenir jusqu’à 100000 transactions par seconde, avec un bloc par seconde. Actuellement, le réseau peut gérer 100 transactions par seconde avec un bloc toute les 3 secondes.

2.4. Être rentable : frais relativement élevés et programme de parrainage

Pour rester dans la métaphore du business, un des objectifs de BitShares est d’être rentable, c’est à dire de reverser un dividende aux investisseurs. Ce dividende se traduit en réalité par la réduction du nombre de BTS en circulation lorsque des frais sont prélevés. Pour être rentable, BitShares 2.0 a introduit des nouveaux frais de transactions, élevés par rapport à avant, où le minimum était de 0.1 BTS : 10 BTS (0.05$) pour placer un ordre de marché et 40 BTS pour un transfert (0.20$). Cela reste faible dans l’absolu et du même ordre de grandeur que pour une transaction Bitcoin. De plus, il est possible de se faire rembourser une partie de ces frais en achetant un abonnement : on peut se faire rembourser 50 % de ses frais pendant 1 an pour 8000 BTS ou bien 80% de ses frais pour toujours pour 20000 BTS (100$). Ces nombres seront bien sûr amenés à être modifiés si les BTS prennent de la valeur, l’objectif pour l’instant est d’être proche des prix en dollars donnés entre parenthèses.

Ces frais cherchent à représenter le coût réel de maintenance de la blockchain : il faut en effet compenser les witness et worker. Mais le but principal de cette politique de frais est de soutenir un système de parrainage. En fait, seuls 20 % des frais sont brûlés : tout les comptes sont associés à un parrain, et les 80 % restants sont redistribués au parrain. Seuls les membres à vie peuvent parrainer de nouveaux utilisateurs. Lorsqu’on passe à un compte à vie, notre parrain ne reçoit plus rien sur les frais futurs, mais reçoit 80 % sur les 20000 BTS. C’est un système d’incitation à un seul niveau : on ne reçoit en effet rien sur les filleuls de ses filleuls, ce n’est donc en aucun cas un système pyramidal. Cela incite efficacement à prendre un abonnement à vie car il suffit de parrainer 2 personnes qui mettent à jour leur compte pour être bénéficiaire.

Je ne suis personnellement pas fan des systèmes de parrainage en général, mais je trouve que celui ci reste très bien pensé. Il faut aussi savoir que les frais récupérés par le parrain lorsque son filleul s’abonne ne lui sont pas accessibles dans l’immédiat mais lui sont reversés sur une période (au départ il était question d’un an, mais je ne suis pas sûr que c’est celle qui a été implémentée au final).
Le hic, c’est qu’à l’instant t le système n’est accessible que pour les personnes capables d’héberger leur propre wallet, c’est à dire qu’OpenLedger et Cryptonomex sont les seuls parrains actuellement, mais on nous a promis quelque chose d’accessible à tous pour la fin de la semaine dernière/très bientôt. Edit du 23 octobre : désormais, DACplay héberge également un wallet qui permet à quiconque d’être parrain.

2.5. Autres caractéristiques de la nouvelle blockchain

Graphene implémente également d’autres fonctions très utiles pour créer un échange et pour effectuer des paiements. Tout d’abord, il est possible de mettre en place des paiements récurrents : il s’agit d’autoriser un compte à faire un retrait d’un certain montant sur un certain intervalle de temps. Cela permet donc à des commerçants de prélever des abonnements.
Ensuite, tous les comptes ont des permissions dynamiques. Il est possible de donner à un nombre arbitraire de comptes externes des autorisations, qui ont un chacune un certain poids. Il faut réunir des autorisations de manière à ce que la somme de leurs poids dépassent un seuil pour permettre une transaction. De cette manière on peut définir les multi signatures de M personnes parmi N, mais de manière encore plus flexible car chaque compte peut avoir un poids différent si c’est utile.

Enfin, le système de création des BitAssets a été remanié (mais les anciens BitAssets ont pu être importés sans problèmes dans BitShares 2.0), et il est possible de produire des obligations. Toutefois, entrer dans les détails du marché décentralisé de BitShares mérite un autre article, et je n’ai pas encore eu le temps de faire le tour de tout.

3. Petit tour de la nouvelle interface

Il est temps de vous parler d’un point où tout change drastiquement pour le mieux : fini le client qui rame et qui mange un giga de RAM. Désormais, l’interface est basée sur le web, programmée en react, et ça va très vite. Plus besoin de faire tourner un full node, le client standard est un client dit lightweight, et en gros c’est un navigateur web dédié. Il est aussi possible d’aller sur la version en ligne. Les clés privées restent en local et ne sont jamais envoyées par internet.

Alors, ça tourne très bien, les blocs s’enchainent toutes les 3 secondes comme un métronome, et l’interface est propre. Sur les points négatifs, il n’y a pas encore d’historique des ordres passés, et pas mal de fonctionnalités n’ont pas encore été implémentées dans l’interface graphique, comme le fait de voter pour des Worker. Ce n’est pas bien grave car les modifications de l’interface graphique ne nécessitent pas de modifier le protocole et ne demandent donc pas de hardfork, de plus si on utilise le web wallet on n’a même pas besoin de télécharger une nouvelle version du logiciel, les mises à jour sont gérées par le site internet.

Pour l’instant, il y a des fonctions encore un peu confuses, et c’est notamment parce que BitShares cherche à être à la fois un échange et un wallet/compte en banque, et le fait d’avoir des fonctions complexes et personnalisables fait qu’il y a beaucoup d’options pas forcément limpides au premier coup d’oeil.

Globalement, on peut dire que ce nouveau wallet est très performant et utilisable, et sans aucun doute un grand bond en avant par rapport à l’interface de BitShares 0.9. Enfin, d’autres interfaces sont amenées à voir le jour, on peut notamment citer Moonstone qui est en cours de développement.

4. Plus d’informations ?

Pour créer un compte tester le wallet online c’est par là ou . C’est d’une grande simplicité, il suffit d’entrer son nom d’utilisateur et deux fois son mot de passe. Le client lightweight peut être téléchargé ici. Le wallet n’est pas encore entièrement traduit en français, mais c’est en cours. Dans tous les cas, il est crucial de faire un backup (aller dans « settings », la petite roue dentée en haut à droite, puis cliquer sur « wallets » à droite et « create backup »).
Pour avoir plus de détails et découvrir la communauté francophone, allez sur l’excellent site de la communauté BitShares French Connexion qui regorge d’informations, dont la traduction en français de bitshares.org et du blog de Daniel Larimer. Pour les détails techniques, une documentation en anglais est en train d’être écrite ici :  elle sera probablement traduite à un moment ou un autre.

Vous pouvez poser toutes vos questions sur le forum francophone de BitShares French Connexion ou sur le forum anglophone .

Enfin, si vous possédiez des BTS et que vous ne savez pas comment les importer dans BitShares 2.0, il faut d’abord récupérer le client 0.9.3 pour exporter vos clés dans un format importable. Référez vous à ce tuto ou posez vos questions ici.

J’espère vous avoir intéressé à cette crypto ambitieuse et prometteuse. Il y a encore beaucoup de choses à dire, à bientôt pour de nouveaux articles sur le Coin Coin !
hxnv21T