Lisk : un concurrent d’Ethereum ?

Lisk est une plate-forme de nouvelle génération qui permet le développement et la distribution d’applications décentralisées écrites en Javascript. Avec Lisk, les développeurs peuvent construire, publier, distribuer et monétiser leurs applications avec une cryptomonnaie interne. Le système ainsi construit utilise une custom blockchain, des smart contrats, le stockage dans le cloud et des noeuds de calcul, le tout à l’intérieur d’une seule solution d’industrielle.


David Teruzzi
Lisk est la première solution décentralisée d’application écrite entièrement en Node.js. Il travaille donc de manière asynchrone et permet de traiter sans retard (apparent) les taches, comme les transactions réseau. La base de données utilise SQLite pour permettre l’utilisation et l’exécution de query complexes. Lisk se base sur HTML5 et CSS3 pour le frontend.

L’utilisation de langages standars et bien connus fait que l’écosystème Lisk est disponible en l’état à milliers de développeurs sans compétences supplémentaires. N’importe quel développeur Web qui connait déjà Javascript et Node.js peut immédiatement le prendre en main pour construire des applications décentralisées dès le premier jour.

Le but principal de Lisk est de créer une système plug-and-play qui permettrait aux développeurs de tout faire: du design et conception, au développement, de la publication à la monétisation, le tout à l’intérieur d’une seule plate-forme. En utilisant l’écosystème Lisk, les développeurs peuvent déployer rapidement leurs Dapps Javascript vers le Lisk Hosting & Storage Nodes, être visibles dans le Lisk App Store et avoir un accès immédiat aux Lisk Compute Noeuds pour l’exécution du code. Le tout étant soutenu par l’intégrité et la sécurité qui viennent de la fonctionnalité de consensus des Lisk sidechains.

Toutes les taches de l’écosystème sont exécutées par les utilisateurs et les délégués de Lisk qui sont payés par un système de facturation automatique interne (ou par le réseau lui-même dans le cas des délégués). Le rémunération des noeuds se font en LISK, la cryptocurrency propre à Lisk, ou en bitcoin.

Les composants de l’écosystème Lisk sont :
- Hébergement décentralisé P2P de Dapps
- Stockage décentralisé P2P pour Dapps
- Calcul décentralisé
- Mécanisme de consensus Sidechain pour chaque Dapp
- Interfaces d’API de Lisk et pour Bitcoin
- Outils pour les développeurs : Lisk CLI / Lisk Dapp SDK

Le client Lisk

Le client full est la solution globale pour les utilisateurs qui veulent pouvoir tout faire, qu’ils soient délégués ou développeurs. Il est disponible pour Windows, Mac OS et Linux, bien que actuellement on peut être délégué soit seulement avec le client Linux.

Les clients légers peuvent se connecter au full clients pour avoir accès au réseau. Ils peuvent aussi les utiliser pour faire des appels d’API, si le full client l’autorise.

Les full clients téléchargent la totalité de la blockchain en peer-2-peer.

Les utilisateurs des Dapp peuvent utiliser le client léger pour avoir accès à leur dapps installé. L’API des Dapps et des peers sont disponibles pour les développeurs.

Le client léger Lisk

L’utilisateur standard utilisera surtout le client Lisk léger pour accéder à son account Lisk.

Le client léger est aujourd’hui disponible pour Windows et Mac OS. Il n’exige pas de processus d’installation, comme il se base sur des technologies Web modernes. Il n’agit pas comme un noeud de réseau, puisqu’il se connecte seulement à d’autres pairs qui sont en ligne via une connexion HTTP. Ceci apporte plusieurs avantages.

- L’utilisateur ne doit plus télécharger le blockchain, de qui signifie que l’application en elle-même reste très réduite en taille.
- Il n’envoie pas de clés secrètes sur le réseau: toutes les données sont signées localement sur le dispositif local.

Si vous voulez exécuter un noeud délégué, vous pouvez enregistrer un account de délégué avec le client léger mais pas l’exécuter . Pour ceci vous avez besoin du client full.

Lisk mobile client

Le client mobile permet à l’utilisateur d’avoir accès à son compte/account Lisk pendant qu’il se déplace. Il sera disponible tant pour iOS que pour Android dans les App Stores de Apple et Google.

Le client mobile permet de lancer toutes les Dapps Lisk. Dans l’avenir, Lisk espère pouvoir intégrer des dispositif d’identifications spécifiques comme l’empreinte digitale ou le balayage (scan) rétinien.

Le consensus

Lisk est basé sur le mécanisme de consensus DPOS (Delegated Proof-of-Stake Consensus), une méthode de consensus créée à l’origine par l’équipe BitShares.

DPoS demande à des noeuds délégués de créer des blocs. Les délégués sont des accounts de confiance qui sont élus pour être des Délégués Actifs. Les 101 comptes délégués qui obtiennent la plupart des votes créent les blocs.

