Éviter le projet de blockchain inutile

Comment déterminer si vous avez trouvé un véritable cas d'utilisation de la blockchain

Les blockchains sont surfaites. Là, je l'ai dit. Depuis Sibos à moneyxnumx / 20 pour couvrir des histoires de The Economist et les Euromoney, tout le monde semble monter à bord du wagon blockchain. Et sans aucun doute, comme d’autres dans le domaine, nous voyons un nombre rapidement croissant d’entreprises construire des preuves de concept sur notre plateforme et/ou demander notre aide.

En tant que jeune startup, on pourrait penser que nous serions aux anges. Le moment est sûrement venu de lever une tonne d’argent et de construire cette plate-forme blockchain de nouvelle génération haute performance que nous avons déjà conçue. Qu'est-ce qu'on attend ?

Je vais vous dire ce que. Nous attendons de mieux comprendre où se situent les blockchains. vraiment ajouter de la valeur à l'informatique d'entreprise. Vous voyez, une grande proportion de ces projets entrants ont rien à voir avec les blockchains. Voici comment cela se déroule. Les grandes entreprises entendent dire que les blockchains sont la prochaine grande nouveauté. Les grandes entreprises trouvent en interne des personnes intéressées par le sujet. La grande entreprise leur donne un budget et leur dit d'aller faire quelque chose de blockchain. Bientôt, ils viennent frapper à notre porte, agitant des billets d'un dollar et demandant us pour aider le point de vue de imaginez un cas d'utilisation. Dis quoi maintenant?

Quant à ceux qui ont un projet en tête, quel est le problème ? Dans de nombreux cas, le projet peut être parfaitement mis en œuvre en utilisant une base de données relationnelle régulière. Vous savez, les gros monstres de fer comme Oracle et les SQL Server, ou pour les plus ouverts d'esprit, MySQL et les Postgres. Alors permettez-moi de commencer par mettre les choses au clair :

Si vos besoins sont satisfaits par les bases de données relationnelles actuelles, vous seriez fou d’utiliser une blockchain.

Pourquoi? Parce que des produits comme Oracle et MySQL ont derrière eux des décennies de développement. Ils ont été déployés sur des millions de serveurs exécutant des milliards de requêtes. Ils contiennent certains des codes les plus minutieusement testés, débogués et optimisés de la planète, traitant des milliers de transactions par seconde sans transpirer.

Et qu’en est-il des blockchains ? Bien, Nos produits a été l'un des premiers à être commercialisé et est disponible depuis exactement 5 mois, avec quelques milliers de téléchargements. En fait, c'est extrêmement stable, parce que nous l'avons construit à partir de Bitcoin Core, le logiciel qui alimente Bitcoin. Mais tout de même, toute cette catégorie de produits est encore dans ses couches.

Alors, est-ce que je dis que les blockchains sont inutiles ? Absolument pas. Mais avant de vous lancer dans ce brillant projet de blockchain, vous devez avoir une idée très claire de pourquoi vous utilisez une blockchain. Il y a un tas de conditions qui doivent être remplies. Et si ce n’est pas le cas, vous devriez retourner à la planche à dessin. Peut-être pourrez-vous mieux définir le projet. Ou peut-être que vous pouvez économiser beaucoup de temps et d’argent à tout le monde, car vous n’avez pas du tout besoin d’une blockchain.

1. La base de données

