Vue d'ensemble technique de la plateforme open money
Résumé
La plateforme open money est constituée de trois composants: 1) un maillage distribué d'entités liées, 2) un brassage qui génère le maillage, et 3) un langage de spécification de monnaie. Le maillage, avec son petit nombre de types d'entités (compte, espace de nommage, monnaies et flux) et ses types de liens spécifiques à chaque type d'entité, auquel vient s'ajouter le langage de spécification de monnaie, nous permet de représenter un vaste réseau de processus de prise en compte de la richesse, d'une manière distribuée, supportant le passage à l'échelle, et avec la sécurisation requise. Ensemble, ces trois composants (maillage, brassage et langage) forment un alphabet qui nous permet d'inscrire et de donner le jour à la coexistence d'une myriade de nouvelles façons de prendre en compte la richesse, ouvrant la voie à une nouvelle forme d'alphabétisation, l'alphabétisation de la richesse.
La maillage
Le maillage fournit l'étayage ontologique pour la plateforme open money. Tout, dans open money, repose sur les entités et les liens du maillage. Il existe quatre types de base pour les entités:
- Les espaces de nommage: Les espaces de nommage fournissent un espace d'adressage qui situe les comptes, les monnaies et les sous-espaces de nommage. Les espaces de nommages sont les abstractions qui établissent la correspondance avec les communautés d'identité. Ce sont les zones d'échange auxquelles les comptes et les monnaies sont identifiées.
- Les comptes: Les comptes représentent les extrêmités des prises en compte de richesse. Il est possible d'y voir les porte-monnaies d'open money. Ce sont les lieux entre lesquels s'établit le flux de prises en compte de la richesse, servant au flux de point de déclaration ou d'acceptation.
- Les monnaies: Les monnaies sont les entités qui décrivent un jeu de règles pour une forme particulière de prise en compte de la richesse, dans quel cadre elles peuvent être utilisées, quelles informations elles doivent enregistrer, les conditions de cet enregistrement, etc. Les monnaies définissent une communauté de fonction entre tous les comptes qui utilisent cette monnaie.
- Les flux: Les flux sont des enregistrements de prises en compte d'une richesse. Les flux existent en relation avec les comptes qui déclarent et acceptent la richesse, ainsi qu'avec les monnaies approuvées.
Les liens sont les composants ontologiques qui établissent des relations entre les entités. Chaque lien est une déclaration uni-directionnelle de relation. Il existe cinq types de liens:
- names: Les liens "names" ("noms") relient les espaces de nommage aux comptes, monnaies, et autres (sous-)espaces de nommage. Ce lien établit qu'un compte en particilier, une monnaie ou un espace de nom est nommé à l'intérieur d'un espace de nommage.

- is used by: Le lien "is used by" ("est utilisé par") relie les monnaies aux comptes. Ce lien établit qu'un compte donné est membre de la monnaie source.