D’autres délégués sont derrière comme des « Standby Delagates » (délégués de réserve) et peuvent éventuellement intégrer la liste des 101 à tout moment en recevant des votes des autres peers Lisk. Tous les utilisateurs de Lisk ont 101 votes disponibles pour élire leurs délégués préférés dans la 101 première liste. Le poids de chacun des 101 votes est proportionnel au montant de LISK que chaque utilisateur possède dans son portefeuille. Dans la terminologie Lisk on parle de ce total dans la liste de délégué comme d’une Approbation.

Chaque cycle de 101 blocs est créé par les 101 premiers délégués dans un ordre aléatoire. Le temps de bloc dans Lisk est de 10 secondes. Les blocs nouvellement créés sont diffusés au réseau et ajoutés ainsi à la blockchain. Après avoir reçu entre 6 et 10 confirmations, on considère un bloc et ses transactions comme confirmé. Un cycle de génération de bloc 101 complet prend environ 16 minutes.

Dans la DPOs, les forks peuvent évidemment toujours arriver et comme d’habitude la règle veut que la chaine la plus longues gagne sur les autres. Les délégués doivent être tout le temps on-line pendand leur action et avoir un uptime suffisamment élevé. Le concept d’uptime est utilisé dans Lisk pour juger de la fiabilité d’un noeud en enregistrant chaque fois qu’il rate un bloc qui lui avait été assigné. Si le uptime d’un délégué baisse au-dessous d’une certain seuil, les utilisateurs peuvent retirer des votes au délégué en question en raison de la piètre performance fournie et le substituer avec un noeud de réserve.

Pour être élu délégué, un utilisateur doit ouvrir un compte délégué. Ceci est possible dans l’interface utilisateur du portefeuille du client (full ou léger). La génération de blocs est toutefois possible seulement dans le portefeuille du client full. Cela signifie que’on peut enregistrer un délégué dans l’une ou l’autre version du portefeuille mais on peur exécuter les fonctions de délégué seulement dans la version full-client. Tous les comptes de Lisk ont le droit de devenir à un moment des délégués.

Les nouveaux délégués commencent leur vie comme des délégués de réserve. Ils ont au début un indice de satisfaction de 0 % et doivent accumuler des votes de la communauté pour avancer dans le classement jusqu’à devenir un des 101 premiers. La génération de bloc est exécutée par l’élite des 101 premiers: dans le statut de réserve, on ne forge jamais de blocs.

Les Dapps

Machine Virtuelle

Les Dapps Lisk sont exécutées grâce au Lisk Node: une version spécialisée de NodeJS qui fournit un environnement sandbox pendant l’exécution dans quel vont s’exécuter les Dapps individuellment. La communication inter-processus est réalisée en utilisant des Named-Pipes sans limite imposée sur la taille de message.

Lorsqu’on lance une nouvelle Dapp, le client Lisk démarre une nouvelle instance du Lisk Node en tant que processus fils. Si une Dapp rencontre une erreur fatale, le processus fils est tué gracieusement, laissant le parent Lisk inchangé et parfait état de fonctionnement.

Comme cela avait été le cas pour Ethereum, les développeurs mettent en garde: actuellement il n’y a aucune protection contre des appels de système non autorisés faits par les Dapps. Exécuter du code untrusted n’est pas encore recommandé et pourrait potentiellement mener à la perte de fonds. Le travail en cours vide a fournir un environnement entièrement sandboxed dans quel exécuter de manière 100% safe le code untrusted. Lisk est encore dans une version alpha.

Le développement de Dapps

Les développeurs écrivent leurs Dapps en Javascript ce qui permet l’utilisation de tout l’écosystème Node.js (via NPM).

Le Lisk Virtual Machine intégre l’API Lisk. L’API d’interface avec la blockchain Lisk et aussi avec cella de bitcoin . Chaque Dapp s’exécute dans le Lisk VM, ce qui réduit de beaucoup les vecteurs d’attaque possibles et rend beaucoup plus sûr pour l’utilisateur final le lancement d’une dapps sur sa machine locale.

Pour rendre le développement dapp aussi facile que possible l’Équipe Lisk a sorti lisk-cli, une interface en ligne de commande qui crée un réseau testnet privée et l’environnement dapp locale. De plus Lisk a préparé une Dapp Toolkit, qui donne facilite la vie aux développeurs

L’API Lisk inclut :
- API de consensus
- Lisk API
- API de bitcoin
- API de base de données

Pour ouvrir une Dapp on utilise le format :
http://ip:port/dapps/<dapp_id/username>

Le Calcul dans les Dapps

