LEDGER COMBINERS FOR FAST SETTLEMENT
Matthias Fitzi1, Peter Gaži1, Aggelos Kiayias1,2, Alexander Russell1,3
1IOHK Research 2University of Edinburgh 3University of Connecticut
TCC 2020
L EDGER C OMBINERS FOR F AST S ETTLEMENT Matthias Fitzi 1 , Peter Gai - - PowerPoint PPT Presentation
L EDGER C OMBINERS FOR F AST S ETTLEMENT Matthias Fitzi 1 , Peter Gai 1 , Aggelos Kiayias 1,2 , Alexander Russell 1,3 1 IOHK Research 2 University of Edinburgh 3 University of Connecticut TCC 2020 Nakamoto Ledgers in a Nutshell ? Cartoon
Matthias Fitzi1, Peter Gaži1, Aggelos Kiayias1,2, Alexander Russell1,3
1IOHK Research 2University of Edinburgh 3University of Connecticut
TCC 2020
Cartoon description:
?
Cartoon description:
Properties:
?
Proof of Work (PoW): [Bitcoin, Ethereum, ...]
Proof of Stake (PoS): [Ouroboros, Snow White, ...]
Proof of Space (PoSp): [SpaceMint, Chia, ...]
NC very resilient, can tolerate hostile environments:
○ in principle, up to 1/2 of the underlying resource can be controlled by an adversary ○ cf. classical: typically up to 1/3
○ fluctuating level of participation, parties come and go without notifying others, lose access to necessary resources, ... ○ cf. classical: fix party sets, typically rely on counting
“How long does it take a transaction from being injected into the system until universally recognized as a stable ledger entry?”
time tx enters the system tx stabilized
time
tx
∊
time
tx
∊
Intrinsic Latency Barrier:
time
tx
∊
limited block creation rate (to avoid forks)
limited settlement speed
Overlay structures for improved latency:
Best latency guarantees achievable by Nakamoto? Our approach: Parallel Composition
(also taken in Prism [BKTFV19])
➢ ledger
○ orders transactions ○ captures their stability ○ loosely related to time ○ e.g.: block timestamp
➢ ledger
○ orders transactions ○ captures their stability ○ loosely related to time ○ e.g.: block timestamp ➢ dynamic ledger
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger
...
⇒
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger rank1(tx), … , rankm(tx) ⇒ rank(tx) := F(rank1(tx), …, rankm(tx))
...
⇒
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger Fast (m-fold) submission: settlement time t ⇒ t / Θ(m)
...
⇒
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger Fast (m-fold) submission: settlement time t ⇒ t / Θ(m) Slow (single-ledger) submission: settlement time t ⇒ t . O(ln m)
...
⇒
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger Fast (m-fold) submission: settlement time t ⇒ t / Θ(m) Slow (single-ledger) submission: settlement time t ⇒ t . O(ln m)
...
⇒
subindependence
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger Fast (m-fold) submission: settlement time t ⇒ t / Θ(m) Slow (single-ledger) submission: settlement time t ⇒ t . O(ln m)
...
⇒
m scales with λ: constant-time settlement with negligible error
m parallel, independent dynamic ledgers ⇒ 1 “virtual” dynamic ledger Fast (m-fold) submission: settlement time t ⇒ t / Θ(m) Slow (single-ledger) submission: settlement time t ⇒ t . O(ln m)
...
⇒
tradeoff: tx fee ⇔ settlement time
...
⇒ m parallel dynamic ledgers ⇒ 1 “virtual” dynamic ledger
minority of ledgers fully corrupted
...
⇒ m parallel dynamic ledgers ⇒ 1 “virtual” dynamic ledger
➢ ledger: 𝕄 = (T, rank)
○ transactions ordered by increasing rank
➢ ledger: 𝕄 = (T, rank)
➢ dynamic ledger: 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ...
𝕄(0) 𝕄(1) 𝕄(2) 𝕄(3) 𝕄(4)
⋮
➢ ledger: 𝕄 = (T, rank)
➢ dynamic ledger: 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ...
𝕄(0) 𝕄(1) 𝕄(2) 𝕄(3) 𝕄(4)
⋮
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t):
tx
t0 t0 + r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t):
tx
t0 t0 + r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t): except with error l(r).
tx
t0 t0 + r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t): except with error l(r). ➢ Persistence. For any r, t: 𝕄(t): 𝕄(t+1): 𝕄(t+2):
tx
t0 t0 + r t-r t ⋮ r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t): except with error l(r). ➢ Persistence. For any r, t: 𝕄(t): 𝕄(t+1): 𝕄(t+2): except with error p(r).
tx
t0 t0 + r t-r t ⋮ ⋮
= =
r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness. For any r, t0, t ≥ t0+r: 𝕄(t): except with error l(r). ➢ Absolute persistence. For any r, t: 𝕄(t): 𝕄(t+1): 𝕄(t+2): except with error pA(r).
tx
t0 t0 + r t-r t
= =
⋮ ⋮ r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Relative persistence. For any r, s, t: 𝕄(t): ⋮ 𝕄(t’): ⋮
t - r - s t t - s s r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Relative persistence. For any r, s, t: 𝕄(t): ⋮ 𝕄(t’): ⋮
⊆
t - r - s t t - s s r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Relative persistence. For any r, s, t: 𝕄(t): ⋮ 𝕄(t’): ⋮
⊆ ⊆
t - r - s t t - s s r
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Relative persistence. For any r, s, t: 𝕄(t): ⋮ 𝕄(t’): ⋮ except with error pR(r,s).
⊆ ⊆
t - r - s t t - s s r
l(r)-liveness pA(s)-absolute persistence } ⇒ (absolute) settlement in r+s steps with error l(r) + pA(s)
“ledger up to tx will not change” l(r)-liveness pA(s)-absolute persistence } ⇒ (absolute) settlement in r+s steps with error l(r) + pA(s)
“ledger up to tx will not change” l(r)-liveness pA(s)-absolute persistence } ⇒ (absolute) settlement in r+s steps with error l(r) + pA(s) l(r)-liveness pR(s,t)-relative persistence }
relative settlement in r+s+t steps with error l(r) + pR(s,t)
l(r)-liveness pA(s)-absolute persistence } ⇒ (absolute) settlement in r+s steps with error l(r) + pA(s) l(r)-liveness pR(s,t)-relative persistence }
relative settlement in r+s+t steps with error l(r) + pR(s,t)
could overtake tx in the future is already in the ledger
⊆ ⊆
“ledger up to tx will not change”
If:
then tx will not be invalidated
l(r)-liveness pA(s)-absolute persistence } ⇒ (absolute) settlement in r+s steps with error l(r) + pA(s) l(r)-liveness pR(s,t)-relative persistence }
relative settlement in r+s+t steps with error l(r) + pR(s,t) “ledger up to tx will not change”
could overtake tx in the future is already in the ledger
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness with error l(r). ➢ Absolute persistence with error pA(r). ➢ Relative persistence with error pR(r+,r-).
tx
t0 t0 + r t - r t = =
⊆ ⊆
t - r- - r+ t t - r-
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness with error l(r). ➢ Absolute persistence with error pA(r). ➢ Relative persistence with error pR(r+,r-).
Nakamoto ledgers provide exponential security:
Dynamic ledger 𝔼 = 𝕄(0), 𝕄(1), 𝕄(2), ... ➢ Liveness with error l(r). ➢ Absolute persistence with error pA(r). ➢ Relative persistence with error pR(r+,r-).
Nakamoto ledgers provide exponential security:
...
⇒
⇒
Dynamic ledgers (𝔼1, …, 𝔼m) are ε-subindependent if for
we have Pr[ ⋀i∊I Fi | E ] ≤ ∏i∊I Pr[ Fi ] for some E with Pr[E] ≥ 1 - ε.
⇒
Dynamic ledgers (𝔼1, …, 𝔼m) are ε-subindependent if for
we have Pr[ ⋀i∊I Fi | E ] ≤ ∏i∊I Pr[ Fi ] for some E with Pr[E] ≥ 1 - ε. Achieving ε-subindependence:
⇒
⇒ For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) that allows for:
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m)
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m)
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m)
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m)
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m) Some intuition:
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m) Simple lower and upper bound:
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m) Role of the L parameter:
for “stabilization speed”:
○ m-fold speedup for fast submissions ○ in the long term, slow submissions only as secure as a single ledger
○ exp(-𝛴(L)) is acceptable error
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m) Role of the θ threshold:
⇒
For 𝔼1, …, 𝔼m we define C(𝔼1, …, 𝔼m) via where L ∊ ℕ (parameter) ri := ranki(tx) θ(tx) := mini ri + L.ln(m) Preemptive version:
not preceded by a conflicting transaction tx’ there
⇒
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
⇒
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m)))
⇒
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m)))
⇒
rm < L
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m)))
⇒
speed
rm < L
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m)))
Pr[∃tx not abs. settled after 2r] ≤ exp( - 𝛻(r) + O(L.ln(m)))
⇒
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m)))
Pr[∃tx not abs. settled after 2r] ≤ exp( - 𝛻(r) + O(L.ln(m)))
⇒
standard settlement speed
Theorem: For m dynamic ledgers 𝔼1, …, 𝔼m with
the construction C(𝔼1, …, 𝔼m) achieves
Pr[∃tx not rel. settled after 2r] ≤ exp( - r𝛻(m) + O(m)) + exp( - 𝛻(r) - 𝛻(L.ln(m))) Corollary: If the number of chains m scales with the security parameter, then C(𝔼1, …, 𝔼m) with fast submission achieves constant-time settlement except with a negligible error.
⇒
Parallel Chains: Improving Throughput and Latency of Blockchain Protocols via Parallel Composition [eprint 2018/1119]
Ledger Combiners for Fast Settlement [eprint 2020/675]