«L'environnement de production est hors de votre contrôle»: Rian Lewis sur les tests de projets de blockchain



Il peut sembler qu'il est trop tard pour discuter des crypto-monnaies et des projets de blockchain: ils ont dit, tout ce qui était possible a été dit il y a quelques années, puis les attentes élevées n'ont pas été satisfaites, l'excitation s'est apaisée et le sujet est devenu hors de propos.

Mais en fait, en ce moment, vous pouvez parler d'elle sérieusement. À l'apogée du battage médiatique, il était difficile de briser les cris de «IMPOSER DANS NOTRE ICO CE N'EST PAS TARD PLUS TARD» à quelque chose de plus raisonnable, et dans le rapport signal / bruit, le deuxième composant a bondi. Mais maintenant, lorsque le battage médiatique s'est calmé et que les amateurs de fast-food sont passés à autre chose, il est devenu possible de parler normalement. Et lorsque la question de «dans quoi investir» a cessé de faire oublier tout le reste, il est devenu plus facile d'aborder les aspects techniques.

Ryan Lewis (connu, par exemple, pour le petit service CountMyCrypto ) voit l'écosystème de la blockchain à la fois du point de vue d'un passionné et du point de vue d'un spécialiste technique: elle s'intéresse à `` ce qui se passe '' et à tester des projets de blockchain. Et nous avons décidé de lui poser d'abord des questions sur la première, puis de passer à la seconde.


- En 2018, lorsque beaucoup se sont détournés des crypto-monnaies, vous restez leur passionné. Pensez-vous qu'à long terme, ils ont un bel avenir?

- C'est vrai. Connaissez-vous le cycle Gartner Hype ? Il y a un cycle typique: d'abord, des attentes injustifiées sont attribuées à la nouvelle technologie, puis elles en sont déçues, et après tout cela, elle se développe et devient vraiment demandée. À mon avis, nous sommes actuellement au point de déception le plus bas. Cela est en partie dû à la crise actuelle des crypto-monnaies. Comme vous le savez, la tendance des prix est maintenant à la baisse. Néanmoins, il existe une opinion très répandue avec laquelle je conviens que c'est dans cette phase que des travaux importants ont lieu.

Aujourd'hui, il y a beaucoup moins de spéculation qu'en 2017 et au second semestre 2016. Les projets se développent lentement mais sûrement. Parallèlement à la baisse des prix, l'intérêt pour les ICO baisse, mais le nombre de nouvelles startups ne diminue pas: les entreprises passent simplement au financement privé. Des idées prometteuses manquent toujours.

À mon avis, il s'agit d'une tendance positive, car grâce à elle, des personnes aux intentions irréalistes ont été filtrées. Je pense que vous savez qu'une partie importante des technologies modernes dans ce domaine ne se développe pas bien, et de nombreuses startups qui ont levé de grosses sommes d'argent ont été basées sur des attentes extrêmement irréalistes. Maintenant, la période de consolidation est arrivée et, de mon point de vue, c'est pour le mieux. Le travail est en cours sur des projets très intéressants, ils n'en parlent pas tous les jours dans les actualités.

Concrètement, dans le cas d'Ethereum, une diminution du nombre de transactions me semble un signe sain. L'architecture de la blockchain Ethereum n'est pas conçue pour le nombre d'applications décentralisées qui ont commencé à émerger l'année dernière après la sortie de CryptoKitties. L'un des évangélistes de Parity IT a même demandé à moitié, en plaisantant, d'arrêter le déploiement de nouveaux DApp sous Ethereum. Beaucoup étaient indignés d'entendre cela, mais, en substance, il avait raison. Vous ne pouvez pas continuer à déployer de plus en plus d'applications décentralisées sur Ethereum sans penser à l'architecture de ces applications. Il est nécessaire d'essayer de réaliser un maximum d'actions en dehors de la chaîne, car la situation actuelle ne peut pas durer longtemps.

