Vous êtes sur la page 1sur 20

solution Blockchain oriente Objet

AEDEUS - 11 mars 2016

Ce document dcrit larchitecture gnrale et les principes de fonctionnement de aeChain (Acyclic


Exchange Chain), une solution blockchain AEDEUS destine partager et scuriser les transactions
entre acteurs dun mme rseau : entreprises, institutions, collectivits ou communauts dutilisateurs.
Contrairement aux solutions blockchains classiques elle sappuie sur une philosophie Objets,
prfigurant ainsi de futurs usages potentiels en IoT (Internet of Things). Ce ne sont en effet pas les
utilisateurs humains qui sont en charge de sa gestion (transactions, approbations, validations) mme si ils en sont les bnficiaires au final - mais les machines connectes en rseau.
Sa seconde caractristique est de sappuyer sur des technologies lgres permettant dassurer lintgralit dune transaction scurise - contrles, approbation ou rejet, mise jours des blocs - en
quelques secondes : de 2 5 selon sa complexit, comparer avec les dix minutes ncessaires actuellement la blockchain Bitcoin pour faire computer par un miner lintgralit des datas ncessaires.
Labsence de mining et de PoW implique galement labsence de nuds particuliers : toute machine
connecte au moment T dune transaction est apte lvaluer et lapprouver ou la rejeter si les
conditions ne sont pas remplies. Cette machine peut tre un ordinateur, une tablette, un smartphone
et terme nimporte quel objet connect : tlvision, montre, voiture, capteurs domicile.
Une autre de ses spcificits est dtablir des relations de type lien social entre machines. Nous y
reviendrons plus loin.
Le protocole aeChain, en excluant toute intervention humaine qui peut tre source derreurs malfaisantes ou accidentelles, place la scurit absolue au cur de son offre. Nous ne reviendrons pas
sur les caractritiques gnrales de blockchain (datas distribues, consensus horizontal, indestructibilit, infalsifiabilit, ...) qui sont aujourdhui largement connues des acteurs concerns par ces questions pour entrer directement dans ses protocoles, ses outils et ses fonctionnalits.
Table des matires
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Architecture
CP : cls publique/prive
MT : modules transactionnels
DL : distributed ledgers
TP : protocole transactions
MJ : mises jour chains
TL : transactions timelines
TH : transactions historicises
Supports techniques
Exemples fonction smart-contract
Annexes

p. 2
p. 3
p. 5
p. 6
p. 7
p. 10
p. 12
p. 13
p. 14
p. 15
p. 18

1 AEDEUS 11/03/2016

1. Architecture
Larchitecture technique aeChain est constitue de deux briques distinctes : lalgorithme et lapplicatif.
Elle est conue comme une webapp standard pour lui garantir la fois une interoprabilit maximale,
une rapidit de traitement et dexcution, une fluidit des changes, une universalit des outils, une portabilit simplifie, une sobrit en temps de calcul, consommation nergtique et charge rseau et une
indpendance totale des APIs externes.
1a. Lalgorithme
Au cur de aeChain, il assure les fonctions dencryptage/dcryptage et la gestion des cls
publiques/prives.
Toute transaction aeChain est un dialogue crypt entre machines connectes. Chaque machine possdant sa propre cl, lalgorithme traduit les changes et envoie chaque machine les instructions
cryptes dont elle a besoin pour mener son travail bonne fin : vote, approbation, validation, mise
jour des blocs/des chains.
En tant que serveurs de code, les machines algo ne sont que des machines particulires du rseau.
1b. Lapplicatif (Dapp)
Lapplicatif reprsente lensemble des fonctions ralises en interne par chaque machine connecte ;
en interne parce ce sont pour une grande partie des langages client (Javascript et ses drivs : Ajax,
SSE, DSL, Node...) qui sont en charge de raliser les actions requises : se connecter au dialogue intermachines, rcuprer et traiter les encryptages reu de lalgorithme, effectuer les tches requises, etc.
Exemples dapplications dj implmentes dans aeChain ou en projet :
- protocoles didentification/authentification
- changes internes en crypto-monnaies
- validations titres, diplmes, brevets
- smart-contracts auto-excutables
- antriorit des ides, mthodes, process
- partage de missions et valuations
- outil de co-dcision
- gestion de stocks, traabilit produits
- traabilit des chaines de dcision
- squenages actions/temps
- messagerie P2P crypto-scurise
- micro-contrats vnements ponctuels
- vote, participation citoyenne
- jeux : positions, gains, tapes
- IoT : contrats et paiements au service

2 AEDEUS 11/03/2016