Voici la première règle. Les blockchains sont une technologie pour bases de données partagées. Vous devez donc commencer par savoir pourquoi vous utilisez une base de données, j’entends par là un référentiel structuré d’informations. Cela peut être un traditionnel base de données relationnelle, qui contient un ou plusieurs tableaux de type feuille de calcul. Ou ça peut être le plus tendance NoSQL variété, qui fonctionne davantage comme un système de fichiers ou un dictionnaire. (Sur le plan théorique, les bases de données NoSQL ne sont de toute façon qu'un sous-ensemble des bases de données relationnelles.)

Un grand livre d’actifs financiers peut naturellement être exprimé sous la forme d’un tableau de base de données dans lequel chaque ligne représente un type d’actif appartenant à une entité particulière. Chaque ligne comporte trois colonnes contenant : (a) l'identifiant du propriétaire tel qu'un numéro de compte, (b) un identifiant pour le type d'actif tel que "USD" ou "AAPL", et (c) la quantité de cet actif détenu par ce propriétaire.

Les bases de données sont modifiées via des « transactions » qui représentent un ensemble de modifications de la base de données qui doivent être acceptées ou rejetées dans leur ensemble. Par exemple, dans le cas d'un grand livre d'actifs, un paiement d'un utilisateur à un autre est représenté par une transaction qui déduit la quantité appropriée d'une ligne et l'ajoute à une autre.

2. Plusieurs écrivains

Celui-ci est facile. Les blockchains sont une technologie pour bases de données avec plusieurs rédacteurs. En d’autres termes, il doit y avoir plus d’une entité qui génère les transactions modifiant la base de données. Savez-vous qui sont ces écrivains ?

Dans la plupart des cas, les rédacteurs exécuteront également des « nœuds » qui détiennent une copie de la base de données et relayeront les transactions vers d'autres nœuds dans un peer-to-peer mode. Cependant, les transactions peuvent également être créées par des utilisateurs qui n'exécutent pas eux-mêmes un nœud. Prenons par exemple un système de paiement géré collectivement par un petit groupe de banques mais comptant des millions d’utilisateurs finaux sur des appareils mobiles, communiquant uniquement avec les systèmes de leur propre banque.

3. Absence de confiance

Et maintenant la troisième règle. Si plusieurs entités écrivent dans la base de données, il doit également y avoir un certain degré de méfiance entre ces entités. En d’autres termes, les blockchains sont une technologie permettant bases de données avec plusieurs rédacteurs non fiables.

On pourrait penser que la méfiance naît uniquement entre des organisations distinctes, telles que les banques négociant sur un marché ou les entreprises impliquées dans une chaîne d'approvisionnement. Mais ça peut aussi exister au sein d'une seule grande organisation, par exemple entre les départements ou les opérations dans différents pays.

Qu’est-ce que j’entends spécifiquement par méfiance ? Je veux dire qu’un utilisateur n’est pas disposé à laisser un autre modifier les entrées de base de données dont il « est propriétaire ». De même, lorsqu’il s’agit de lire le contenu de la base de données, un utilisateur n’acceptera pas comme évangile la « vérité » rapportée par un autre utilisateur, car chacun a des incitations économiques ou politiques différentes.

4. Désintermédiation

Le problème, tel que défini jusqu'à présent, consiste donc à activer une base de données avec plusieurs rédacteurs non fiables. Et il existe déjà une solution bien connue à ce problème : l'intermédiaire de confiance. C’est-à-dire quelqu’un en qui tous les écrivains ont confiance, même s’ils ne se font pas entièrement confiance. En effet, le monde regorge de bases de données de cette nature, comme le grand livre des comptes d’une banque. Votre banque contrôle la base de données et garantit que chaque transaction est valide et autorisée par le client dont elle déplace les fonds. Même si vous le demandez poliment, votre banque ne vous laissera jamais modifier directement sa base de données.

Les blockchains suppriment le besoin d'intermédiaires de confiance en permettant bases de données avec plusieurs rédacteurs non fiables à modifier directement. Aucun contrôleur d’accès central n’est requis pour vérifier les transactions et authentifier leur source. Au lieu de cela, la définition d'une transaction est élargie pour inclure une preuve d'autorisation et une preuve de validité. Les transactions peuvent donc être vérifié et traité indépendamment par chaque nœud qui conserve une copie de la base de données.

Mais la question que vous devez vous poser est la suivante : Vous avez envie ou besoin de cette désintermédiation ? Compte tenu de votre cas d'utilisation, y a-t-il quelque chose de mal à avoir une partie centrale qui gère une base de données faisant autorité et agit en tant que contrôleur des transactions ? Les bonnes raisons de préférer une base de données basée sur la blockchain à un intermédiaire de confiance peuvent inclure des coûts inférieurs, des transactions plus rapides, des transactions automatiques. réconciliation, une nouvelle réglementation ou une simple incapacité à trouver un intermédiaire adapté.

5. Interactions transactionnelles

Les blockchains ont donc du sens pour les bases de données partagées par plusieurs auteurs qui ne se font pas entièrement confiance et qui modifient directement cette base de données. Mais ce n’est toujours pas suffisant. Les blockchains brillent vraiment là où il y en a interaction entre les transactions créé par ces écrivains.

Qu’est-ce que j’entends par interaction ? Au sens le plus large, cela signifie que les transactions créées par différents auteurs dépendent souvent les unes des autres. Par exemple, disons qu'Alice envoie des fonds à Bob, puis que Bob en envoie à Charlie. Dans ce cas, la transaction de Bob dépend de celle d’Alice, et il n’y a aucun moyen de vérifier la transaction de Bob sans vérifier d’abord celle d’Alice. En raison de cette dépendance, les transactions vont naturellement ensemble dans un même base de données partagée unique.

En allant plus loin, une fonctionnalité intéressante des blockchains est que des transactions peuvent être créées. en collaboration avec plusieurs auteurs, sans qu’aucune des parties ne s’expose à un risque. C'est ce qui permet livraison contre paiement le règlement doit être effectué en toute sécurité sur une blockchain, sans nécessiter un intermédiaire de confiance.

De bons arguments peuvent également être avancés pour les situations dans lesquelles les transactions de différents émetteurs sont corrélées les unes aux autres, même si elles restent indépendantes. Un exemple pourrait être une base de données d’identité partagée dans laquelle plusieurs entités valident différents aspects de l’identité des consommateurs. Bien que chacune de ces certifications soit autonome, la blockchain constitue un moyen utile de tout rassembler de manière unifiée.

6. Fixez les règles

Ce n’est pas vraiment une condition, mais plutôt une conséquence inévitable des points précédents. Si nous avons une base de données modifiée directement par plusieurs rédacteurs et que ces rédacteurs ne se font pas entièrement confiance, alors la base de données doit contenir des règles intégrées. restreindre les transactions effectuées.

Ces règles sont fondamentalement différentes de celles contraintes qui apparaissent dans les bases de données traditionnelles, car elles concernent les légitimité des transformations plutôt que l'état de la base de données à un moment donné. Chaque transaction est vérifiée par rapport à ces règles par chaque nœud du réseau, et celles qui échouent sont rejetées et ne sont pas relayées.

Les registres d'actifs contiennent un exemple simple de ce type de règle, pour empêcher les transactions de créer des actifs à partir de rien. La règle stipule que la quantité totale de chaque actif dans le grand livre doit être la même avant et après chaque transaction.

7. Choisissez vos validateurs

Jusqu’à présent, nous avons décrit une base de données distribuée dans laquelle les transactions peuvent provenir de nombreux endroits, se propager entre les nœuds de manière peer-to-peer et sont vérifiées indépendamment par chaque nœud. Alors, où entre en jeu la « blockchain » ? Eh bien, le travail d’une blockchain est d’être le journal des transactions final faisant autorité, sur le contenu duquel tous les nœuds sont manifestement d'accord.

Pourquoi avons-nous besoin de ce journal ? Premièrement, il permet aux nœuds nouvellement ajoutés de calculer le contenu de la base de données à partir de zéro, sans avoir besoin de faire confiance à un autre nœud. Deuxièmement, il résout la possibilité que certains nœuds manquent certaines transactions, en raison d'un temps d'arrêt du système ou d'un problème de communication. Sans journal des transactions, la base de données d’un nœud divergerait de celle des autres, compromettant ainsi l’objectif d’une base de données partagée.

Troisièmement, il est possible que deux transactions soient en conflit, de sorte qu’une seule puisse être acceptée. Un exemple classique est un dépenser deux fois dans lequel le même actif est envoyé à deux destinataires différents. Dans une base de données peer-to-peer sans autorité centrale, les nœuds peuvent avoir des opinions différentes quant à la transaction à accepter, car il n'y a pas d'autorité centrale. pas de bonne réponse objective. En exigeant que les transactions soient « confirmées » dans une blockchain, nous nous assurons que tous les nœuds convergent vers la même décision.

Enfin, dans Ethereum-style blockchains, le précis commande des transactions joue un rôle crucial, car chaque transaction peut affecter ce qui se passe dans chacun des suivants. Dans ce cas, la blockchain sert à définir la chronologie faisant autorité, sans laquelle les transactions ne peuvent pas être traitées du tout.

Une blockchain est littéralement une chaîne de blocs, dans laquelle chaque bloc contient un ensemble de transactions confirmées en tant que groupe. Mais qui est responsable du choix des transactions entrant dans chaque bloc ? Dans le type de « blockchain privée » adaptée aux applications d’entreprise, la réponse est un groupe fermé de validateurs (« mineurs ») qui signent numériquement les blocs qu’ils créent. Cette liste blanche est combinée à une certaine forme de système de consensus distribué pour empêcher une minorité de validateurs de prendre le contrôle de la chaîne. Par exemple, MultiChain utilise un schéma appelé diversité minière, dans lequel les mineurs autorisés travaillent dans un tournoi à la ronde mode, avec un certain degré d’indulgence pour autoriser les nœuds qui ne fonctionnent pas.

Quel que soit le système de consensus utilisé, les nœuds de validation ont beaucoup moins de pouvoir que le propriétaire d'une base de données centralisée traditionnelle. Les validateurs ne peuvent pas simuler des transactions ou modifier la base de données en violation de ses règles. Dans un grand livre d’actifs, cela signifie qu’ils ne peuvent pas dépenser l’argent des autres, ni modifier la quantité totale d’actifs représentés. Néanmoins, les validateurs peuvent encore influencer indûment le contenu d’une base de données de deux manières :

  • Censure des transactions. Si un nombre suffisant de validateurs s’entendent de manière malveillante, ils peuvent empêcher la confirmation d’une transaction particulière dans la blockchain, la laissant ainsi définitivement dans les limbes.
  • Résolution biaisée des conflits. Si deux transactions entrent en conflit, le validateur qui crée le bloc suivant décide quelle transaction est confirmée sur la blockchain, provoquant le rejet de l'autre. Le choix équitable serait la transaction vue en premier, mais les validateurs peuvent choisir en fonction d'autres facteurs sans le révéler.

En raison de ces problèmes, lors du déploiement d'une base de données basée sur la blockchain, vous devez avoir une idée claire de qui sont vos validateurs et pourquoi vous leur faites confiance, collectivement, voire seuls. Selon le cas d'utilisation, les validateurs peuvent être choisis comme : (a) un ou plusieurs nœuds contrôlés par une seule organisation, (b) un groupe central d'organisations qui maintiennent la chaîne, ou (c) chaque nœud du réseau.

8. Sauvegardez vos actifs

Si vous êtes arrivé jusqu’ici, vous avez peut-être remarqué que j’ai tendance à appeler les blockchains des bases de données partagées, plutôt que les « grands livres partagés » plus courants. Pourquoi? Parce qu’en tant que technologie, les blockchains peuvent être appliquées à des problèmes bien au-delà du suivi de la propriété des actifs. Toute base de données comportant plusieurs rédacteurs non fiables peut être implémentée sur une blockchain, sans nécessiter un intermédiaire central. Les exemples incluent les calendriers partagés, la collaboration de style wiki et les forums de discussion.

Cela dit, pour l’instant, il semble que les blockchains intéressent principalement ceux qui suivent les mouvements et les échanges d’actifs financiers. Je peux penser à deux raisons à cela : (a) le secteur financier réagit à la menace (rétrospectivement, minuscule) des crypto-monnaies comme le bitcoin, et (b) un registre d'actifs est l'exemple le plus simple et le plus naturel d'une base de données partagée avec transactions interdépendantes créées par plusieurs entités non fiables.

Si vous souhaitez utiliser une blockchain comme registre d’actifs, vous devez répondre à une question cruciale supplémentaire : quelle est la nature des actifs déplacés ? Je n’entends pas seulement par là les espèces, les obligations ou les connaissements, même si cela est bien sûr également important. La question est plutôt : Qui se cache derrière les actifs représentés sur la blockchain ? Si la base de données indique que je possède 10 unités de quelque chose, qui me permettra de réclamer ces 10 unités dans le monde réel? Qui puis-je poursuivre si je ne parviens pas à convertir ce qui est écrit dans la blockchain en actifs physiques traditionnels ? (Regarde ça accord d'actif à titre d'exemple.)

Bien entendu, la réponse variera selon le cas d’utilisation. Pour les actifs monétaires, on peut imaginer que les banques dépositaires acceptent des espèces sous forme traditionnelle, puis créditent les comptes des déposants dans un grand livre distribué alimenté par la blockchain. Dans le domaine du financement du commerce, les lettres de crédit et les connaissements seraient respectivement garantis par la banque de l’importateur et la compagnie maritime. Et plus loin dans le futur, nous pouvons imaginer un moment où émission principale L'émission d'obligations d'entreprises s'effectue directement sur une blockchain par l'entreprise cherchant à lever des fonds.

Conclusion

Comme je l'ai mentionné en introduction, si votre projet ne répond pas chacune de ces conditions, vous ne devriez pas utiliser de blockchain. En l'absence de l'un des cinq premiers, vous devez envisager l'un des éléments suivants : (a) un stockage de fichiers régulier, (b) une base de données centralisée, (c) un système maître-esclave. réplication de base de données, ou (d) plusieurs bases de données auxquelles les utilisateurs peuvent inscrire.

Et si vous remplissez les cinq premiers, il reste encore du travail à faire. Vous devez être capable d'exprimer les règles de votre application en termes de transactions permises par une base de données. Vous devez savoir à qui vous pouvez faire confiance en tant que validateurs et comment vous définirez le consensus distribué. Et enfin, si vous envisagez de créer un grand livre partagé, vous devez savoir qui soutiendra les actifs que ce grand livre représente.

Vous avez toutes les réponses ? Félicitations, vous disposez d'un véritable cas d'utilisation de la blockchain. Et Nous aimerions recevoir de vos nouvelles.

Veuillez poster vos commentaires sur LinkedIn. Voir aussi ce suivi : Quatre cas d'utilisation authentiques de la blockchain.

Horodatage:

Plus de Multichain