[Traduction] Les bases de Steem : Pourquoi Steem est une chaîne de blocs spécifique à une application

in #qc6 years ago

Bonjour tout le monde ! J'avais annoncé dans ma précédente traduction N'attendez pas pour construire votre application Steem que cette dernière préparé à la lecture d'un autre article du @steemitblog : Steem Basics: Why Steem is an Application-Specific Blockchain dont voici la traduction !

C'est un article particulièrement intéressant, car il explique de manière très simple certaines particularité architecturale de Steem et permet donc de mieux comprendre comment fonctionne cette chaîne de bloc qui est l'une des plus avancées au monde !

Bonne lecture !


Steem Basics Application-Specificity

Dans notre article N’attendez pas pour construire votre application Steem
, nous avons fait référence à l'idée que Steem est similaire dans sa conception à un mineur ASIC. Dans le post d'aujourd'hui, nous voulons explorer un peu plus loin ce que cela signifie et pourquoi il s'agissait d'une décision de conception critique qui est à la base du protocole. C'est cette spécificité applicative qui permet à Steem d'évoluer plus rapidement et de fournir plus d'utilité aux développeurs que les protocoles à usage général.

Qu'est-ce qu'un Mineur ASIC ?

Pour ceux qui ne sont pas au courant, un Mineur ASIC est une pièce de matériel informatique qui est entièrement conçu autour d'une seule fonction : l'extraction des cryptoc-monnaie de preuve du travail (PoW). Comprendre l'histoire des mineurs ASIC nous éclaire sur les avantages de la spécificité d'application.

Comme la plupart des lecteurs le savent probablement, les crypto-monnaies originales (et de nombreuses nouvelles) ont été sécurisées par un algorithme appelé "Proof-of-Work". Cet algorithme exigeait en effet que pour gagner un jeton numérique, vous deviez autoriser un protocole peer-to-peer pour que votre ordinateur effectue un travail qui devient progressivement plus difficile avec le temps. Bref, plus vous avez de puissance de calcul, plus vous gagnez de jetons.

CPU contre GPU

Au début, les gens gagnaient (ou "minaient") ces jetons en utilisant l'unité centrale de traitement (CPU) de leur ordinateur. Le CPU est comme le "cerveau" de votre ordinateur. Les processeurs sont conçus pour être flexibles - pour traiter l'information de toutes sortes de façons - il était donc facile de les utiliser pour exécuter ce tout nouveau logiciel. C'est l'avantage des plates-formes polyvalentes ; elles peuvent être adaptées pour résoudre un plus grand nombre de problèmes. Mais l'inconvénient, c'est qu'ils ne peuvent jamais être particulièrement doués pour une seule chose.

Les GPU (Graphics Processing Units), d'autre part, sont des unités de traitement qui ne sont pas flexibles du tout. Ils sont conçus pour ne traiter qu'un seul type d'information : l'information graphique. Au lieu d'avoir quelques gros cœurs qui peuvent faire toutes sortes de calculs, les GPU peuvent avoir plus d'un millier de petits cœurs qui font une chose vraiment bien. Il n'a pas fallu longtemps avant que les gens trouvent comment adapter ces noyaux pour résoudre les problèmes de preuve du travail (le hashe du Proof of Work). Une fois qu'ils l'ont fait, ces GPU pourraient surpasser les CPU par des ordres de grandeur, ce qui rendrait l'exploitation minière des CPU obsolète.

Voici à quoi ressemble une plate-forme polyvalente :

Source : ASIC Resistance is Nothing but a Blockchain Buzzword par StopAndDecrypt (en anglais seulement)

Voici à quoi ressemble une plate-forme spécifique à une application :

Source : ASIC Resistance is Nothing but a Blockchain Buzzword par StopAndDecrypt (en anglais seulement)

GPU contre ASIC

Dans le passage des CPU aux GPU, nous voyons un exemple de la façon dont un matériel plus spécialisé peut surpasser de façon spectaculaire le matériel d'usage général. Cependant, l'innovation dans l'espace ne s'est pas arrêtée là. Au lieu de cela, il a continué jusqu'à sa conclusion naturelle : le mineur ASIC. Nous disons "conclusion naturelle" parce qu'ASIC signifie en fait : du matériel conçu à partir de zéro pour résoudre un problème spécifique. La seule chose qui peut battre un mineur ASIC est un meilleur ASIC.