2. CP : cls prives/publiques
Les blocs de chains et les changes sont crypts selon des mthodes complexes dfinies par lalgorithme.
Il existe une cl publique permettant lalgorithme de comprendre ce que chaque machine attend lorsquelle appelle lune ou lautre de ses fonctions, et une cl prive diffrente selon chaque machine qui
garantit la non-interprtation de ses changes et transactions en cas dinterception frauduleuse.
Sans entrer dans les dtails (qui restent secrets), lencryptage global est ralis en mixant diffrentes
technologies. Dune part pour des raisons de scurit (indcryptabilit) et de lautre pour des raisons
de poids informatique et de temps de traitement, les chains sont un concentr de rductions, de translations, de hashage, de saltage et de sur-cryptages successifs.
Il y a au final 2 niveaux de cryptage : la chain qui possde le sien en propre (selon la cl de chaque
machine) et le cryptage gnral qui permet lalgorithme de travailler. Tout bloc - et a fortiori toute
chain - est donc initialement crypt en cl publique mais retraduit en cl prive sur chaque machine.
Un hacker qui accderait aux chains de plusieurs machines en simultan ne pourrait donc pas les comparer pour dtecter programmatiquement leurs diffrences pour en dduire une mthode dattaque.
Dautre part les chains sont encodes sur plus de 100 caractres. A titre dexemple les autres blockchains (Bitcon par exemple) nencodent que sur 62 caractres : de A Z, a z et 0 9. Exemple :
eGR5eZ4vcDQoJg88y8vmm3j5fyAe8V9lkU98bN21Jcm...
aeChain encode en plus sur les lettres accentues et signes clavier :
G[eZ4vD)oJ88y8vm-3j5f}A#8V9lkU98b|21Jm...
Augmenter le nombre de signes dencodage accrot dautant la scurit globale et permet dobtenir des
gammes de hashage plus larges et plus importantes, et donc un poids informatique moindre.

2a. Fonctionnement des cls prives


Soit une chain sur une machine commenant par exemple par :
G[e4v_D)oJ88y8vm-3j5f}A
Elle se dcompose comme suit (exemple fictif) :

G[eZ

DATE

4v_D) oJ 88y8vm-3
USER

[A]

VAL

....

APPROBS

[100] [B,C,D,E]

La cl serait alors K+USER (4v_D). Cest ce code qui sert didentifiant initial toute demande de
transaction : login/authentification, change de valeurs, etc.

3 AEDEUS 11/03/2016

Lorsque les machines connectes reoivent ce code en dialogue interne elles savent que la machine A
engage une transaction ; elles cherchent alors dans leur propre chain si il existe un bloc dcrivant A
avant dentreprendre toute autre dmarche. Seules les machines connaissant dj A continueront
dialoguer entre elles ; il nest en effet pas envisageable en terme de temps, de charge CPU, de
consommation nergtique, de charge rseau et de scurit gnrale dengager toutes les machines
connectes simultanment dans un mme dialogue transactionnel. En outre, dgager les machines
inutiles permet ces dernires de se consacrer dautres dialogues transactionnels en parallle impliquant dautres machines et dautres demandes.
Cest en cela que aeChain est un outil relationnel dobjet objet de type lien social comme voqu plus
haut dans lintroduction : seules les machines connaissant les acteurs de la transaction en cours sont
mobilises.
Tant quil ny a que 50 ou 100 machines sur le rseau cela nest pas un critre dcisif en terme
defficacit, mais avec 100 000 machines - et en labsence de machines-noeuds particuliers (miners) cette particularit de aeChain prend tout son sens.
Nous reviendrons plus loin sur ces protocoles dchanges relationnels (5.TP : protocoles transactions)

2b. Utilisation multi-machines


Tout utilisateur de aeChain peut changer un jour de machine ou lutiliser sur dautres machines
simultanment (phones, tablettes). Chaque nouvelle machine devra tre identifie comme appartenant bien la mme personne. Pour cela aeChain dispose dun certain nombre doutils :
- linscription (premire utilisation) un QRcode pointant vers une URL temporaire permet
de synchroniser les chains entre ordinateur et tlphone,
- une image stganographie (contenant dans ses pixels les datas minimales utiles) peut tre
gnre par lutilisateur : il prend une de ses photos de vacances, lui donne nimporte quel nom, la
drag-drop dans linterface aeChain, la rcupre et la sauvegarde. En cas de changement de machine
(ou de crash entranant une rinitialisation complte) il lui suffira de lenvoyer dans linterface pour
reconstituer ses chains,
- un petit fichier texte lui aussi encrypt peut tre utilis de la mme faon.

2c. Authentification et scurit


Les machines elles-mmes (et non leurs utilisateurs) tant agents actifs de aeChain, mme si un
utilisateur se fait drober son mot de passe et son identifiant, la personne mal-intentionne qui
voudrait les utiliser depuis sa propre machine pour usurper son identit ne sera jamais reconnue
puisque les codes didentification passs dans linterface ne correspondront pas ceux envoys par la
chain (cl et datas associes) au rseau des connects. Cest un niveau de scurit supplmentaire.
Il y a bien lien social de machine machine : elles se reconnaissent entre elles et ne se reconnaissent
quentre elles.

4 AEDEUS 11/03/2016