En général, un niveau d'activité assez élevé est désormais observé, mais du fait que toutes les nouvelles blockchains lancent leurs principaux réseaux, le nombre de transactions est réparti entre un grand nombre de blockchains. En outre, la popularité des blockchains sans tokenisation augmente - Hyperledger et Corda peuvent être mentionnés à titre d'exemples. Corda a été créé dans le consortium R3, il peut être utilisé comme une blockchain privée. Alors maintenant, il existe un certain nombre de chaînes de blocs qui ne sont pas publiques et à jetons, vous ne pouvez pas y voir les activités en cours. Eh bien, bien sûr, il existe des chaînes de blocs au sein de diverses organisations créées par diverses implémentations de Blockchain as a Service comme SAP ou celles proposées par Microsoft. Donc, je pense que le niveau d'activité est maintenant assez élevé, mais toute cette activité n'est pas visible par le public.

- Il y a quelques années, beaucoup ont apprécié la nouvelle que même la conférence Bitcoin avait cessé d'accepter les paiements en bitcoins en raison de l'augmentation des frais et du temps de traitement. Qu'en est-il maintenant des crypto-monnaies comme mode de paiement?

- À titre d'exemple, je peux citer la conférence Hackers Congress Paralelní Polis à Prague, où je serai en ce moment - ils acceptent les paiements uniquement en bitcoins et autres crypto-monnaies. J'ai déjà acheté un billet pour des bitcoins, et pendant que j'y serai, je vais aussi acheter toute la nourriture pour eux. Cependant, vous avez soulevé un problème très important: en raison de la hausse des prix du Bitcoin, pendant un certain temps, les gens ne l'ont pas utilisé pour des transactions, mais comme investissement. Tout le temps, on disait que c'était de l'or électronique, donc il était acheté pour le stockage, et non pour des transactions. En 2013, j'ai acheté pas mal de bière et de café pour des bitcoins - alors cela a coûté quelques livres ou quelques euros, et maintenant le même montant en bitcoins peut être vendu pour une somme d'argent assez décente.

En fait, beaucoup dépend d'une personne en particulier. Par exemple, j'ai une petite amie de Russie qui n'a pas de compte bancaire, depuis quatre ans elle n'utilise que de la crypto-monnaie pour des raisons éthiques. Il existe un petit nombre de ces personnes, dont un exemple prouve qu'il est possible de vivre en principe. Mais une partie importante de ces entreprises qui acceptaient les bitcoins ont maintenant cessé de le faire. Cela est en partie dû au fait que lors d'une vague d'intérêt pour les bitcoins dans un café ou un bar, ils pouvaient former un employé à l'utilisation de l'application, puis cet employé est parti, et le caissier suivant ne savait pas comment travailler avec l'application. Dommage que cela se soit passé comme ça, car ces compétences sont très simples. Dans une large mesure, tout est lié à la préservation des connaissances existantes. Beaucoup est fait actuellement pour intégrer la crypto-monnaie et la monnaie fiduciaire, simplifiant le paiement.

En général, nous sommes maintenant dans une sorte de phase intermédiaire. Au début, il y avait beaucoup d'enthousiasme car les gens s'attendaient à tout payer uniquement avec de la crypto-monnaie. Cet enthousiasme s'est alors épuisé et l'instabilité des cours en a repoussé beaucoup. Cependant, je pense que le moment n'est pas loin où les gens utiliseront de nombreuses crypto-monnaies différentes. Il convient également de rappeler les tentatives de diverses entreprises d'introduire une certaine censure - il est connu, par exemple, que PayPal ferme les comptes des personnes pour des raisons politiques. Grâce à cela, la prise de conscience du besoin d'argent sans censure gagne désormais du terrain.

- Il y a trois ans, ils aimaient répéter «les possibilités de la blockchain ne se limitent pas au bitcoin, il a beaucoup d'autres applications possibles», et ils ont essayé de l'utiliser dans divers domaines. Et qu'est-ce que la vie a montré maintenant, était-ce utile dans la pratique ailleurs?

