From d758673641e524f52fcfa7ab99b45cc495c59499 Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Sun, 28 Mar 2021 14:06:35 +0200
Subject: [PATCH] ecc: add bulletproof

---
 public/hackathon-axiom-1/ecc/slideshow.md | 48 ++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/public/hackathon-axiom-1/ecc/slideshow.md b/public/hackathon-axiom-1/ecc/slideshow.md
index 82155ed..1490be3 100644
--- a/public/hackathon-axiom-1/ecc/slideshow.md
+++ b/public/hackathon-axiom-1/ecc/slideshow.md
@@ -30,8 +30,10 @@ class: dark
 1. [Ed25519](#ed25519)
 1. [Nombres cryptographiques](#cryptint)
 1. [Signature Ed25519](#sig)
+1. [Transaction](#tx)
 1. [Pedersen Commitment](#pc)
 1. [Chiffrement des montants](#cm)
+1. [Bulletproof](#bp)
 
 ---
 
@@ -174,6 +176,28 @@ Démonstration: `rG = (α + ck)G = αG + ckG = αG + cK`
 
 ---
 
+name: tx
+
+## .center[Transaction]
+
+| Inputs | | Outputs |
+|:-|-|-:|
+| `1002:0:D:Do6...XqC:104937` | - | `2000:0:SIG(DTgQ...r9NG)` |
+| `1002:0:D:Do6...XqC:104937` | - | `4:0:SIG(Do6Y...1XqC)` |
+
+Les vérificateurs doivent pouvoir s'assurer que personne ne puisse dépenser de la monnaie qu'il n'a pas.
+
+Pou cela quel sont les 2 critères ?
+
+--
+1. L'émétteur doit avoir le droit de dépenser la source
+
+--
+
+1. La somme des outputs doit être égale à la somme des inputs.
+
+---
+
 name: pc
 
 ## .center[Pedersen Commitment]
@@ -191,7 +215,7 @@ Pour avoir un Pedersen Commitment en ECC on utilise deux points G et H ainsi qu'
 
 ---
 
-name: cm
+name: cm2
 
 ## .center[Chiffrement des montants]
 
@@ -209,6 +233,28 @@ Tout vérifieur doit pouvoir vérifier que la somme des outputs est égale à la
 
 Le vérifieur à juste à vérifier que `C1 + C2 = C3 + C4`
 
+--
+
+.center[**En réalité c'est insuffisant, voyez vous pourquoi ?**]
+
+---
+
+name: bp
+
+## .center[Bulletproof]
+
+Une « range proof » permet de prouver que la valeur commitée est incluse dans un certain interval sans la dévoilée. 
+
+Une bullet proof est un aggégat de plusieurs «range proof» permettant de prouver qu'une liste e valeurs commitées sont incluses dans l'intervale `[0; 2^n[`.
+
+S'il y a P valeurs à prouver, la taille de la bulletproof est:
+
+.center[`(2 * log(⁡n) + 9) * 32 * P`]
+
+Si l'on choisi n=32, alors pour une transaction à 2 outputs on aura une bulletproof de 1216 octets.
+
+Pour plus d'infos: [Bulletproof whitepaper](https://eprint.iacr.org/2017/1066.pdf)
+
 ---
 
 ## .center[Merci de votre attention]
-- 
GitLab