3. MT : modules transactionnels
Les modules transactionnels sont des requtes effectues par une machine au rseau une fois celle-ci
identifie et autorise.
Ces modules peuvent tre dclins pour correspondre de nombreux usages. Passs crypts ils dfinissent sous forme dinstructions ce qui est attendu par la machine requrante.
Exemples de modules :
MTa >
MTb >
MTc >
MTd >
MTe >
MTf >
MTg >
MTh >
MTi >

?A
A>n>B
A>n>B+C+D
A+B+C>n>D
A>n<B
A+B>n<C+D
A*n
A*n>B*o
A+B*n>C+D*o

O [n] peut reprsenter

(login/authentification)
(A donne [n] B : one-to-one)
(A donne [n] [groupe] : one-to-many)
([groupe] donne [n] D : many-to-one)
(A partage/change [n] avec B)
(A et B partagent [n] avec C+D : many-to-many)
(A ralise/excute [n])
(si A ralise/excute [n] alors B ralise/excute [o] )
(si A+B ralisent [n] alors C+D ralisent [o] )

- un montant en crypto-monnaie
- une voix/un vote
- un micro-contrat
- un jeu de datas
- une portion de code informatique
- ...

Une srie dinstructions cryptes telle que : if A*[condition]>B*[B>100>A] (smart-contract type)


se traduit par :
Si A ralise/excute la condition alors B verse 100 units A
Exemple dutilisation : soit A, producteur de miel qui vend son produit en ligne. Il le confie au transporteur B qui doit le livrer domicile chez C. Quand le phone de B est golocalis prs de ladresse de C
(condition 1 : B>n<C, [n] tant les coordonnes de C) un dial sinstaure entre machines concernes par
A, B et C. Quand le phone de B reconnat celui de C on considre que la livraison est effectue. C verse
alors la somme convenue A (C>n>A, [n] = prix du produit livr) et A verse le cot du port B
(A>n>B, [n] = portage domicile). Voir page 17 le dtail dun tel contrat.

3a. Interface de modules


Linterface de aeChain permet tout utilisateur de construire des jeux/assemblages de modules en
mode scratch intuitif par de simples glisser-dposer sur son cran sans aucune comptence en programmation. Lalgorithme se charge de traduire les MT en applicatif crit dans les chains utilisateurs.

5 AEDEUS 11/03/2016

4. DL : distributed ledgers
A la diffrence dautres blockchains il nexiste nulle part de version intgrale du ledger. Ceci pour deux
raisons :
1. Le poids informatique exponentiel du ledger le rend de plus en plus long et coteux computer.
2. La scurit nest pas optimale.
Lattaque dite des 51% suppose pouvoir falsifier Bitcoin ncessite que lattaquant prenne le contrle
de la majorit des machines-noeuds (50% + 1) pour contraindre les 49% restant modifier le ledger
global. Avec aeChain cette attaque est impossible. Chaque machine ne dtenant que des parties de
chains il faudrait parvenir prendre le contrle en un moment T de la totalit des machines connectes, en dcrypter les chains selon les cls de chacune, reconstituer lintgralit du ledger, le rcrire
entirement et replacer sur chaque machine les parties cohrentes requises, elles-mmes rcrites
dans leurs propres cls.

4a. Fractionnement des DL


Soit sur nimporte quelle machine le module transactionnel MTb (A>n>B : A donne [n] B) crypt
dans un bloc et plac dans la chain reprsentant lensemble de toutes les transactions ralises.
Pour ne pas surcharger les temps de calculs et limiter le volume de datas traiter lalgorithme dcide,
si le nombre dutilisateurs devient trs important, de scinder la chain des MTb en deux parties,
MTb/1 et MTb/2. Les machines de 1 1000 contiendront alors la MTB/1 et les machines de 1001
2000 la MTb/2. Si les machines 333, 522 et 999 lancent une transaction entre elles, seule la chain
MTb/1 est utile ; les machines chain MTb/2 ne sont pas requises.

4b. Rgles de transactions


MACHINE

A
B
C
D

CHAIN

TRANSACTION

MTa/1
MTb/1
MTc/2
MTa/1
MTb/1

B peut transactionner/valider
avec A + D

MTb/1
MTc/2

C peut transactionner/valider
avec B + D

MTa/1
MTc/2

D peut transactionner/valider
avec A + B + C

6 AEDEUS 11/03/2016

5. PT : protocole transactions

A
A envoie sa cl CP (ID) au rseau

aeChain dtecte alors les DL (MT[x]) compatibles : qui cela concerne-t-il ?

A
C, D, F et G (et dautres) sont compatibles

A ce stade nous avons [x] machines connectes en capacit de dialoguer avec A


aeChain slectionne alors un certain nombre dentre elles quelle associera la prise de dcision
selon la thorie des graphs acycliques DAG : Directed Acyclic Graph (voir ce terme en recherche web).

5a. Les Frres et les Cousins