declares & accepts: Les liens "declares" ("déclare") et "accepts" ("accepte") relient les comptes aux flux. Ils indiquent soit qu'un compte a été à l'origine de la prise en compte de richesse enregistrée par le flow, soit que ce compte l'a accepté.- approves: Le lien "approves" ("approuve") relie les monnaies et les espaces de nommage aux flux. Ce lien a établi qu'une monnaie a accepté que la prise en compte de richesse enregistrée dans le flux suive les règles de la monnaie (par exemple que les limites de crédit au moment de la prise en compte soient dans les limites acceptables). Certaines définitions de monnaie, ou règles d'espace de nommage, sont également susceptible de demander à l'espace de nommage d'approuver le flux.
L'ontologie lien-entité est facilement extensible. L'on pourrait par exemple ajouter un "auditeur", relié à un flux avec un lien "confirms" ("confirme").
Sur la toile, le maillage est implémenté comme un ensemble accessible de ressources REST. Ainsi, chaque entité correspond à une URL. La plateforme open money inclut une infrastructure de résolution de noms qui effectue la correspondance entre noms open money et URL. Ceci est similaire à la façon dont les serveurs DNS effectuent la correspondance entre noms de domaine et adresses IP. Par exemple, un nom open money comme zippy.cc.us.ny pourrait correspondre à https://myccserviceprovider.com/accounts/735. De cette manière, le maillage peut être distribué sur l'ensemble d'Internet sur un large nombre de serveurs. Ce diagramme résume l'ensemble des entités et types de liens, et représente une petite portion du maillage entre deux serveurs.
Considérations de sécurité
Le contrôle d'accès aux entités du maillage repose sur l'hypothèse que chaque entité stockera une liste de données d'identification qui devront être fournies avant que l'accès soit autorisé. La spécification du contrôle d'accès est largement ouverte en cela qu'elle envisage des données d'identification et des types de données d'identification différents et variés pour l'accès des tiers aux caractérisques des entités (droits d'accès en lecture et/ou en écriture). La spécification prend également comme hypothèse que les schémas des données d'identification changeront au cours du temps.
Il est supposé que d'autres aspects de la securité seront gérés en dehors de l'architecture spécifique à open money. Par exemple, le respect de la confidentialité est assuré en utilisant le protocole https pour le transport des données, quand cela s'avère nécessaire.
Le brassage
Tandis que le maillage est l'état accessible des données concernant les joueurs, leur identité et les relations fonctionnelles comme l'historique des prises en compte de richesse entre eux, le brassage est le processus par lequel de nouvelles entités sont ajoutées au maillage et par lequel les entités existantes voient leur réseau de liens augmenter. Cette augmentation du maillage est le résultat d'événements de nature discrète. Ainsi le maillage représente les noms du monde open money, tandis que le brassage représente ses verbes. Il n'y a qu'une poignée d'événements, et il est possible de les voir comme des appels de procédure avec des paramètres.
- Create Namespace ("Créer un espace de nommage"): paramètres: nouvel espace de nommage, espace de nommage parent
- Create Account ("Créer un compte"): paramètres: nouveau nom de compte, espace de nommage parent
- Create Currency ("Créer une monnaie"): paramètres: nouveau nom de monnaie, spécification de la monnaie, espace de nommage parent
- Join Currency ("Se joindre à une monnaie"): paramètres: compte, monnaie
- Acknowledge Flow ("Flux de prise en compte"): paramètres: compte qui déclare, compte qui accepte, spécification du flux
Le langage de spécification de monnaie
Un élément clé de la plateforme openmoney est un langage qui nous permet de modéliser la variété de motifs de prise en compte de la richesse que les communautés veulent créer. Les blocs de base constructifs du langage de spécification de monnaie sont:
- Les champs de données: Ils décrivent les données et le type de données qui sont collectées dans un certain flux. Exemples: "quantité en kWh" ou "niveau de l'évaluation (1-4 étoiles)" ou "montant en euros et description" ou "livres de CO2 émises et heures de travail et évaluation subjective de la joie de l'employé". Est inclue dans la spécification des champs de données une spécification d'une interface humaine pour la façon dont les champs doivent être présentés par un client lors de la procédure de postage d'un événement du flux de prise en compte. Notez que ceci est une spécification très large qui évoluera pour des présentations très complexes, mais elle débute avec une approche linguistique localisable très simple, c'est-à-dire que la spécification est simplement: "{celui qui déclare} acknowledges {celui qui accepte} for {description} in the amount of {montant}" (c'est-à-dire, "{celui qui déclare} reconnaît {celui qui accepte} pour {description} d'un montant de {montant}"). Le client logiciel peut alors convertir cela en une présentation appropriée pour l'utilisateur. Si le client logiciel est un serveur web, cette présentation pourrait être un formulaire HTML. Si le logiciel client fonctionne sur un téléphone cellulaire, ce type de déclaration pourrait être converti en un flux audio avec possibilité de choix en pressant sur les touches, etc.
- Résumé: Le résumé décrit la manière dont l'historique des prises en compte est résumée. Par exemple, "solde", "moyenne" ou "une formule mathématique complexe prenant tous les champs de données en paramètres". La spécification du résumé inclut une présentation de l'interface humaine similaire à celle des champs de données.
- Classes d'utilisateur: Les monnaies ont fréquemment différents types d'utilisateurs. Par exemple, les monnaies d'émetteur de crédit voudront spécifier que certains comptes puissent être des émetteurs de monnaie, et d'autres des personnes qui échangeront la monnaie contre une autre forme de richesse. Ainsi quand les comptes se joignent aux monnaies, leur lien "is used by" ("est utilisé par") sera marqué avec un paramètre "as" (en tant que") qui indique la classe d'utilisateur dans laquelle le compte se trouve pour cette monnaie.
- Règles: Les règles de la monnaie spécifient l'ensemble des propriétés fonctionnelles de la monnaie. Ces règles sont le coeur du langage de spécification de monnaie, et sont spécifiables dans des langages de programmation standards. Les règles incluent des choses telles que:
- Les règles pour se joindre à la monnaie: Quelles sont les règles pour pouvoir se joindre à la monnaie, la monnaie est-elle ouverte? Devez-vous recevoir l'approbation du régisseur de la monnaie? A quel contrat vous engagez-vous en rejoignant la monnaie? etc.
- Les règles de prise en compte: Sous quelles conditions les flux peuvent-ils être rajoutés au maillage? Ces règles permettent l'implémentation de choses comme les limites de crédit, les limitations des évaluations (par exemple, vous ne pouvez vous évaluer vous-même), etc.
- Les règles des classe d'utilisateurs: Que peuvent faire les différentes classes d'utilisateurs? Peuvent-elles émettre de la monnaie? Peuvent-elles l'accepter? Quelles portions du système leur sont visibles? Peuvent-elles voir les résumés, les historiques de transaction, etc.?