- Oui. L'un des projets récents les plus célèbres a été créé par Samsung pour le transport de marchandises. Vous savez peut-être que chaque cargo en provenance de Chine vers l'Europe génère environ deux kilogrammes de documents. Cela prend une énorme quantité de ressources, car il ne s'agit pas seulement de papier, mais aussi de centaines de personnes qui signent, tamponnent, remplissent ces documents, etc. Tout cela est nécessaire car les gens ne se font pas confiance: l'entreprise qui réceptionne la marchandise veut s'assurer qu'elle n'est pas fausse; les autorités veulent s'assurer que l'entreprise n'importe rien d'illégal; les autorités de différents pays ne se font pas confiance. Grâce à cela, l'idée est apparue d'utiliser la blockchain pour résoudre ce problème de manque de confiance, notamment en ce qui concerne le transport de marchandises. Et récemment, un consortium dirigé par Samsung a effectué la première expédition d'Asie vers l'Europe, enregistrée via la blockchain.

Ainsi, il existe maintenant des projets réussis basés sur la blockchain, cependant, la plupart d'entre eux sont encore au stade expérimental. Certes, certaines entreprises augmentent lentement leur activité - par exemple, Power Ledger, elle est engagée dans la distribution d'électricité et enregistre de petites transactions en utilisant la blockchain. Plus récemment, ils ont étendu leur champ d'activité à trois villes d'Australie et semblent proposer leurs services même en dehors de l'Australie. Certaines banques utilisent des chaînes de blocs pour conclure des transactions.

Lorsque nous parlons de blockchains en dehors de Bitcoin, vous devez être prudent. Il y a quelques années, l'ambiance était populaire: nous avions besoin d'une blockchain sans bitcoin, mais je pense que les gens ont maintenant réalisé que les blockchains publiques avaient besoin de motivation avec des jetons. Mais dans les blockchains privées ou les blockchains de consortiums, il y a vraiment de nombreuses activités différentes qui ne sont pas liées au bitcoin.

- Pouvez-vous donner un exemple négatif, quand il semblait que «la blockchain est très utile ici», mais la vie a montré que ce n'est pas le cas?

- Il est difficile de répondre objectivement. Je pense que vous ne trouverez pas un tel cas pour que quelqu'un déclare publiquement: "la blockchain ne fonctionne pas ici." Mais il y avait des situations où les entreprises devaient faire un virage à 180 degrés.

A Berlin, il existe une startup intéressante appelée SatoshiPay, ils sont engagés dans des micropaiements dans l'édition. Leur intention était de permettre aux écrivains de monétiser leur contenu: pour une somme modique en bitcoins, une petite partie de la page est ouverte au lecteur, puis la suivante et ainsi de suite. Au début, la société a rapidement gagné en renommée et a été en mesure de lever des fonds, mais les frais pour les transactions en Bitcoin sont devenus trop élevés, et tous leurs plans ont été brûlés à cause de cela. L'affaire ne s'est pas soldée par un échec complet, mais ils ont dû passer de Bitcoin à Stellar. Un autre exemple que je peux citer concerne les marchés de prédiction. Nous parlons de certains sites de paris qui étaient à l'origine basés sur Ethereum et qui ont ensuite dû l'abandonner. Dans les deux exemples décrits, l'idée d'utiliser la blockchain était tout à fait raisonnable, juste le mauvais choix concret a été fait.

Il existe d'autres exemples de virages serrés. Je ne peux pas nommer de noms spécifiques, mais il y avait des rumeurs sur les startups qui utilisaient la blockchain pour créer des dossiers médicaux. Au début, cela semblait une direction prometteuse, mais ensuite des questions se sont posées concernant le côté juridique de la question: est-il permis d'avoir une structure de données immuable pour stocker les informations, qui peut être nécessaire de changer en cas de modifications de la législation ou pour des raisons éthiques, c'est-à-dire si une personne obtient le droit de ne pas l'inclure informations dans votre dossier médical.