Toutes les machines connectes peuvent tre imagines comme une sphre 3D icosahdre ; quel
que soit le point dentre de A dans cette sphre, il a ncessairement 5 frres et 15 cousins :

7 AEDEUS 11/03/2016

Ses frres sont les 5 machines interroges en priorit. Sengage alors un dialogue priv de machine
machine entre elles. Toutes les autres machines - A y compris - en sont exclues :

Ce dialogue extrment rapide (moins dune demi-seconde) a pour objectif de dterminer le degr de
fiabilit de A : est-il connu ? Les donnes quil envoie sont-elles fiables ?
Chaque machine cherche dans sa propre chain interne les datas dont elle dispose et les compare aux
autres. Si le rsultat obtenu est suprieur 80% (au minimum 4 oui pour 1 non) alors la transaction
peut commencer. Cette proportion et le nombre de machines dialoguantes est paramtrable selon le
niveau de scurit exig : on peut par exemple exiger lunanimit de 20 machines avant dinitier la
transaction.
Cette opration de pr-approbation peut donc prsenter 3 cas de figure possibles :
1. OUI suprieur ou gal 80%
La transaction venir est accepte (voir plus loin).
2. OUI compris entre 40% et 80%
La transaction venir nest pas acceptable en ltat des connaissances. aeChain interroge alors les
cousins (15 machines supplmentaires) et reprend le process de dialogue/vote interne. Le nombre
de machines augmentant, le seuil dacceptabilit standard est redescendu 70% (au lieu de 80%).
Lquation algorithmique qui gre ce seuil relve de la thorie des Gnraux Byzantins (voir ce
terme en recherche web) .
3. OUI infrieur 40%
La transaction est rejete. Plusieurs cas de figures tant possibles (tentative de fraude, mises jour de
chains imparfaite ou incomplte, etc.) aeChain cherche alors dans lhistorique des transactions pour
reconstituer la dernire squence de fiabilit (voir 8. TH : transactions historicises)
Si ce process choue son tour il y a probablement tentative de fraude. aeChain pose en ultime
recours une question de scurit lutilisateur. Cest le seul cas o une intervention humaine est requise.

8 AEDEUS 11/03/2016

Une fois la transaction juge acceptable par ses pairs (protocole peer-to-peer) A est rintroduit dans le
dialogue et invit soumettre sa transaction (code MT) :
[A>100u>B] (A verse 100 units B)
Un nouveau dialogue excluant A sinstaure alors entre les [n] machines approbatrices pour dterminer
si :
- B existe
- A dtient le montant de la transaction (voir plus loin : 7.TL : transactions timelines)
Un token cryptant les datas de la transaction est alors cr dynamiquement, reprenant partiellement
les termes du contrat en cours pour archivage (voir plus loin : 8. TH : transactions historicises).
Ce token (jeton) dit :
Le 24 fvrier 2016 12h4032 A demande verser 100 units B
Selon le MT pass par A (par exemple ici [A>100u>B] = MTb) chaque machine approbatrice
cherche alors dans sa chain interne MTb le bloc concernant A, qui contient la fois son solde en
units, la date de la dernire transaction et quelles machines lont approuve :

G[eZ

DATE

4vD) oJ 88y8vm-3
USER

[A]

VAL

....

APPROBS

[100] [B,C,D,E]

La transaction tant accepte elle est alors crite, mise jour et partage par capillarit sur le
rseau. Le token devient :
Le 24 fvrier 2016 12h4035 A a vers 100 units B

5b. Approbations Transactions Simultanes (ATS)


Les transactions engages ne concernant quun nombre restreint de machines (de 5 10 selon de
niveau de confiance requis dans ltablissement du consensus dapprobation), les autres machines du
rseau ntant pas mobilises une transaction en cours sont donc disponibles pour en engager
dautres en parallle.
Ce dispositif particulier aeChain nous permet dassurer plusieurs dizaines - voire centaines - de
transactions parallles simultanes ; une transaction durant selon sa complexit entre 1 et 4
secondes, des milliers de machines connectes simultanment nous autorisent plusieurs centaines ou
milliers de transactions/seconde. Voir Annexe 2 page 19.

9 AEDEUS 11/03/2016

6. MJ : mise jour chains


Chaque machine approbatrice validant la transaction met jour sa propre chain. Exemple :
La machine C dtenait linformation (un bloc de la chain)

G[eZ

DATE

4vD) oJ 88y8vm-3
USER A 100 APPROBS

....

disant : le 14 fvrier 2016 22h4055 A dtenait 100 units approuves par W, X, Y Z


C modifie en interne ce bloc selon sa propre cl (chaque machine lcrira diffremment) qui deviendra :