La puissance de l'équipement spécialisé

Bien que les GPU aient permis aux mineurs d'avoir accès à beaucoup plus de noyaux qui pouvaient être utilisés pour le minage, ces noyaux n'ont pas été conçus dès le départ pour le minage. C'est ce qui a changé avec la sortie des ASICs qui ont rendu le minage par GPU aussi inefficace que le minage par CPU. Une fois qu'un équipement spécialisé existe, il devient presque impossible pour une solution plus générale de le battre pour de nombreuses raisons, mais essentiellement parce que toutes les innovations qui sont intégrées dans cette solution générale pour améliorer les performances peuvent simplement être intégrées dans la solution spécifique de l'application, la rendant encore meilleure.

Techniquement, il existe de nombreux ASIC dans le monde. Par exemple, les puces qui se trouvent à l'intérieur des enregistreurs vocaux numériques. Tant qu'une machine n'effectue qu'un seul type de calcul et que la valeur de ce calcul est suffisamment élevée, le matériel conçu et construit à partir de zéro pour résoudre ce problème va surpasser le matériel qui n'est pas conçu pour.

Inévitabilité des ASIC

Les ASIC sont si puissants qu'ils ont conduit à un problème dans l'espace de la chaîne de blocs qui est que les chaînes de blocs de preuve du travail sont devenues très centralisées entre les mains de ceux qui ont le plus de mineurs ASIC. Non seulement cela, mais selon toute vraisemblance, il s'agit d'un problème qui n'a pas de solution (à part l'abandon de la preuve du travail comme nous avons choisi de le faire avec Steem). Bien qu'il y ait ceux qui prétendent avoir des algorithmes "résistants aux ASIC", la vérité est que quelque chose ne peut être résistant aux ASIC que dans la mesure où il est sans valeurs. Si le fait d'avoir un ordinateur pour résoudre un type spécifique de problème est suffisamment précieux, il devient inévitable que quelqu'un développe un dispositif conçu spécifiquement pour résoudre ce problème et que ce dispositif surclasse tout ce qui est plus "universel" (c.-à-d. non conçu pour résoudre le problème).

Bien sûr, que ce soit une bonne ou une mauvaise chose dépend entièrement de votre position. Pour les chaînes de blocs à preuves de travail (blockchain Proof of Work), il s'agit d'une bataille qu'ils se sont engagés à livrer pour l'éternité. Mais pour les fabricants de mineurs ASIC, qui n'étaient que de petites entreprises au départ et qui n'avaient pas les économies à l’échelle de ce que pouvaient réaliser les grands fabricants de GPU comme Nvidia, la spécificité des applications était comme le vent dans leur voilure, les propulsant au-delà de leur concurrence plus importante et mieux financée. C'est exactement la même dynamique que nous avons cherché à exploiter lors de la conception de Steem, et que nous cherchons maintenant à maximiser à mesure que le développement se poursuit.

Coureurs et camions à ordures

Comme vous pouvez le constater, la spécificité de l'application est incroyablement puissante. Les meilleurs coureurs seront toujours meilleurs en course à pied que les meilleurs triathlètes. Les voitures de course feront toujours le tour d'un hippodrome mieux que les berlines. En effet, la spécificité de l'application n'est qu'une autre façon de dire "focalisé". Un produit (et l'équipe derrière) qui se concentre sur la résolution d'un problème particulier sera toujours plus performant qu'un produit qui se concentre sur la résolution d'un ensemble plus vaste de problèmes.

Résoudre le bon problème

Le véritable défi consiste à déterminer quel problème particulier doit être résolu. Le simple fait de résoudre un problème aléatoire ne constituera pas une base solide sur laquelle bâtir un écosystème entier. L'objectif devrait plutôt être de résoudre les problèmes spécifiques - et de créer les solutions spécifiques – ce qui apportera le plus de valeur à ceux qui les utilisent. Bien qu'il soit bon de théoriser ce que cela peut être, nous avons pris deux mesures pour nous assurer que les solutions que nous avons générées étaient étroitement alignées sur les besoins des véritables développeurs d'applications.