Je pense qu'il y a eu de nombreuses situations où les entreprises ont essayé d'utiliser la blockchain simplement parce que c'était à la mode, et non pas parce qu'elles avaient un problème spécifique de manque de confiance, qui pouvait être résolu en utilisant la blockchain. Je pense que ce type de projet connaît actuellement des difficultés. Mais, à ma connaissance, ces difficultés sont généralement résolues en passant d'une blockchain à une autre, ou, dans un souci de gain de temps, en passant d'une blockchain publique pour l'ensemble du projet à des blockchains privées avec preuve d'autorité.

- Passons à des problèmes plus techniques. Vous avez un article sur dix idées fausses courantes sur la blockchain / crypto-monnaies. Il s'adresse au grand public et la plupart de nos lecteurs savent déjà ce qui y est décrit, mais ne savent peut-être pas autre chose. Y a-t-il des idées fausses sur la blockchain qui sont courantes parmi le public informatique?

- Je n'utiliserais pas le mot «erreur», car toute personne engagée dans la technologie et au moins un peu familiarisée avec la blockchain aura une très bonne idée sur les bases de cette technologie. Je pense qu'il est plus correct de parler non pas de se débarrasser des erreurs, mais de nouvelles connaissances, d'une formation supplémentaire dans le développement et le test des blockchains publiques (les blockchains privées sont beaucoup plus proches de ce que font habituellement les programmeurs).

Je pense que le plus difficile est de s'habituer au fait que l'environnement de production est complètement hors du contrôle du développeur. Il n'est pas facile de prédire quelles seront les performances et de simuler les conditions nécessaires. Pour moi, c'était la principale difficulté lorsque j'ai écrit une candidature pour Ethereum avec mes amis il y a deux ans.

Tout s'est bien passé avec nous, il y avait un pipeline bien établi, l'application lancée avec succès dans la blockchain virtuelle, qui fait partie de l'ensemble d'outils fournis par Ethereum. Nous avons déployé l'application sur Testnet et là, cela a parfaitement fonctionné. Mais lorsqu'il est déployé sur un réseau de production, il devient beaucoup plus difficile de prédire comment l'application se comportera avec l'utilisateur. Par exemple, des retards nombreux et imprévisibles sont possibles. De nombreux problèmes graves ne se produisent pas dans un environnement de test, mais surviennent uniquement en production.

Supposons que vous ayez un contrat dans Ethereum, et que ce contrat, entre autres, crée dynamiquement des portefeuilles pour les utilisateurs. Mais un autre contrat de la même application peut être lancé avant la création des portefeuilles, et cela se produira car le bloc correspondant sera miné en premier. Ainsi, de nombreux pièges exploités seront devant vous et souvent introuvables avant la production. Par conséquent, il ne vous suffit pas de tester l'application, vous devez prévoir à l'avance comment elle se comportera en production.

Par exemple, un bug très grave a été récemment découvert dans un portefeuille avec le portefeuille parité multi-signature. Le portefeuille, en fait, a été désactivé en raison du fait qu'un étranger a eu accès à une fonction qui était censée être privée. Ainsi, il a réussi à désactiver l'intégralité du contrat. Cette situation n'aurait pas dû se produire, mais depuis qu'elle s'est produite, rien ne peut être fait, car ce code est déjà apparu sur des milliers de machines et il est impossible de le restaurer. Par conséquent, lorsque vous réfléchissez à l'architecture et aux tests, vous devez penser aux pires scénarios possibles et à la façon d'atténuer les dommages possibles dans une situation où vous ne pouvez pas vous souvenir du code.

Habituellement, lorsque vous écrivez un site en dernier recours, vous pouvez toujours éteindre votre serveur. Bien sûr, cela vous coûtera de l'argent, mais il y a une opportunité. Et dans le cas de la blockchain publique, vous ne pouvez même pas le faire: une fois que le code déployé n'est plus possible de revenir.

- Lorsque vous pensez à tester des projets de crypto-monnaie, la première chose dont vous vous souvenez est des histoires avec des vols gigantesques. Dois-je bien comprendre que lors des tests, la considération la plus importante est la sécurité?