GnB_U 4vD) Bo KfUn(6pZ


....
NOW
USER A
0
APPROBS : C-D-F-G-Z

alors que D crira par exemple :


U
K

Psn[6k
NOW

Go}B
USER A

Tnc Pr#asMi
....
0
APPROBS : C-D-F-G-Z

Ce qui garantit la fois linviolabilit et linfalsifiabilit de aeChain.


Une fois ces mises jour internes ralises, A est rintroduit dans le dialogue P2P et est invit mettre
jour sa chain selon sa propre cl. Techniquement parlant, lalgorithme gre la transaction en cl publique
mais envoie chaque machine sa mise jour en cl prive.

6a. Mj par capillarit


A ce stade seules les machines directement concernes par la transaction sont jour. Si le process
de mj sarrtait l nous serions confronts de nombreux problmes de pr-approbations puisquon
aurait autant de versions de chains que de transactions en cours, et donc toute nouvelle transaction
impliquant des machines ayant rcemment approuv dautres transactions auraient des chains incohrentes entre elles.
Nayant pas de miners, et donc ne pouvant constituer des sries de branches mortes tombant par
dsutude comme le fait Bitcoin, aeChain processe ses mise jour par capillarit : sont concernes
en priorit les machines prcdemment approbatrices de la dernire transaction de A : W, X et Y (Z
est vient dtre mise jour). Si elles sont connectes ce moment-l lalgorithme les informe de la
mj en cours et elles se remettent jour en quelques dizimes de secondes. Sinon elles le feront plus
tard.
Viennent ensuite les approbateurs de chaque machine : si C a t approuve prcdemment par
L+M+N+O+P, ces dernires sont informes si elles sont connectes ; le nombre de machines instantanment mises jour est alors compris entre 25 et 36 : A, ses approbateurs, ses ex-approbateurs et
les approbateurs de chaque machine approbatrice de A.

10 AEDEUS 11/03/2016

Sont concernes ensuite les Frres-Cousins ngatifs, celles qui nont pas pr-approuves la transaction, puis enfin les derniers approbateurs de chacune des machines mises jour ; on dpasse alors de
la centaine de machines jour.
Ceci nempche pas encore les conflits possibles mais les rend statistiquement moins frquents. Lors
dune prochaine transaction le jeu interne des Frres-Cousins ralimentare le cycle des mj.

6b. Mj par connexion


Toute machine non-connecte au moment T de la transaction chappe la mise jour globale qui
suivra. Lors de sa connexion (login+pwd) la transaction tant MTa [>K] (valider/approuver la
connexion de K au rseau) elle requiert approbation puis mise jour en tant que transaction comme
une autre. Le cycle des mj est instantanment recr, concernant K, ses approbateurs, etc.
De cette faon on garantit un pourcentage de machines jour largement suffisant pour assurer la
fiabilit et la loyaut des transactions.

K
R

Ses approbateurs

F-C ngatifs*

Les approbateurs de R

Les approbateurs de Z

Les anciens approbateurs de K


*F-C : Frres-Cousins

11 AEDEUS 11/03/2016

7. TL : transactions timelines
Bitcoin et dautres blockchains (Ethereum, ...) disent : A un moment T Untel dtient tant dunits,
ce qui crit dans un bloc de la chain. Le bloc prcdent (principe de lhistoricisation des transactions) disait : Au moment T-1 Untel dtenait tant dunits.
aeChain fonctionne autrement. Elle dit : Dans labsolu Untel dtient tant dunits. Le solde de
chaque utilisateur est dtemporalis. Explication :
Pour aeChain la gestion des transactions ne dpend pas du crdit-dbit de chacun dans son porte-monnaie virtuel en un instant donn, mais de sa balance globale virtuelle : si A dtient 100 units et quil
en verse 100 B, le fonctionnement classique lui interdit den verser ensuite 150 C puisquil
deviendrait dbiteur. Il existe donc un gap (un trou transactionnel) entre A verse et D verse qui
empche A de raliser son contrat avec C.
TL
A promet
100 B

A promet
150 C

D promet
200 A

A > +100

A verse
100 B

A verse
150 C

D verse
200 A

+200

GAP
aeChain garantissant la confiance des paiements, si D a promis de verser 200 units A, le solde de
ce dernier nest pas 0 aprs son versement B mais 200 (le montant promis par D). A peut donc
verser 150 units C comme il avait prvu de le faire, il reste virtuellement crditeur de 50.
Les transactions sont timelines, elles scrivent sur une ligne de temps qui va de la transaction 1
la transaction [n] sans crer de gap :
TL
A promet
100 B
A > +100

A promet
150 C

D promet
200 A

150

+50

A verse
100 B

A verse
150 C

D verse
200 A
+50

Le solde de A est de +50 units dans labsolu ; ltagement des versements-encaissements sur la
timeline na pas dimportance puisque les transactions tant garanties, seul le contrat est pris en
compte indpendamment de sa ralisation finale (transaction paiement).
Exemple : une entreprise crditrice en banque de 10 000 euros qui aurait besoin dinvestir 20 000
euros pour dcrocher un march de 50 000 euros devra crer une relation de confiance avec sa
banque (expliquer et prouver pourquoi et comment). aeChain supprime le tiers de confiance.

12 AEDEUS 11/03/2016

8. TH : transactions historicises
En cas de litige dans la phase de pr-approbation entre chains concurrentes contradictoires (gestion des conflits) et dans limpossibilit darbitrer lalgorithme appelle la chain des tokens transactionnels pour faire valider aux machines concurrentes la version historique enregistre.
Ce qui est une fonction standard des blockchains classiques (computer lhistorique des transactions pour valider/approuver celle en cours) nest quune option supplmentaire de scurit dans
aeChain.
Ce process de secours en cas de litige important (pr-approbation Frres-Cousins positive infrieure
40%) permet de restaurer globalement les chains contradictoires. Le recours cette fonction de
lalgorithme tant trs gros consommateur de temps et dnergie il est rserv aux situations inextricables. Le paramtrage du nombre de machines requises voqu plus haut sera affin projet par
projet pour dterminer le seuil partir duquel la fonction sera appele.

M
N
O

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@

22/02/2016 15:40:25

A>100>B V+W+X+Y+Z

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@ ?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@ ?@@@@@@@@

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@

22/02/2016 20:32:20

A>n>X

F+G+H+I+J

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@ ?@@@@@@@@
?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@

23/02/2016 10:25:12

A>030>D P+Q+R+S+T

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@ ?@@@@@@@@
?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

Bloc historiquement le plus rcent concernant les MTa de A

13 AEDEUS 11/03/2016

9. Supports techniques
9a. Machines initiales
aeChain ncessite projet par projet la cration de 5 machines initiales (non-actrices des transactions) paramtres de faon pouvoir servir dapprobatrices aux toutes premires machines qui se
connecteront. Leur mission est de crer sur celles-ci les bases des chains partir desquelles elles
pourront tre authentifies et reconnues comme fiables et loyales.
Une fois cette opration faite, et une fois le rseau en cours de constitution (au minimum 5 10
nouvelles entrantes) ces 5 machines pourront si besoin tre retires par ladministrateur du projet,
rinitialises en tant que machines vides et rinscrites dans le projet comme nouvelles entrantes.
Cest le seul protocole obligatoire de aeChain dans lequel une intervention humaine est absolument ncessaire : ces 5 machines initiales seront cres manuellement une par une via linterface ;
elles seront identiquement dtruites une par une manuellement pour redevenir de simples
machines quivalentes toutes les autres.

9b. Interfaces IHM


Les interfaces (webapps) proposes aux diffrents utilisateurs (administrateurs, utilisateurs de base)
permettent de crer et contrler les oprations ncessaires au bon fonctionnement de aeChain.
Elles permettent notamment, selon les statuts et degrs dautorisations, de visualiser les datas de
blocs sous forme textuelle (listings) ou graphique (coloured coins). Cette visualisation (anonyme
ou nominative selon les statuts) prsente au choix ltat actuel des datas au moment T (MT par
MT, User par User, ...) ou encore MT donn lintgralit historique des transactions ralises.
Des dveloppements spcifiques de visualisation et/ou doutils de contrle sont ralisables en fonction
des besoins et des attentes. aeChain tant elle-mme conue comme une webapp, toutes les interactions possibles entre chains et pages web sont techniquement possibles :

9c. Dveloppements potentiels et interoprabilits


En tant que blockchain objets aeChain a pour vocation dintgrer des scripts et outils issus
dautres domaines numriques : IoT (Internet des Objets) comme annonc, mais galement IA
(Intelligence artificielle) ou big datas. Des modules de deep learning pourraient terme venir enrichir
les chains de blocs de donnes computes programmatiquement via des plateformes ddies.
Dautre part, tant construite sur des langages ouverts et largement interoprables, il est terme
envisageable pour des utilisateurs utilisant des aeChains distinctes de crer des passerelles entre
elles et de passer des objets (par exemple montants en crypto-monnaies, morceaux de contrats,
datas particulires, actions spcifiques...) dun simple drag-drop sur linterface.

14 AEDEUS 11/03/2016

10. Exemples de fonctionnement : smart-contracts


Soit un contrat C stipulant que Alex, organisateur dune soire publique, fait assurer les risques par
Bob, courtier dassurance, pour une dure D convenue de 4h (entre 20h et 24h). Les risques sont
conjointement dfinis par Alex et Bob et crits R1, R2, R3 et R4 (par exemple incendie, accident,
...). Chaque risque est assorti dune contrainte obligeant Alex (contrainte lgale, condition de scurit, ...) : C1, C2, C3 et C4. Les montants concerns par le contrat sont dune part la prime demande par Bob pour couvrir lvnement (P) et le montant couvert pour chaque risque : M1, M2, M3
et M4. Les participants inscrits sont au nombre de 100 : Z1 Z100.
Une aeChain spcifique est cre entre Alex (A) et Bob (B) sur le schma de protocole suivant :
1. Versement de la prime
A>P>B[B*C[date]]

Si A a vers la prime, B sengage respecter le contrat C de 20 24h

2. Un incident possible
Z[x]*R[y] & Z[x]*C[y] & D[20-24]
Si un participant (Z[x]) provoque un risque couvert (R[x])
ET si ce participant (Z[x]) a respect les contraintes fixes (C[x])
ET si D (plage de couverture) est compris entre 20 et 24
3. Couverture
B>M1>A

Alors B verse le montant M[x] (risque R[x]) A

aeChain contient en accs sur son URL spcifique :


- 102 blocs dcrivant les personnes : A, B et 100 Z
- 15 blocs dcrivant les conditions de lengagement : R1 R5, C1 C5, M1 M5
- 1 bloc contenant la date/heure de couverture : D
- 1 bloc contenant le contrat C encod en MT :
if A>P>B[B* [ Z[x]*R[y] & Z[x]*C[y] & D[20-24] = B>M1>A ]
soit 119 blocs au total.
Si un participant (Z20) met par accident le feu (R1) du mobilier couvert par le contrat, A se
connecte aeChain via le token pass :

15 AEDEUS 11/03/2016

aeChain en action

B Z1 Z2 Z3 Z4 Zn

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

ID CP (identification)

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

@@g
?@@
@@g
?@@
@@g
?@@
@@g
?@@
@@g
?@@
@@g
?@@
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@ ?@@@@@@@@
?@@@@@@@@

A est reconnu comme fiable

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

Dialogue pr-approbation

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@

Demande dapprobation de C

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@

?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

Dialogue approbation C

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

2
4

Le contrat C est reconnu comme valide

A
B

if A>P>B

23/02/2016 23:25:12 A s+M1 Z1-Z2-Z3-Z4

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

23/02/2016 23:25:12 B sM1 Z1-Z2-Z3-Z4

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

Si la prime dassurance a t verse

B* [ B>M1>A ]

Z[x]*R[y] & Z[x]*C[y] & D[20-24]

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@

@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?
@@@@@@@@e?
@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
@@@@@@@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@
@@h?
@@

@@
@@
@@
@@
@@
@@
@@
@@

@@
@@
@@
@@
@@
@@
@@
@@

@@
@@
@@
@@
@@
@@
@@
@@

@@
@@
@@
@@
@@
@@
@@
@@

@@
@@
@@
@@
@@
@@
@@
@@

@@
@@
@@
@@
@@
@@
@@
@@

B verse le montant M1 A

Dialogues approbation

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

eBD6r[LmpZoKV56!_JnM66(Zaar]P14v8

J_NC33eFGn(8ebcN134vWw!ubOsnaLldk1

Dialogues approbation

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

Mise jour blocs de A, B, Z[x]

A
B

Dialogue approbation

@@g
@@g
@@g
@@g
@@g
@@g
@@@@@@@@
@@@@@@@@ ?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@
?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@?e@@@@@@@@e?@@@@@@@@

@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@
@@

?@@
?@@
?@@
?@@
?@@
?@@
?@@@@@@@@
?@@@@@@@@

Les conditions prvues sont runies :


1 user Z20 existe
2 R1 (incendie) est couvert
3 scurit C1 respecte
4 D (23h18) >20 et <24

aeChain organise les contrats complexes en sous-contrats lis et conditionns :


Alex est producteur, il met en vente son produit 80 euros. Chlo est sa cliente. Pour le port, Alex
fait appel une plateforme de transporteurs elle-mme blockchaine. Il dfinit les conditions (date,
adresse, poids, etc.) et Bob, transporteur, accepte la prise en charge de la livraison Chlo pour 20
euros. Le prix final du produit est donc de 100 euros : 80 de produit et 20 de port.
Chlo fixe comme condition que le produit - quelle veut offrir en cadeau Dan pour son anniversaire - doit imprativement tre livr le 22 mars au plus tard, veille de la fte, pour avoir le temps de
prparer le cadeau.

16 AEDEUS 11/03/2016

Les conditions du contrat crit et approuv par consensus dans la blockchain sont les suivantes :
A est Alex, B est Bob et C est Chlo.
Condition 1 : Si B livre C au plus tard le 22, C paiera 80 A et 20 B (tat normal du contrat)
Condition 2 : Si B livre C le 23 (jour de lanniversaire) C paiera 80 euros A, mais B nayant pas
tenu sa promesse ne recevra que 10 euros pour le transport.
Condition 3 : Si B livre C aprs le 23, C ne paiera le produit que 40 euros (moiti prix) A, et B versera A les 40 euros manquants.
Dans tous les cas, A reoit 80 euros qui est le prix de vente de son produit.
Mais une difficult apparat : si B ne tient pas le dlai promis, il a alors tout intrt ne pas livrer
du tout plutt quen retard... une quatrime condition est alors dfinie :
Condition 4 : Si B na toujours pas livr C le 25, B devient alors le client de A (cest lui qui paye le
produit 80 euros) et C est ddommage de 50 euros.
Le contrat chain est crit :
if M(b) & M(c) & P(48.552478/7.753022+0.00025)
=> si les machines de Bob et de Chlo (par ex. phones, mais M(b) peut aussi tre un drone et
M(c) une serrure connecte...) sont toutes deux ladresse GPS de Chlo plus ou moins 15 m
c1

C[ D(<23) : M(c)>80>M(a) , M(c)>20>M(b) ]


=> si la date (D) est infrieure 23 (le 21, le 22...) alors Chlo verse 80 euros Alex et 20 Bob

c2

C[ D(23) : M(c)>80>M(a) , M(c)>10>M(b) ]


=> si la date (D) est le 23 mars alors Chlo verse 80 euros Alex et seulement 10 euros Bob

c3

C[ D(24) : M(c)>40>M(a) , M(b)>40>M(a) ]


=> si la date (D) est le 24 (un jour de retard) alors Chlo et Bob versent chacun 40 euros Alex

c4

C[ D(>24) : M(b)>80>M(a) , M(b)>50>M(c) ]


=> si la livraison nest pas faite, Bob verse 80 euros Alex et 50 euros Chlo et garde le produit.

Techniquement parlant, si les datas changes entre les machines de Bob et de Chlo (date et pos
GPS) sont conformes aux conditions 1 3 le tranfert dargent est instantan entre A, B et C pour les
montants spcifis dans le contrat. Si Bob ne livre pas, ds la transaction suivante concernant A, B
ou C (que ce soit une approbation/validation, un autre contrat, une demande de log, ...) la condition
4 sera automatiquement applique.
Si Bob a eu un quelconque empchement (panne, maladie, accident) cest lui de smart-contractiser
le risque avec E, lassureur avec lequel il modlisera un sous-contrat de la mme faon.

17 AEDEUS 11/03/2016

Annexe 1 : aeChain, process complet simplifi

Machines connectes au moment T

M(a) lance une transaction sur le rseau

Dial/consensus crypt entre machines


M(b) + M(c) + M(d) +M(e) + M(f)

Machine-noeud algo envoie token crypt


aux machines concernes (Frres)

Approbation transaction par


M(b) + M(c) + M(d) +M(e) + M(f)
Rencryptage selon cls individuelles
Actualisation blocs sur
M(b) + M(c) + M(d) +M(e) + M(f)
Mise jour M(x,y,z...) par capillarit

18 AEDEUS 11/03/2016

Annexe 2 : aeChain, multi-transactions simultanes

M(a) lance une transaction sur le rseau

M(b) + M(c) + M(d) +M(e) + M(f)


sont ddies cette seule transaction

M(g) + M(h) + M(i) +M(j) + M(k) + M(l)


sont disponibles pour une autre transaction

Entre 5 et 10 machines (nombre


paramtrable selon besoin en scurit)
sont affectes une seule transaction
qui dure de 1 4 secondes.
1000 machines connectes peuvent
mener entre 100 et 150 transactions
parallles simultanes.
10 000 machines peuvent raliser
jusqu 500 transactions par seconde,
soit une transaction chaque
deux millimes de secondes.

M(g) + M(h) + M(i) +M(j) + M(k) + M(l)


sont ddies cette autre transaction
Machines disponibles pour une
troisime transaction simultane

19 AEDEUS 11/03/2016

CONCLUSION

aeChain (Acyclic Exchange Chain) est un protocole Blockchain orient Objets (BoO) autonome
et non-dpendant de plateformes existantes. Puissant, dynamique et volutif, il est destin prendre en
charge de faon entirement dcentralise et horizontalise (shared ledger) lintgralit des transactions
prives ou publiques ralises entre objets-acteurs dune entit dfinie : entreprise, collectivit, groupe
constitu.
Son algorithme est construit autour de trois fonctions autonomes pouvant tre une par une adaptes
des besoins client spcifiques :
1. Fonction de cryptage
Cette fonction a un double usage : dune part scuriser les changes et les transactions en rendant
les donnes indchiffrables sans les cls associes (publiques et prives), et de lautre dencoder programmatiquement toutes sortes de donnes de faon rationnaliser et acclrer leur traitement :
identits, montants, valeurs, conditions, squences, descriptions.
2. Fonction de consensus
Base sur la thorie des graphs acycliques, le consensus peer-to-peer garantit limpartialit et linfalsifiabilit des dcisions prises horizontalement par le rseau des machines connectes, que ce soit en
transfert de fonds, validation de contrats, authentification de machines entrantes ou partage de donnes.
3. Fonction dactualisation
Contrairement aux solutions blockchains lourdes (Bitcoin, Ethereum, ...) qui ractualisent lintgralit des chanes de blocs par minage, lalgorithme dactualisation est capillaire : les mises--jour se
font de proche en proche par capillarit sur le rseau en dehors de toute intervention humaine. La
scurit globale sen trouve accrue et les risque derreurs ou de malveillance en sont dautant rduits.

Contact
Laurent Leloup - AEDEUS
ll@aedeus.com

20 AEDEUS 11/03/2016