Tout d'abord, nous avons insisté pour construire quelque chose qui pourrait alimenter de vraies applications ici et maintenant. Deuxièmement, nous avons construit une de ces applications nous-mêmes (steemit.com). Notre théorie était que cette technologie pouvait alimenter les applications sociales de la prochaine génération, mais ce sont ces décisions qui nous ont permis de valider cette théorie et de nous assurer que le développement allait dans la bonne direction en nous exposant directement à tous les problèmes auxquels les développeurs seraient confrontés en s'appuyant sur Steem.

Les applications spécifiques de Steem

Le résultat de cette approche a été de construire Steem de façon à ce qu'il puisse stocker le contenu dans un système de gestion de contenu décentralisé et ensuite distribuer de façon autonome des jetons aux créateurs de ce contenu en se basant sur un vote pondéré en fonction des enjeux du public. Alors que le code qui permet cette fonctionnalité (la "tactique") est complexe, l'approche (la "stratégie") est aussi simple que cela. D'autre part, un protocole visant à activer cette capacité et toute autre capacité qu'un développeur peut imaginer sera nécessairement plus complexe à tous les niveaux, ce qui entraînera des inefficacités et des difficultés pour monter en échelle.

Comme Steem l'a démontré, lorsque vous choisissez les bonnes caractéristiques et que vous vous concentrez sur leur réalisation, le résultat peut être une croissance explosive. Les développeurs sont incroyablement débrouillards, donc si vous leur donnez une excellente solution à un problème spécifique, ils trouveront le moyen d'ajouter les fonctionnalités dont ils ont besoin à cette solution.

Steem offre aux développeurs un système de gestion de contenu décentralisé et un système de récompense à jeton décentralisé qui sont rapides, gratuits et capables de fonctionner à une échelle beaucoup plus grande que toute autre solution dans l'espace. Parce qu'il a résolu ces problèmes bien mieux que n'importe quel autre protocole de chaîne de blocs, il a fourni une tonne de bénéfices aux développeurs cherchant à créer des applications qui étaient particulièrement bien adaptées à ces solutions. Mais ce que ces développeurs ont également découvert, c'est que vous pouviez toujours obtenir une grande partie des fonctionnalités (sinon la totalité) des Smart Contracts sur Steem grâce aux opérations JSON personnalisées.

Solutions de deuxième couche

Il n'est pas surprenant que les développeurs aient pu trouver des moyens de "pirater" Steem pour résoudre d'autres problèmes que ceux visés par les fonctionnalités spécifiques de l'application et pour lesquelles il a été conçu. C'est ce qui se produit lorsque vous vous concentrez uniquement sur la résolution des problèmes les plus importants auxquels sont confrontés les développeurs et les entrepreneurs. Lorsque vous offrez une solution à ces problèmes - et seulement à ces problèmes - il devient plus facile d'évoluer, et d'évoluer avec les entreprises les plus performantes qui optimisent votre logiciel. Si vous pouvez le faire, ces entreprises et ces développeurs trouveront comment ajouter toute autre fonctionnalité dont ils ont besoin en utilisant des solutions en seconde couche. La clé est de faciliter ces solutions de deuxième couche d'une manière évolutive, là où le traitement par Steem des opérations Custom JSON entre en jeu.

C'est exactement ce que vous voulez : les structures de base de données les plus précieuses dans la couche de base où chacun peut les utiliser, maximisant ainsi l'effet réseau et l'interopérabilité, tandis que les structures moins universelles sont construites sur des couches secondaires. Cela rend l'écosystème encore plus sain en s'assurant que seule l'information critique est incluse dans la couche de base, préservant ainsi sa capacité de monter en échelle.