- C'est vrai. Selon l'effet Metcalfe, le réseau avec le plus d'utilisateurs sera le plus performant et le plus populaire à l'avenir. En raison de cet effet, de toutes les chaînes de blocs publiques, le plus de développement est effectué sur Ethereum. De nombreux outils et bibliothèques ont été créés pour elle. Par exemple, il existe une startup OpenZeppelin qui donne accès à diverses bibliothèques avec les fonctionnalités les plus élémentaires - par exemple, elles ont une bibliothèque SafeMath qui empêche les débordements. Ainsi, ils s'occupent de certaines choses très simples - par exemple, ils s'assurent que vous incluez des bibliothèques open source pour la sécurité.

Être responsable de l'argent d'autrui est toujours difficile, mais non seulement le vol est une menace. Dans le cas des hacks les plus graves, ce n'était souvent pas un vol, mais un blocage de l'accès à l'argent: ce fut par exemple le cas du bug dans le portefeuille Parity, dont j'ai déjà parlé. L'argent ne disparaît pas, mais il est impossible pour le propriétaire de le recevoir. Du point de vue de la sécurité, il s'agit d'une menace complètement nouvelle qui doit également être prise en compte. Vous ne devez pas vous demander si quelqu'un peut voler cet argent, mais si le système est sûr, si quelqu'un peut annuler le contrat.

Lorsque je parle de tester la sécurité des chaînes de blocs, j'essaie toujours de transmettre l'idée que les vulnérabilités peuvent exister non seulement dans les contrats intelligents. Leur raison peut également être que les développeurs se concentrent entièrement sur le contrat intelligent, et à cause de cela, ils perdent de vue l'application dans son ensemble. Bien sûr, cela joue un rôle beaucoup moins important si vous fournissez simplement une base de données ou une API. Cependant, de nombreux développeurs développent des applications web ou des applications mobiles basées sur des blockchains, et des vulnérabilités très importantes peuvent survenir ici du fait que les développeurs ne pensent pas correctement. Par exemple, l'année dernière, l'échange cryptographique italien BitGrail a piraté la monnaie nano. Il n'y a eu aucun problème d'interaction avec des portefeuilles de différentes devises sur le backend. Mais je ne peux toujours pas croire que personne n'ait remarqué l'erreur commise par le développeur frontend. Lorsqu'un utilisateur a retiré de l'argent de son portefeuille, un chèque avec un solde de compte a été créé du côté client, et pour cette raison, tout attaquant possédant les connaissances les plus élémentaires des outils Chrome pouvait retirer de l'argent, en changeant chaque fois son solde à un montant plus élevé. Beaucoup en ont profité et il y a eu une importante fuite de fonds.

Ainsi, essayant de rendre la blockchain aussi sécurisée que possible, les développeurs ignorent souvent la sécurité élémentaire, par exemple, du frontend. Et ce n'est pas la première vulnérabilité frontale dont les attaquants ont profité. Fait intéressant, les équipes de développement en question sont toutes assez expérimentées; , . , - . , - . . , .

— , «» ?

— , . , , . , .

, API, , . , user experience. , , , , . .

, , . , , , , .

, . . , , , . Bitcoin, , Bitcoin , Litecoin. , , Block Explorer. , .

: , Docker, Jenkins .

— , , -?

— . , , — . , — , . , — , , . , , , , , .

— , , : . ?

— , , . , computer science 10 , , , . , , , . - , . , , .

, , , — , , , - . . , , SQL NoSQL Redis. , 5-6 , .

— , , , « , ». , , - , ?

— , . , , , .

, , , . , . ; , . , .

, , , , - . , , . , , , , . , big data, , Hadooop. , . , . , , .

— , . , , : ( , )?

— , — . . , , , — , Lightning Network Bitcoin Litecoin, Plasma Raiden Ethereum. — . , Ethereum — , proof-of-work proof-of-stake. , , . , , , .

, , , , . — , , , , .

— , , . , , . , , , - ? ?

— , . . , , . , , . , , , .

— . !

. - : , , , . Heisenbug 2018 Moscow , 6-7 . , .

Source: https://habr.com/ru/post/fr428556/


All Articles