La Lisk VM utilise son API pour suivre à la trace le temps de CPU nécessaire pour exécuter une Dapp. Cela permet la facturation au temps de CPU passée. Ainsi les propriétaires de noeuds exécutent les Dapps d’autrui en échange de paiements en LISK ou BTC.

Le but de Lisk est de créer un écosystème unique, dont le calcul n’est qu’une des parties. En effet les propriétaires des noeuds gagnent des revenus en fournissant du calcul, de la mémoire, de l’espace de stockage ou d’autres ressources encore.

On appele cela de Dapps Billing. un système similaire à la plate-forme Heroku pour le déployement d’applications NodeJS.

Les Noeuds Maître (master nodes)

Les noeuds de maître d’une Dapp sont des noeuds Lisk qui ont la Dapp en question installée et qui ont les droits de générer de bloc spécifiquement pour cette Dapp. Les propriétaires d’une Dapp doivent approuver les noeuds Lisk qui souhaitent devenir un noeud maître.

Le Consensus

Chaque Dapp a sa propre sidechain privée unique qui fonctionne de manière horodatée et synchrone avec le temps de bloc de Lisk et la hauteur de bloc actuelle.

Ces sidechains Dapp sont gérées par un groupe de max 101 noeuds maîtres, dont chacun est en charge de la génération de bloc pour une Dapp individuelle. Le rôle principal de chaque noeud maître est de traiter des transactions et signifier la validité de chaque bloc produit sur une sidechain donnée.

Le consensus sur une sidechain est assuré par les 101 noeuds maître. Ils utilisent la même preuve DPOs qui sécurise la blockchain Lisk. Ceci permet aux noeuds maître individuels de gagner les honoraires de chaque transaction comme récompense pour avoir garantit et sécurisé la sidechain de la Dapp en question.

Les motivations qui sont derrière cette forme de consensus sont
- d'empêcher l’agrandissement inutile de la blockchain Lisk et
- de conserver l’autonomie des sidechains individuelles, tandis qu’en même temps, on en assure la stricte intégrité

Dapps Stockage

Il est possible d’héberger une Dapp sur chaque sorte de réseau de stockage, centralisé ou décentralisé. Seule condition, le réseau de stockage utilisé doit fournir un lien de téléchargement vers un file ZIP. Ceci est nécessaire parce que vous devez fournir le lien de téléchargement lors du processus d’enregistrement de la Dapp. Une fois qu’un utilisateur decide d’installer votre Lisk Dapp il sait d’où télécharger le ZIP et comment l’installer.

À un stade ultérieur IPFS sera intégré de manière native dans Lisk comme option de stockage décentralisée.

Dépôts et Retraits

Les développeurs peuvent utiliser LISK ou BTC dans leur Dapps. Les utilisateurs d’un dapp peuvent déposer ou retirer des fonds à partir de n’importe quelle Dapp. Quand des LISK ou BTC sont envoyés à l’adresse d’une Dapp, les fonds apparaissent dans le compte de la Dapp et deviennent disponibles à l’utilisation dans la dapp.

Cela marche la même façon pour des dépôts de BTC, seulement les BTC sont envoyés à un adresse spécial de la Dapp et apparaîent ensuite dans la Dapp Bitcoin wallet.

Les retraits de dapps sont traités et sécurisés par les noeuds maître. Quand une demande de retrait est envoyée, le noeud maître de la Dapp le traite et déplace les fonds vers l’adresse de retrait indiquée dans la blockchain Lisk ou Bitcoin.

Les jetons dans une Dapp

Les développeurs peuvent créer des jetons personnalisés dans leur dapps et utiliser ces jetons comme la monnaie principale de leur Dapp. Ces jetons peuvent être utilisés comme des LISK ou BTC, à une seule différence: les jetons ne peuvent pas être déplacés directement d’un dapp sidechain à un autre dapp sidechain. Ils peuvent seulement se déplacer via la chaîne principale de Lisk.

lisk.io/

David Teruzzi est rédacteur du blog blogchaincafe.com, spécialisé dans la blockchain et son univers.
Il est en même temps directeur technique et co-fondateur de blockchain-conseil.fr

Les médias du groupe Finyear

Lisez gratuitement :

Le quotidien Finyear :
- Finyear Quotidien

La newsletter quotidienne :
- Finyear Newsletter
Recevez chaque matin par mail la newsletter Finyear, une sélection quotidienne des meilleures infos et expertises en Finance innovation, Blockchain révolution & Digital transformation.

Les 6 lettres mensuelles digitales :
- Le Directeur Financier
- Le Trésorier
- Le Credit Manager
- The Chief FinTech Officer
- The Chief Blockchain Officer
- The Chief Digital Officer

Le magazine trimestriel digital :
- Finyear Magazine

Un seul formulaire d'abonnement pour recevoir un avis de publication pour une ou plusieurs lettres

Jeudi 14 Avril 2016


Articles similaires