Malheureusement pour les plates-formes polyvalentes, elles ne profitent pas de cette dynamique. Au lieu de cela, les solutions spécifiques aux applications mises en œuvre au niveau de la base sont plus susceptibles de créer des problèmes que des avantages. Vitalik Buterin (le créateur d'Ethereum) a expliqué dans un article récent comment la décision d'Ethereum d'inclure des opérations spécifiques pour faciliter les opérations en courbe elliptique était déjà dépassée et Ethereum aurait besoin d'une fourchette [Un fork] pour rattraper son retard. Cela est dû au fait qu'Ethereum n'a pas été conceptualisé et exécuté dans le but de résoudre des problèmes clairement énoncés et limités. C'est pourquoi, quelle que soit la valeur d'une solution spécifique, son intégration au niveau de la base sera toujours en conflit avec la proposition de valeur fondamentale de ce protocole : fournir des solutions non spécifiques (c'est-à-dire générales).

Plus d'opportunités pour les développeurs

C'est le contraire avec Steem. Parce que le protocole a été construit à partir de la base pour résoudre des problèmes spécifiques et largement compris, il est beaucoup plus facile pour la communauté de parvenir à un consensus sur ce qui "appartient" à la couche de base, et ce qui ne lui appartient pas. Les bases de données de seconde couche qui émergent inévitablement d'un tel processus ne sont pas seulement "là où elles doivent être", elles présentent même des opportunités financières pour les développeurs et les entrepreneurs qui peuvent les identifier et les mettre en œuvre créant ainsi une valeur ajoutée pour la base de développeurs intégrée de Steem. UserAuthority est un exemple d'une telle base de données.

Ces bases de données peuvent même être une source de revenus supplémentaires pour les développeurs qui les construisent pour les utiliser dans leur application, pour découvrir ensuite que leur besoin n'est pas unique. En même temps, ces bases de données supplémentaires fournissent des informations précieuses sur ce qui devrait être ajouté à la couche de base en servant d'environnement plus sûr et dynamique pour l'expérimentation. Comme vous pouvez le constater, les solutions spécifiques aux applications sont si puissantes parce que, lorsqu'elles sont correctement exécutées, une solution découverte à n'importe quelle couche de la pile est renvoyée dans toutes les autres couches, ce qui entraîne des retours exponentiels.

Vaincre les "contrats intelligents"

Lorsque le concept des contrats intelligents a été proposé pour la première fois, l'argument principal était qu'ils permettraient aux développeurs de construire des applications décentralisées. Cela fait 3 ans qu'Ethereum a été lancé et pourtant Steem - un protocole qui n'a pas de "Smart Contracts" - a maintenant des applications beaucoup plus décentralisées que les gens ordinaires utilisent tous les jours. En fait, Steem est le seul protocole qui a des applications avec une utilisation réelle et nous pensons que cela est dû à sa conception spécifique à l'application. Bien que tout cela ait commencé par une théorie, au cours du développement de Steem (et du développement sur Steem), la puissance et le potentiel d'une chaîne de blocs spécifique à une application sont devenus encore plus apparents et nous ont permis de voir comment ce potentiel pouvait être multiplié par 10 grâce à l'ajout des Jetons Médiatiques Intelligents [Smart Media Tokens].

Ce qui rend un protocole spécifique à une application comme Steem parfaitement adapté aux SMT fera l'objet d'un prochain article dans cette série. Si vous souhaitez en savoir plus sur la chaîne de blocs Steem et sur la façon dont ses solutions spécifiques aux applications peuvent être exploitées pour améliorer n'importe quelle interface Web, rendez-vous sur https://developers.steem.io.

Équipe Steemit


Mes autres traductions :

EOS

Steem/SMT

Steem Basic Income

Dan Larimer

Sort:  

Super poste; très intéressant merci à toi.

@fr-stars supporte tous les projets de curation francophones. Nous avons soutenu ce post via notre partenariat avec @francosteemvotes.
Rendez-vous sur notre serveur Discord pour plus d'informations.

Félicitations @soushi888 pour votre beau travail!

Ce post a attiré l'attention de @ajanphoto et a été upvoté à 50% par @steemalsace et son trail de curation comportant actuellement 28 upvotes .
De plus votre post apparaîtra peut-être cette semaine dans notre article de sélection hebdomadaire des meilleurs post francophones.

Vous pouvez suivre @steemalsace pour en savoir plus sur le projet de soutien à la communauté fr et voir d'autres articles qualitatifs francophones ! Nous visons la clarté et la transparence.

Rejoignez le Discord SteemAlsace

Pour nous soutenir par vos votes : rejoignez notre Fanbase et notre Curation Tail sur Steemauto.com. C'est important pour soutenir nos membres, les steemians et Witness francophones ICI!

@ajanphoto

Merci encore pour cette traduction qui nous permet de mieux comprendre l'architecture de Steem !

Upvoté à 100% !