L'histoire de Neo Blockchain. Selon son propre site web, Neo est un projet de blockchain "communautaire à but non lucratif". Ici, la technologie blockchain et les identités numériques doivent être utilisées pour numériser les actifs, automatiser la gestion des contrats intelligents et réaliser une "économie intelligente avec un réseau distribué."
L'objectif principal de Neo est de devenir un réseau distribué pour la "smart economy".
Le projet Neo a été financé par deux crowdsalescences. La première vente pyramidale a eu lieu en octobre 2015 et a duré 20 jours. Pendant ce temps, 17,5 millions de jetons NEO ont été vendus pour 550 000 dollars. Lors de la deuxième vente aux enchères, les 22,5 millions de jetons NEO restants ont été vendus pour 4,5 millions de dollars !
Neo Blockchain et Smart Economy
Selon le site web de Neo, ce sont ces trois composantes qui constituent une économie intelligente :
1. Neo Blockchain et actifs numériques
Un actif numérique est tout ce qui existe en format binaire (fichier informatique) et qui a le droit d'être utilisé. Il est essentiel qu'un "objet numérique" dispose de ce droit d'utilisation pour pouvoir être considéré comme un actif numérique. S'il est possible d'avoir des actifs numériques dans un environnement centralisé, c'est extrêmement risqué.
Avec l'avènement de la blockchain, la possession d'actifs numériques est devenue beaucoup plus sûre. La blockchain rend la numérisation des actifs dencentralisée, sécurisée, digne de confiance et élimine le besoin de tierces parties.
Il existe deux formes différentes d'actifs numériques qui peuvent être utilisés dans NEO :
Les actifs mondiaux sont reconnus par l'ensemble du système et peuvent être identifiés par tous les contrats intelligents et les clients.
Les éléments de contrat sont des actifs qui ne sont enregistrés que dans leurs contrats spécifiques et ne sont pas utilisés dans d'autres contrats. Par exemple, le jeton GNT (Golem) ne peut être utilisé que dans Golem, mais pas dans Bancor.
2. Neo Blockchain et l'identité numérique
Sur la Wikipedia anglaise, l'identité numérique est décrite (librement traduite) comme suit :
Pour que la numérisation des actifs fonctionne, il est important de disposer d'identités numériques fiables.
La plateforme NEO utilise la norme d'identité numérique X.509. Il s'agit du modèle le plus utilisé pour la délivrance de certificats numériques basés sur l'infrastructure à clé publique. Avec la norme X.509, le mode de sortie pour la certification point à point du Web of Trust est également pris en charge.
3. Contrats intelligents
Les contrats intelligents sont des contrats automatisés. Ils s'exécutent avec des instructions spécifiques lorsque certaines conditions sont réunies.
Vous pouvez en apprendre encore plus sur les contrats intelligents dans le guide ci-dessous.
Quelles sont donc les caractéristiques souhaitables de notre contrat intelligent ?
Tout ce qui fonctionne sur une blockchain doit être immuable, tout en ayant la possibilité de traverser plusieurs nœuds (nœuds du réseau) sans compromettre l'intégrité. Par conséquent, la fonctionnalité des contrats intelligents nécessite trois choses :
Propriété n° 1 : déterministe
Un programme est déterministe s'il donne à chaque fois la même sortie pour une entrée donnée. Si 3+1 = 4, alors 3+1 est TOUJOURS 4 (si la même base est présente). Ainsi, si un programme donne la même sortie pour le même ensemble d'entrées, dans différents ordinateurs, alors il est déterministe.
Cependant, il existe des moments variables où un programme ne peut pas agir de manière déterministe.
Propriété n° 2 : résiliable
En logique mathématique, nous avons une faille appelée le "problème de l'arrêt". En gros, cela signifie qu'il n'y a aucun moyen de savoir si un programme donné peut remplir sa fonction dans un délai donné. En 1936, Alan Turing a déduit du problème de la diagonale de Cantor qu'il n'y a aucun moyen de savoir si un programme donné peut terminer une tâche dans un temps donné.
Cependant, cela pose un problème pour les contrats intelligents. Les contrats, par définition, doivent pouvoir être résiliés dans un certain délai. Certaines mesures permettent de s'assurer que vous pouvez "supprimer" les contrats de l'extérieur, afin qu'ils ne se répètent pas dans une boucle sans fin, ce qui mettrait les ressources à rude épreuve.
Propriété n° 3 : isolé
Dans une blockchain, n'importe qui peut télécharger un contrat intelligent. Par conséquent, les contrats peuvent, sciemment ou non, contenir des virus et des erreurs. Si le contrat n'est pas isolé, il peut entraver l'ensemble du système. Il est donc important qu'un contrat reste isolé pour protéger l'ensemble de l'écosystème des effets négatifs.
Maintenant que nous avons examiné les différentes propriétés, il est important de savoir comment elles sont exécutées. En général, les contrats intelligents sont exécutés à l'aide de l'un des systèmes suivants.
Comparons maintenant les deux systèmes et voyons lequel offre un meilleur écosystème.
Pour simplifier, comparons Ethereum (machine virtuelle) à Fabric (Docker) :
Comme vous pouvez le constater, les machines virtuelles offrent un meilleur environnement déterministe, résiliable et isolé pour les contrats intelligents. Docker présente toutefois un avantage essentiel. Il offre une flexibilité dans le langage de programmation.
Dans une machine virtuelle (VM) comme Ethereum, vous devez apprendre un tout nouveau langage (Solidity) pour créer des contrats intelligents.
Les développeurs de Neo voulaient créer une machine virtuelle offrant tous les avantages d'une VM, plus la flexibilité du code d'un Docker.
Imaginez que vous puissiez créer un contrat intelligent avec Java Script ou C# !
La solution de Neo était le système Smart Contract 2.0, ce qui rend Neo extrêmement attrayant et demandé. Nous y reviendrons plus loin dans cet article.
Similitudes avec Ethereum
Dans cet article, nous allons souvent comparer Neo à Ethereum. Examinons les similitudes entre les deux.
Il existe sans aucun doute des similitudes entre Ethereum et Neo, mais ce qui rend Neo si intéressant, ce sont ses caractéristiques qui le distinguent d'Ethereum. Ces caractéristiques ont valu à NEO le surnom de "Ethereum Killer".
Les deux jetons : NEO vs GAS
L'écosystème Neo comporte deux jetons
Cours Neo sur Coinmarketcap
Il existe un total de 100 millions de jetons NEO. Un jeton NEO donne à son détenteur des droits administratifs et décisionnels au sein du réseau NEO. Ces droits comprennent la comptabilité, les modifications des paramètres du réseau NEO, et plus encore.
Le jeton NEO ne peut être divisé en décimales, de sorte que la plus petite unité est 1. Les 100 millions de jetons NEO ont été divisés en deux parties. La première partie, soit 50 millions de jetons, a été distribuée lors de l'ICO, tandis que la seconde partie (50 millions de NEO supplémentaires) a été bloquée pendant un an (jusqu'au 16 octobre 2017). Ils doivent être utilisés pour la croissance et le soutien à long terme des projets NEO, ainsi que pour le développement, l'exploitation et la maintenance à long terme de l'écosystème NEO.
Les plans pour ces 50 millions de jetons sont les suivants:
* 10 millions de jetons seront utilisés pour motiver les développeurs NEO et les membres du NEO Council.
* 10 autres millions de jetons seront utilisés pour motiver les développeurs dans l'écosystème NEO.
* 15 millions de jetons seront utilisés pour investir dans d'autres projets blockchain appartenant au NEO Council et utilisés uniquement pour les projets NEO.
* 15 millions sont épargnés pour les urgences. L'utilisation annuelle de NEO ne devrait pas dépasser 15 millions de jetons.
Cours de gaz sur CoinmarketcapToken
GASSi NEO est le jeton qui représente les droits de vote et de décision dans la communauté, alors GAS est ce qui exécute les smart contracts et effectue les tâches. Le GAZ, comme son nom l'indique, est le carburant du réseau. Le gaz est la monnaie qui est échangée au sein de l'écosystème. Le GAS alimentera économiquement divers projets au sein du réseau NEO. Comme pour NEO, la limite totale est de 100 millions de jetons GAS. Cependant, contrairement aux NEO, le GAS est divisible. La plus petite unité de GAS est 0,00000001.
Il existe une autre différence importante entre les deux. Les 100 millions de NEO ont déjà été créés dans le bloc genisis (bloc de création), c'est-à-dire dans le premier bloc de la blockchain, du réseau NEO. Les 100 millions de GAS n'ont pas encore été générés dans le processus. Ils seront générés et envoyés à l'adresse des jetons NEO en fonction des 100 millions de NEO via un algorithme de décroissance dans environ 22 ans. Lorsque le NEO est transmis à une nouvelle adresse, le GAS généré est crédité à la nouvelle adresse.
2 millions de blocs sont générés chaque année avec un temps d'arrêt d'environ 15-20 secondes entre les blocs successifs. La production initiale de GAS sera de 8 GAS par bloc et sera réduite de 1 GAS par an (ou de 1 GAS par 2 millions de blocs) jusqu'à ce que la production ne soit plus que de 1 GAS par bloc. Au 44 millionième bloc, le total des GAS produits atteindra 100 millions, après quoi il n'y aura plus de production de GAS.16 er jetons GAS seront produits au cours de la première année.
52 % seront produits au cours des quatre premières années. 80 er jetons GAS seront produits au cours des 12 premières années.
Les jetons GAS seront libérés proportionnellement, selon le ratio de détention des NEO aux adresses appropriées. Les détenteurs de NEO peuvent demander ces jetons GAS à tout moment.
Afin de créer une meilleure expérience pour les utilisateurs, le réseau NEO organisera un vote et fixera un seuil pour exempter GAS de certaines transactions de transfert et opérations de contrats intelligents. Si un grand nombre de transactions de spam se produit, les utilisateurs avec NeoID peuvent avoir leurs transactions et contrats intelligents prioritaires sur ceux des autres. Cependant, si vous n'avez pas de NeoID, les transactions peuvent être priorisées en payant plus de GAS.
DBFT Mécanisme de consensus
L'un des plus grands défis pour la plupart des systèmes distribués est de créer un consensus. Ce problème est généralement appelé le "problème du général byzantin" (erreur byzantine).
Quel est le problème du général byzantin ?
Imaginez qu'un groupe de généraux byzantins veuille attaquer une ville. Ils sont maintenant confrontés à deux problèmes très différents : les généraux et leurs armées sont très éloignés les uns des autres, de sorte qu'une autorité centralisée est impossible, ce qui rend une attaque coordonnée très difficile ; la ville a une énorme armée et la seule façon de gagner est que toutes les armées attaquent en même temps.
Pour assurer une coordination réussie, les armées situées à gauche du château envoient un messager aux armées situées à droite avec le message "ATTAQUE LE MERCREDI".
Supposons que les armées de droite ne soient pas encore préparées à l'attaque et disent "NON. ATTAQUE DU VENDREDI ". Ils renvoient le messager à travers la ville vers les armées de gauche. Ici, nous sommes confrontés à un problème. Beaucoup de choses peuvent arriver au messager sur le chemin du côté gauche. Il pouvait être capturé, soudoyé, tué et remplacé par un autre messager de la ville. Ainsi, les armées de gauche recevraient des informations manipulées, ce qui pourrait conduire à une attaque non coordonnée et à une défaite.La blockchain est également confrontée au même problème. La blockchain est un énorme réseau.
Comment pouvez-vous lui faire confiance ?
Si vous envoyez à quelqu'un 4 ethers de son portefeuille, comment pouvez-vous être sûr que personne sur le réseau ne va trafiquer la transaction et transformer 4 ethers en 40 ethers ? Satoshi Nakamoto, l'inventeur du Bitcoin, a contourné le problème du général byzantin en inventant le protocole de "preuve de travail". Voici comment cela fonctionne : l'armée de gauche veut envoyer à l'armée de droite un message disant "ATTAQUE LE MOIS". Pour ce faire, elle doit suivre certaines étapes : d'abord, elle ajoute un "nonce" au texte original. Le nonce peut être une valeur hexadécimale quelconque, puis le texte ajouté sera haché avec un nonce. Supposons que les armées aient décidé de n'envoyer que des messages qui, une fois hachés, donnent un résultat commençant par 5 zéros. Si les conditions de hachage sont remplies, elles enverront le messager avec le hachage du message. Si ce n'est pas le cas, ils modifieront aléatoirement la valeur du nonce jusqu'à ce qu'ils obtiennent le résultat souhaité.
Cette action est extrêmement fastidieuse et longue et nécessite une grande puissance de calcul.Si le messager est intercepté par la ville et que le message est manipulé, la valeur de hachage sera modifiée de façon radicale en fonction des propriétés de la fonction de hachage. Lorsque les généraux de droite se rendent compte que le message haché ne commence pas par la quantité requise de zéros, ils savent que le message a été falsifié.C'est le protocole de preuve de travail utilisé par Bitcoin et Ethereum. Le problème est que le processus de preuve de travail est extrêmement coûteux et inefficace. Il existe, bien sûr, d'autres mécanismes de consensus. Ethereum prévoit de passer à la Proof of Stake en mettant en œuvre Casper.
Neo a décidé d'utiliser un système intéressant de mécanismes de consensus. Ils pensent que cela les aidera à mieux faire évoluer la blockchain. Ce mécanisme est appelé tolérance aux pannes byzantine déléguée ou dBFT en abrégé. Voyons comment celle-ci fonctionne.
Qu'est-ce que dBFT ?
Imaginez qu'il existe un pays "crypto geeks", ce pays a de nombreux habitants. Chacun de ces habitants élit un délégué pour le représenter. Le travail de ces délégués est de faire passer des lois et de rendre les résidents heureux. Si les délégués ne font pas bien leur travail, la prochaine fois, les citoyens pourront voter pour un autre délégué.
Comment les délégués votent-ils les lois ?
Un des délégués est choisi au hasard pour être l'orateur.L'orateur prend en compte toutes les demandes des citoyens et crée ensuite une loi. Ensuite, le "facteur chance" de ces lois est calculé pour voir s'il est suffisant pour satisfaire les besoins des citoyens. Ils donnent ensuite le résultat aux délégués, qui vérifient individuellement les calculs de l'orateur. Si le numéro de l'orateur correspond au numéro du délégué, ils donnent leur approbation, sinon, il y a rejet. 66 es délégués doivent donner leur approbation pour qu'un projet de loi soit adopté. Si la majorité est contre, un nouveau dirigeant est élu et le processus recommence.
Comment cela fonctionne-t-il dans la blockchain ?
Les citoyens sont ceux qui possèdent des jetons NEO ou des nœuds ordinaires.Les délégués sont les nœuds comptables. Pour être un nœud comptable, il faut répondre à un certain nombre de qualifications : Un équipement spécial, des connexions internet permanentes, et une certaine quantité de GAZ (1000 selon l'article de basiccrypto).Les "demandes des citoyens" sont essentiellement les différentes transactions effectuées par les détenteurs des tokens.La "loi" est le bloc actuel à ajouter à la blockchain.Le "facteur chance" est le hash du bloc actuel.Maintenant, il y a deux cas dans lesquels l'un des participants peut agir de manière malveillante :Cas n°1 : l'intervenant est malveillant.
Dans ce cas, l'orateur a envoyé un mauvais message (B) à deux délégués et un message correct à un délégué. Ce scénario peut être facilement évité grâce à la règle de la majorité. Les deux délégués reconnaîtront que leur hachage ne correspond pas à celui de l'orateur, tandis qu'un autre délégué reconnaîtra que le hachage correspond parfaitement. Toutefois, deux personnes sur trois rejetteront la proposition, ce qui ne permettra pas de parvenir à un consensus. Le haut-parleur sera retiré à l'avenir.
Le Speaker envoie le bon message à tous les délégués. Cependant, l'un des délégués décide d'agir avec malice et déclare que ses chiffres ne correspondent pas à ceux du Président. Cependant, comme deux des trois délégués n'agissent pas par malveillance, ils adopteront la "loi" du président de l'assemblée après avoir obtenu un consensus de 66.
Comme vous pouvez le constater, dBFT fournit une forme très intéressante de mécanisme de consensus.
NeoContract : le contrat intelligent 2.0
Comme mentionné précédemment, l'objectif de Neo était de combiner tous les avantages d'une machine virtuelle avec la flexibilité des langages de programmation. Voyons s'ils ont réussi à le faire.
Le système de contrats intelligents de Neos se compose de deux parties :
1. NeoVm
Selon le livre blanc de Neo, la NeoVM ou Neo Virtual Machine est une machine virtuelle légère à usage général. L'architecture est très similaire à celle de la JVM et du runtime .NET. Il est comparable à une unité centrale virtuelle, qui lit et exécute les instructions de manière séquentielle dans le contrat. Il effectue le contrôle du processus sur la base de la fonctionnalité des opérations d'instruction, des opérations logiques, etc. Il est polyvalent et sa vitesse de démarrage est bonne, ce qui fait de NEO un excellent environnement pour les contrats intelligents.
2. InteropService
Le service interop augmente l'utilité des contrats intelligents. Il permet aux contrats d'accéder aux données en dehors de la NeoVM sans affecter la stabilité et l'efficacité globale du système.
Actuellement, le service interopérable fournit quelques API pour accéder aux données de la chaîne des contrats intelligents.
Il permet également de stocker les contrats intelligents.
Fonctions futures de Neo
NeoX : permet l'interopérabilité inter-chaînes.
NeoFS : C'est un protocole de stockage de fichiers qui utilise la technologie des tables de hachage distribuées. Il enregistre le fichier en utilisant le hachage du contenu au lieu du chemin du fichier. Les fichiers volumineux sont divisés en blocs de données de taille fixe, puis distribués et stockés dans différents nœuds. (Pour faire simple, un nœud est un serveur qui a téléchargé la totalité de la blockchain d'une crypto-monnaie et qui est en ligne en permanence pour la montrer).
NeoQS : NeoQS (Quantum Safe) est un mécanisme cryptographique basé sur un treillis. L'informatique quantique représente une réelle menace pour les systèmes cryptographiques basés sur RSA et ECC. Cela signifie qu'Ethereum et Bitcoin, qui utilisent tous deux ECC, peuvent potentiellement être piratés par l'informatique quantique. Neo veut répondre à ce problème via NeoQS.
Où peut-on acheter Neo ?
Neo peut désormais être échangé sur à peu près toutes les bourses de crypto-monnaies. UpBit et Binance sont actuellement parmi les plus importants.
Que réserve l'avenir à NEO ?
Que réserve l'avenir au "tueur d'Ethereum" ?
Il est encore trop tôt pour savoir si NEO peut se montrer à la hauteur du nom de "Ethereum Killer". Le principal avantage par rapport à Ethereum réside dans les barrières à l'entrée relativement faibles, car les développeurs n'ont pas à apprendre un nouveau langage de programmation pour créer des contrats intelligents. La question de savoir dans quelle mesure les NEO trouveront des applications à l'avenir reste ouverte. Toutefois, Neo est soutenu par le gouvernement chinois et des acteurs bien connus comme WINGS et Alibaba.