Flipstarter est une plateforme décentralisée de financement participatif dédiée à l'écosystème de la cryptomonnaie Bitcoin Cash (BCH). Créée en réponse à la très controversée proposition de redirection d'une partie du revenu du minage ayant pour but de payer les développeurs, la plateforme se veut être une alternative transparente et volontaire permettant aux détenteurs de BCH les plus fortunés de coopérer pour soutenir économiquement l'évolution de la cryptomonnaie. L'objectif actuel de Flipstarter est d'apporter des fonds aux équipes en charge du développement du protocole pour l'année qui vient.
Pourquoi Flipstarter ?
Le 22 janvier dernier, Jiang Zhuoer, le PDG de la coopérative minière chinoise BTC.TOP, a annoncé la mise en place d'un « plan de financement de l'infrastructure pour Bitcoin Cash » prévoyant une redirection de 12,5 % de la récompense de bloc de Bitcoin Cash vers les équipes de développement des implémentations logicielles. Cet Infrastructure Funding Plan (IFP) était soutenu par certaines des plus grandes coopératives de minage de bitcoins, à savoir Antpool, BTC.com, ViaBTC et, semblait-il, Bitcoin.com. Il devait être mis en place par le biais d'un soft fork appliqué par les mineurs qui invaliderait tout bloc refusant cette mesure, à la manière d'une attaque des 51 %. Ce caractère obligatoire aurait permis d'aller à l'encontre du problème du passager clandestin, c'est-à-dire de la situation où seules quelques coopératives minières se chargent de financer l'écosystème tandis que les autres sont des « passagers clandestins » qui profitent des bénéfices apportés sans y contribuer.
Lors de sa publication, l'idée a en apparence recueilli l'approbation de beaucoup de développeurs, dont Amaury Séchet, le développeur en chef de Bitcoin ABC. Celle-ci constituait après tout un modèle de trésorerie comme on peut le retrouver dans d'autres protocoles comme Dash et Zcash, et résolvait le problème de financement du développement des implémentations qui sont des logiciels libres que chacun peut utiliser à sa guise et dont on ne peut pas en faire une exploitation commerciale classique.
Cependant, une vive opposition s'est rapidement développée au sein de la communauté de Bitcoin Cash et beaucoup de personnes qui soutenaient initialement l'IFP ont changé d'avis. Le plan constituait en effet un profond changement des incitations économiques de Bitcoin Cash et ouvrait une boîte de Pandore en inscrivant un arbitraire dangereux dans le protocole, ce qui remettait en cause une partie des bases culturelles de la communauté. L'opposition a donc été extrêmement virulente et l'IFP, parfois qualifiée de « taxe sur le minage », a fait l'objet de débats enflammés à propos de ce qu'est Bitcoin Cash et de ce qu'on peut modifier ou non. L'organisation Bitcoin Unlimited s'est opposée en bloc, en s'engageant à procéder à un hard fork si l'IFP était activé. De son côté, Bitcoin.com est revenu sur son soutien et Roger Ver a déclaré qu'il n'avait jamais explicitement donné son accord en premier lieu.
En dépit de la nature controversée de ce plan, Bitcoin ABC a persisté dans son choix le 15 février et l'a implémenté dans son code de sorte à ce qu'il soit activé par le signalement des mineurs, à la manière du BIP9. Ce refus d'écouter une partie de la communauté a conduit à la création d'une implémentation concurrente, Bitcoin Cash Node (BCHN), ayant repris le code source de Bitcoin ABC et en ayant ôté les changements relatifs à l'IFP. BCHN est une implémentation de nœud adaptée pour les mineurs et gérée par un groupe de développeurs ayant fait leurs preuves. Son développeur en chef est freetrader, la personne qui avait participé à la création de Bitcoin Cash avec Amaury Séchet en 2017.
Dès le début de ce mouvement d'opposition, une proposition de financement alternatif a émergé. Le 26 janvier, le développeur anonyme imaginary_username publiait un article dans lequel il expliquait qu'entre le modèle de l'investissement par le capital-risque (tel qu'il est réalisé pour Bitcoin-BTC par exemple) et celui de la trésorerie interne (comme pour Dash ou Zcash), il en existait un troisième : le financement participatif. Il mettait notamment en avant le fait que les détenteurs de BCH les plus fortunés avaient tout intérêt à investir dans l'infrastructure, puisque celle-ci participait au succès économique de Bitcoin Cash. Cet article a eu un certain succès dans la communauté et a réussi à recueillir plus de 1000 $ de pourboires en bitcoins cash. Mais surtout, il a inspiré ce qui allait devenir Flipstarter.
Flipstarter tire donc son origine de la protestation contre la proposition de financement par redirection du revenu du minage. La plateforme a été développée par John Nieri et son équipe1 en seulement deux mois. Après une campagne fructueuse pour EatBCH, elle héberge aujourd'hui différentes campagnes de financement visant à récolter un total de 700 000 dollars pour les différentes implémentations logicielles de Bitcoin Cash.
Une résurrection de Lighthouse, le projet de Mike Hearn
Flipstarter est donc une plateforme de financement participatif dédiée à l'écosystème de Bitcoin Cash. Plus que cela : il s'agit d'une plateforme qui fonctionne sur la blockchain de Bitcoin Cash, et qui utilise l'aspect programmable des transactions pour faire en sorte que le financement participatif ne repose pas sur un tiers de confiance. Flipstarter est donc une application décentralisée (ou du moins partiellement décentralisée) et se distingue de cette manière des plateformes de crowdfunding centralisées comme Kickstarter, Indiegogo ou Ulule.
Cependant, l'idée du financement participatif décentralisé n'est pas une idée nouvelle et existe en réalité depuis les débuts de Bitcoin. Et Flipstarter n'est qu'une résurrection de Lighthouse, un logiciel géré par le développeur Mike Hearn en 2015.
Mike Hearn était un développeur pour Bitcoin entre 2010 et 2016. Il est connu pour avoir implémenté le protocole Bitcoin en Java sous la forme de la bibliothèque bitcoinj, participé à la création et à l'évolution des portefeuilles légers et aidé à la conception du protocole de paiement BIP70.
Ayant découvert Bitcoin au printemps 2009 et ayant interagi par courriel avec Satoshi Nakamoto, il s'est très rapidement intéressé aux capacités de développement de contrats autonomes (smart contracts) sur Bitcoin. C'est donc tout naturellement que la possibilité de Bitcoin de gérer le financement participatif par des contrats de garantie (assurance contract) lui est apparu comme une chose essentielle à développer. Dès 2011, Mike Hearn écrivait ainsi sur la page des contrats de Bitcoin Wiki :
Un contrat de garantie est une manière de financer la création d'un bien public, c'est-à-dire d'un bien qui, une fois créé, bénéficie à tous gratuitement. L'exemple typique est celui d'un phare : bien que tout le monde puisse être d'accord sur le fait qu'il doit être construit, c'est bien trop cher pour justifier qu'un marin individuel en construise un, étant donné qu'il bénéficiera à tous ses concurrents. Une solution est que tout le monde promette de payer pour la création du bien public, de sorte à ce que les promesses soient appliquées seulement si la valeur totale des promesses dépasse le coût de création. Si le nombre de personnes qui contribuent n'est pas assez élevé, personne ne doit payer quoi que ce soit.
Son idée a mariné pendant quelques années, puis, en 2014, Mike Hearn a tenté de la mettre en application. Lighthouse (nommé en référence à l'exemple typique du phare) a été ainsi annoncé le 17 mai 2014 lors de la conférence Bitcoin 2014 à Amsterdam. Son but affiché était de remplacer la Fondation Bitcoin, qui finançait à l'époque l'essentiel du développement de l'écosystème, mais qui était critiquée en raison de son organisation hierarchique et de son opacité. Lighthouse représentait donc un moyen plus décentralisé et transparent de soutenir les différents projets relatifs à Bitcoin.
Mike Hearn a formé une entreprise, appelée Vinumeris, avec laquelle il a organisé le développement du logiciel Lighthouse. Une version alpha a été dévoilée au public en septembre 2014, mais il a fallu attendre le 20 janvier 2015 pour la sortie d'une version bêta complètement fonctionnelle.
La plateforme Lighthouse a suscité l'enthousiasme au sein de la communauté mais n'a jamais été pleinement utilisée. Sur les campagnes qui ont eu lieu sur la plateforme, seules quelques unes sont arrivées à terme, et pour cause : il fallait télécharger un logiciel pour faire une promesse et chaque campagne était limitée à 674 promesses.
Mais ce qui a sans doute enterré le projet, c'est le débat sur la scalabilité qui faisait rage à l'époque. Mike Hearn favorisait alors l'augmentation de la taille des blocs et s'est détourné de Lighthouse pour se focaliser sur la réalisation de cette vision. C'est ainsi qu'en août 2015, avec Gavin Andressen, il a créé Bitcoin XT, une implémentation de Bitcoin concurrente de Bitcoin Core. Néanmoins, malgré un soutien fort dans la communauté, Bitcoin XT n'a pas réussi à s'imposer comme l'implémentation de référence, et Mike Hearn a finalement tiré sa révérence le 14 janvier 2016, interrompant par là tout rapport avec Bitcoin. Lighthouse a alors définitivement disparu de la scène2.
À la suite de cet échec, le développement de Bitcoin s'est tourné vers le modèle de financement par le capital-risque, ce qui l'a rendu plus sensible à la logique du retour sur investissement, modèle qui n'est pas mauvais en soi, mais qui peut conduire à des conflits d'intérêt évidents. L'entreprise Blockstream, co-fondée fin 2014 par des développeurs majeurs de Bitcoin Core, a ainsi levé 55 millions de dollars en février 2016 auprès de sociétés d'investissement comme AXA Strategic Ventures, Digital Garage et Horizons Ventures. Elle a assumé pendant longtemps la charge du financement des développeurs, charge qui semble avoir aujourd'hui été reprise par Chaincode Labs.
Comment fonctionne Flipstarter ?
Voyons à présent comment cela fonctionne techniquement.
L'idée de base de Flipstarter est de permettre à un ensemble d'investisseurs de financer un projet commun en se prémunissant contre le problème du passager clandestin. Chacun promet d'investir une certaine somme dans le projet à condition que les autres paient aussi : si toutes les parties concernées font cette promesse, le projet est financé ; sinon, le projet n'est pas financé et personne ne paie. Pour faire ceci il existe une fonction native de Bitcoin qu'on appelle couramment anyone-can-pay.
Comme on le sait, dans Bitcoin Cash, les transaction sont toutes constituées d'entrées et de sorties. Sauf dans le cas de la transaction de récompense qui crée des nouveaux bitcoins cash, chaque entrée dépense la sortie d'une transaction précédente. L'entrée est pour cela signée par le propriétaire des fonds dépensés, et la signature résultante est ensuite vérifiée par les nœuds du réseau. Pour que la transaction soit valide, il faut que les signatures des entrées soient toutes valides.
Bien que la signature ne permette de dépenser qu'une seule entrée, l'utilisateur signe généralement toutes les données de la transaction, ce qui a pour conséquence d'invalider la signature produite si une partie de la transaction est modifiée. Cependant une transaction peut aussi être partiellement signée, et la signature ne concerne alors que des entrées et des sorties spécifiques.
Cela est réalisé par l'intermédiaire d'un champ présent dans l'entrée de la transaction appelé « type de signature » ou « type de hachage de la signature » (signature hash type), qui indique quelle partie de la transaction est hachée pour être ensuite soumise à l'algorithme de signature3. Ce type de signature est ajouté à la fois à la transaction non signée (la préimage) et à la signature elle-même sous la forme d'un octet. Notez que tout ceci était présent dès la création de Bitcoin et que Satoshi Nakamoto avait intégré ce type de signature dans le code d'origine.
Le type de signature est construit à partir de plusieurs signaux de signature qu'on peut combiner (en les additionnant). Les 4 signaux de signature présents dans Bitcoin Cash sont :
SIGHASH_ALL
(0x01
) qui indique que toutes les sorties sont signées. Il s'agit du signal de signature le plus utilisé car, utilisé seul, il englobe toutes les entrées et toutes les sorties de la transaction.SIGHASH_SINGLE
(0x03
) qui permet de ne signer qu'une seule sortie.SIGHASH_NONE
(0x02
) qui indique qu'aucune sortie n'est signée.SIGHASH_ANYONECANPAY
(0x80
) qui permet de ne signer qu'une seule entrée.
Les trois signaux concernant les sorties peuvent être combinés avec SIGHASH_ANYONECANPAY
, ce qui permet de former finalement 6 types de signatures différents. Sur Bitcoin Cash, le type de signature est toujours combiné avec le modificateur SIGHASH_FORKID
de valeur 0x40
.
À l'aide de ces types de signatures, il est possible de réaliser un certain nombre de choses intéressantes, dont les transactions de financement participatif de Flipstarter.
Les transactions de Flipstarter sont des transactions anyone-can-pay dont les entrées sont signées avec SIGHASH_ALL | SIGHASH_ANYONECANPAY
. Chaque signature ne prend donc en compte que l'entrée concernée et les sorties de la transaction. Cela fait que la transaction n'est pas valide tant que la somme des montants en entrée n'est pas égale au montant en sortie (plus les frais de transaction). Ainsi, les contributeurs peuvent promettre de ne donner des fonds que si le montant cible est atteint.
Tant que la campagne n'est pas terminée, l'investisseur peut à tout moment annuler sa promesse en dépensant les fonds signés. Une campagne arrive à son terme lorsque les montants des contributions atteignent le but : la transaction est alors diffusée sur réseau et les coins sont définitivement dépensés.
La levée de fonds a donc lieu grâce à une seule transaction. Cela constitue un moyen simple et léger, mais qui a ses propres limitations tant au niveau de la mise en relation des utilisateurs que du nombre de personnes pouvant participer (la taille d'une transaction standarde étant limitée à 100 ko).
Une première campagne pour l'association caritative EatBCH a été réalisée en guise de premier essai. Elle a levé 20 BCH (soit 3350 $) en moins d'une journée, grâce à la participation de 17 personnes. Les destinataires des fonds étaient les deux branches de l'association : 7 BCH ont été envoyés à EatBCH Venezuela et 13 BCH ont été reversés à EatBCH South Sudan. La transaction, visible sur la chaîne de blocs grâce à son identifiant c0dcdd6fdf6068bb4bdf77de93217a1ba315da58234702526522bd324e61bc89, est représentée ci-dessous.
Quelle destinée pour Flipstarter ?
Flipstarter a été annoncé le 15 février 2020, pour être lancé le 17 avril dernier. Le système a donc été développé très rapidement, mais il est cependant fonctionnel : cinq campagnes ont lieu en ce moment même pour réaliser le financement annuel des différentes implémentations de Bitcoin Cash. Les montants récoltés sont de 1000 BCH pour Bitcoin ABC, 978 BCH pour Bitcoin Cash Node, 360 BCH pour bchd, 241 BCH pour Bitcoin Verde et 460 BCH pour Knuth (Bitprim). Cela représente un total de 3039 BCH, soit 700 000 $ lors de son lancement le 17 avril.
La plateforme est pour le moment très minimaliste et l'expérience utilisateur est loin d'être optimale. Le mécène doit ainsi interagir avec le site web à l'aide d'un plugin sur le portefeuille Electron Cash en copiant collant du texte de l'un à l'autre et vice versa. De plus, les portefeuilles matériels comme le Ledger Nano X ne peuvent pas être utilisés, puisque ceux-ci ne peuvent pas signer une transaction en anyone-can-pay. Enfin, comme on l'a dit, les limites internes du protocole font qu'une campagne ne peut pas réunir plus de 670 contributeurs : il existe par conséquent un montant minimal à promettre, ce qui empêche les petits donateurs de participer. Pour remédier à tout ceci, les développeurs de Flipstarter travaillent sur des contrats autonomes plus complexes utilisant le système de script de Bitcoin Cash.
Flipstarter est donc un moyen fonctionnel mais imparfait pour lever des fonds et il est légitime de se demander si ce modèle réussira à s'imposer ou si, comme pour Lighthouse, il tombera dans l'oubli et l'indifférence. Heureusement, la communauté de Bitcoin Cash n'est pas la dernière à s'investir, comme le prouve la dernière levée de fonds pour l'audit et le développement de CashFusion qui a récolté 100 000 dollars début avril. De cette manière, il n'est pas impossible que ce type de financement devienne la nouvelle norme pour le financement du développement de Bitcoin Cash. De plus, ce modèle fonctionne pour d'autres systèmes de cryptomonnaie, à l'instar de Monero dont le développement est financé par des donations volontaires sans contrepartie.
De plus, si cela réussit, le modèle de Flipstarter pourrait se populariser et devenir une manière commode de lever des fonds pour un projet spécifique n'ayant aucun lien avec le développement logiciel. Dans le milieu des protocoles crypto-économiques, il existe en effet une multitude de projets d'utilité commune qui ne demandent qu'à être financés mais qui ne peuvent pas faire ceci par le biais d'un financement par capital-risque ou d'une ICO : je pense notamment à l'adoption commerciale de la cryptomonnaies en général. Au-delà de notre microcosme, ce type de financement pourrait, dans un futur plus lointain, s'étendre à des projets d'infrastructures communes comme les logiciels libres, les routes publiques ou les fêtes communales, et résoudre ainsi un certain nombre de problèmes qui sont actuellement résolus par la force légale.
Toutefois, pour que ceci réussisse il faut mener à bien les premières étapes. Si vous appréciez Bitcoin Cash et que vous pouvez vous le permettre financièrement, envisagez donc d'utiliser Flipstarter pour donner à Bitcoin ABC, à BCHN ou à une autre implémentation. Pour savoir comment procéder, il existe ce tutoriel (en anglais) qui explique tout pas à pas. Il y a également la vidéo suivante, réalisée par John Moriarty.
La destinée de Flipstarter repose donc sur le comportement des détenteurs de bitcoins cash : feront-ils l'effort de participer, de se joindre à l'effort commun, ou ignoreront-ils la possibilité, pourtant tout à fait rationnelle, de financer l'infrastracture logicielle de la cryptomonnaie ? L'avenir nous le dira.
Notes
1. ↑ Les principaux contributeurs au projet Flipstarter sont John Nieri (emergent_reasons), Jonathan Silverblood, Dagur, Sploit et Leandro Di Marco. L'idée originale provient de imaginary_username, qui a également contribué en réalisant des traductions.
2. ↑ Une tentative de reprise de Lighthouse sur Bitcoin Cash avait déjà eu lieu bien avant Flipstarter à travers Lighthouse.cash. Cependant, le projet a migré vers Bitcoin SV en novembre 2018 et semble avoir été abandonné depuis longtemps.
3. ↑ Pour connaître tous les détails sur ce sujet, vous pouvez lire mon article Comment envoyer une transaction Bitcoin à la main ?
Sources
Andreas M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain, chapitre 6.
Mike Hearn, Contract page on Bitcoin Wiki.
Arianna Simpson, Game Theory, Assurance Contracts, and Crowdfunding with Bitcoin, 28 avril 2014.
Lighthouse FAQ
Mike Hearn, The resolution of the Bitcoin experiment, 14 janvier 2016.
imaginary_username, Assessment and proposal re: the Bitcoin Cash infrastructure funding situation (traduction : Évaluation et proposition en réponse à la situation financière de Bitcoin Cash), 26 janvier 2020.
Introducing Flipstarter, 15 février 2020.
2 Responses
Salut Ludovic,
Ca faisait longtemps que je n’avais plus jeté un oeil ici, merci pour ce chouette article encore une fois!
J’ai participé aussi au funding de l’audit Cashfusion (qui est donc maintenant financé entièrement) et vu que je ne suis plus trop sur Reddit pour le moment, a t’on une idée de quand cet audit se fera?
Sinon par curiosité, je vois que tu ascceptes un paiement ligthning, en as-tu déjà reçu?
Merci pour tes contributions!
Steve
Salut Steve,
Merci pour le commentaire (et pour le don je présume !)
Le fonds de CashFusion, c’est Bitcoin.com qui s’en charge et il me semble que l’audit a déjà été commandé : https://www.reddit.com/r/btc/comments/fvgaxt/thanks_to_everyone_who_donated_the_cashfusion/
Pour les paiements Lightning j’en ai déjà reçu par ce moyen (tippin.me) mais je ne suis pas sûr que j’en ai reçu un depuis ce site. Même pour l’adresse BTC on-chain, les transactions reçues ne sont pas des dons. Mais bon ça ne m’étonne pas : peu de gens utilisent leurs cryptos, et encore moins font des donations avec.