AERGOSQL : Livre blanc

in aergo •  6 years ago  (edited)

AERGOSQL Livre blanc

AERGOSQL : un nouveau moteur de contrat intelligent pour Blockchain

AERGO_SQL_Whitepaper_V1.jpg

Dernière mise à jour le 17 juillet 2018, AERGO

AERGOSQL : Un nouveau moteur de contrat intelligent pour Blockchain

Won-Beom Kim, responsable du comité technique de la société AERGO Limited

AVERTISSEMENT LÉGAL

Ce document se rapporte au projet AERGO et devrait être lu conjointement avec le livre blanc disponible sur https://AERGO.io. Ce document et d’autres peuvent être modifiés ou remplacés à tout moment, sans notification de modifications ni accès à des informations supplémentaires.

Ce document est une information générale seulement. Il contient des déclarations prospectives qui sont basées sur des croyances, des hypothèses et des informations de l'auteur. Ceci n'est pas une représentation ou une garantie quant à la réalisation ou au caractère raisonnable de tout plan, projections ou perspectives futures dans le présent document. Les points de vue et opinions exprimés dans ce document sont ceux de l'auteur seulement. Ces déclarations ne sont ni des conseils, ni une offre d'aucune sorte, elles ne peuvent être invoqués dans n'importe quel but. La plateforme AERGO n’est pas destinée à constituer une valeurs mobilières ou toute autre produit réglementé dans d'autre pays. Si nécessaire, demander conseils à un professionnel qualifié.

Ce document n'a été examiné par aucune autorité de réglementation dans aucune juridiction. Les liens dans ce document faisant références à des entreprises, réseaux et / ou des cas d'utilisation potentiels sont donnés à titre indicatif uniquement. Autres que les partenaires ou fournisseurs explicitement mentionnés, l’utilisation de tout autre noms de société et / ou de plate-forme et les marques de commerce n'impliquent aucune affiliation avec l'approbation de l'une de ces parties.

RÉSUMÉ

Ce document décrit AERGOSQL, le moteur de contrat intelligent proposé pour fonctionner sur la plate-forme AERGO. Cela suppose un niveau de compréhension de base en ce qui concerne le codage informatique, les contrats intelligents, la programmation et la blockchain.

Il est proposé qu'AERGOSQL prenne en charge un modèle de données relationnel et la définition de la logique métier via un langage de script similaire à PL/SQL. Sous AERGOSQL, il est prévu que les modèles de données puissent être créés à l'aide du langage de définition de données («DDL») et manipulés ou accessibles à l'aide du langage de manipulation de données. La logique applicative utilisant le modèle de données peut être créée et appelée une syntaxe semblable à celle de PL/SQL.

Afin de prendre en charge les performances au niveau de l'entreprise, AERGOSQL propose de traiter les définitions de contrat intelligentes et les exécutions via LLVM afin d'utiliser la compilation JIT(1). La prise en charge de moteur de stockage enfichable permet de tirer parti de moteurs de stockage évolutifs tels que WiredTiger(2).

1. PROBLÈMES LIÉS AUX CONTACTS INTELLIGENTS

Les implémentations de chaînes de blocs classiques telles que Ethereum préfèrent la prise en charge complète des contrats intelligents par Turing.(3) Alors qu'une prise en charge intelligente des contrats procéduraux permet des applications plus flexibles, cette flexibilité permet également davantage d'erreurs et de vulnérabilités.(4)

Etant donné que la majorité des langages de contrat intelligents procéduraux sont modélisés autour du principe de la programmation orientée objet, l'accès aux données sur les contrats intelligents procéduraux est souvent également modelé à partir de structures de données en mémoire. D'autres types de langages de contrat intelligents prennent en charge des interfaces plus robustes pour les stockages clé-valeur ou de stockage de documents.(5) Cependant, nous pensons que les fonctionnalités d'accès aux données offertes par les langages contractuels intelligents procéduraux sont basiques par rapport à des bases de données NoSQL ou SQL plus matures et aboutissent souvent à des processus complexes et de longues mises en oeuvre pour contourner les limitations présentées.

(1) https://llvm.org/devmtg/2016-09/slides/Melnik-PostgreSQLLLVM.pdf
(2) http://www.wiredtiger.com
(3) https://github.com/ethereum/wiki/wiki/White-Paper#scripting
(4) https://eprint.iacr.org/2016/1007.pdf
(5) https://medium.com/wearetheledger/hyperledger-fabric-couchdb-fantastic-queries-and-where-to-find-themf8a3aecef767

2. SQL ET CONTRATS INTELLIGENTS

Les modèles de données relationnels et l'interface SQL offrent des moyens beaucoup plus efficaces d'accéder aux données stockées dans les grands livres et de les manipuler par rapport aux moyens procéduraux. En fait, l'essentiel de la logique métier requise par la plupart des cas d'utilisation de contrats intelligents peut être représenté par DDL et des contraintes uniquement. Les langages de script conçus autour de SQL, tels que PL/SQL, fournissent un support plus complet pour la création de contrats intelligents.

La figure suivante est un exemple illustrant un système de comptabilité de solde implémenté à l'aide de PL/SQL.

AERGO_SQL_Whitepaper_V1_table.jpg

Système de comptabilité de solde implémenté avec PL/SQL

3. CONCEPTION D'ARGOSQL

La conception proposée d'AERGOSQL comprend trois couches de fonctionnalités.

Le Frontend

Le frontend d'AERGOSQL analyse PL/SQL et crée une représentation AST du script. Un dialecte de PL/SQL optimisé pour une utilisation sur des ledgers autorisés est utilisé pour la simplicité et la fonctionnalité. ANTLR(6) est utilisé pour traiter le dialecte EBNF for PL/SQL et générer un analyseur syntaxique en langue Go.

L'optimiseur

Basé sur l'AST émis par le client, l'optimiseur crée l'infrarouge du script pour LLVM. Afin d'optimiser les performances, l'optimiseur alloue les bons noeuds d'exécution en IR.

Le Backend

Le backend de AERGOSQL est destiné à fournir la couche d'abstraction pour les fonctionnalités requises par les noeuds d'exécution utilisés par IR. Afin de permettre l'optimisation, le backend fournit également des statistiques pertinentes sur les données persistantes. WiredTiger constitue le choix privilégié d’arrière-plan dans la conception initiale, mais AERGOSQL devrait être en mesure d’utiliser tout stockage de données sauvegardé par b-tree ou LSM.
Afin de prendre en charge différents types d’algorithmes de consensus implémentés par différents ledgers, AERGOSQL fournit le mécanisme de point-en-bloc pour la restauration et la restauration. Une telle fonctionnalité permet aux implémentations blockchain avec réorganisation de blocs d'utiliser AERGOSQL.

4.IMPLICATIONS

L'interface SQL familière prise en charge par AERGOSQL est conçue pour permettre aux chaînes de blocs de prendre en charge des méthodologies plus conviviales pour les développeurs pour la création de contrats intelligents. AERGOSQL cherche à améliorer les performances et l'évolutivité, ce qui devrait également permettre de réaliser des cas d'utilisation plus exigeants sur la blockchain.

(6) http://www.antlr.org

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

I upvoted your post.

Best regards,
@Council

Posted using https://Steeming.com condenser site.