SlideShare a Scribd company logo
Antonio Fernandez Anta (IMDEA Networks Institute)
Chryssis Georgiou (U. Cyprus)
Nicolas Nicolaou (Algolysis LTD)
• Block chains and cryptocurrencies may have
the power to change society
• But when experts are asked, they often get
very technical about crypto, mining, smart
contracts
• Very often there is confusion between the coin
and the blockchain that supports it
• Some have specs [Ethereum Yellow Paper]
while for others “the code is the spec”
• But,
 What is the service provided by all blockchains?
 What are the properties a blockchain must satisfy?
 What are the assumptions on the underlying “world”
that are assumed?
There is need for formalization
[Herlihy’s Keynote at PODC 2017]
and possibly use the decades of experience in DC
• We contributed to this formalization defining the
Distributed Ledger Object (DLO) [FGKN 2018]
 Concurrent object that stores a totally ordered sequence
of records: [r1, r2, r3, …, rn]
 Clients can Append(r) a new record r or Get() the whole
sequence of records (operations)
 Start and end of an operation are matching events
Distributed Ledger Object
Client Client
Append(r5)
Get()
AppendRes()
GetRes([r1,r2,…,r5])
r1 r2 r3 r4 r5
Validated Centralized DLO ( Valid() )
Init: S := []
Upon invocation Append(r) do
if ((r not in S) and Valid(S+[r]))
then
S := S + [r]
respond AppendRes()
Upon invocation Get() do
respond GetRes(S)
Appends of the
same record r
are idempotent
• Validity check before appending a record
Validated Centralized DLO ( Valid() )
Init: S := []
Upon invocation Append(r) do
if ((r not in S) and Valid(S+[r]))
then
S := S + [r]
respond AppendRes()
Upon invocation Get() do
respond GetRes(S)
Validation can
check hash links,
transaction
correctness, and
run Smart
Contracts
• We are interested in distributed
implementations of DLO
• A set of servers collaborate to provide the
service and properties of a ledger
Distributed Ledger Object
Client Client
Append(r)
Get()
AppendRes()
GetRes([r1,r2,…])
ServerServer
Server
• There is a permutation σ of the operations of
every execution of a DLO so that:
 All records appended are seen in the same order by
every client: Strong prefix [Anceaume et al., 2018]
 Atomic consistency (linearizability): The order σ
respects the execution order of the operations
(“looks like” a centralized ledger)
• In [FGKN 2018] and [CFGN 2019] we showed
how to implement a linearizable DLO using a
total order broadcast service when clients and
servers can fail (crash or Byzantine)
• A convergence to one single blockchain is very
unlikely
• Interconnection of blockchains is unavoidable
• One of the simplest operation involving
multiple blockchains is Atomic Swap
• Two selfish clients A and B want to exchange goods
• A has to transfer some good G(A) to B in blockchain
DLOA
• B has to transfer another good G(B) to A in blockchain
DLOB
• If any of them backs off, no transfer occurs
Client A Client B
• From [Narayanan et al 2016] [TierNolan 2013]:
Client A
Client B
Put G(A) in escrow
If (by time 2T, a value x
is revealed: Hash(x)=Y)
then Transfer G(A) to B
else Release G(A)
R
Y=Hash(R)
Put G(B) in escrow
If (by time T, a value x is
revealed: Hash(x)=Y)
then Transfer G(B) to A
else Release G(B)
R
R
DLOA
DLOB
• Interledger [interledger.org] is a
system that uses connectors, escrows,
and hashlocks to propagate currency
transfers across multiple blockchains
Source: Interledger Video https://www.youtube.com/watch?v=UdCxrqP6w3I
• [Herlihy 2018] generalizes this algorithm (and
hashlocks) to the case in which the transfers
form a strongly connected directed graph
• Clients A and B
• Client A has record RA to be appended to
DLOA
• Client B has record RB to be appended to
DLOB
• Algorithm P solves the Atomic Appends
Problem if
 Safety: Either both records are appended or
none
 Liveness: If A and B do not fail, both records
are appended
Client A
Client B
RA
RB
• We assume clients A and B rational but risk-averse
• In the Competitive Utility Model,
UX(only Y appends) > UX(both append) >
> UX(none appends) > UX(only X appends)
Client A Client B
• The Nash equilibrium is not appending
• Atomic Swap is an instance of Competitive
Atomic Appends
Append No
Append ( , ) ( - , )
No ( , - ) ( , )
• Consider the Coordinated Attack problem
• In the Collaborative Utility Model,
UX(both append) > UX(none appends) >
UX(only Y appends) > UX(only X appends)
• In a failure-free system, both clients simply
append
A
B
RB
DLOA
DLOB
RA
RA
RB
RA
RB
• Assume that clients can only append in their
respective DLO (no delegation)
• Theorem: If clients can crash, Collaborative Atomic
Appends cannot be solved, even in a synchronous
system
RB
DLOA
DLOB
RA
RA
RB
RA
RB
Time t
Time t’ ≥ t
Correct Execution E: Liveness
• Assume that clients can only append in their
respective DLO (no delegation)
• Theorem: If clients can crash, Collaborative Atomic
Appends cannot be solved, even in a synchronous
system
DLOA
DLOB
RA
RA
RB
RA
Time t
Faulty Execution E’: No Safety
Time t’
• Let us now assume that delegation is possible
(i.e., both clients can append in both DLOs)
• Algorithm A for an asynchronous system with
delegation and one crash: Each client X does
 Send own record RX to the other client
 Wait until record RY is received
 Append record RX
 Append record RY
• Theorem: Algorithm A solves Collaborative
Atomic Appends with delegation if at most one
client crashes
RB
DLOA
DLOB
RA
RA
RB
RA
RB
RB
RB
RA
RA
• Theorem: Algorithm A solves Collaborative
Atomic Appends with delegation if at most one
client crashes
RB
DLOA
DLOB
RA
RA
RB
RA
RB
RB
• Theorem: Algorithm A solves Collaborative
Atomic Appends with delegation if at most one
client crashes
DLOA
DLOB
RA
RB
Waits
forever!!
• Theorem: If both clients can crash, the
problem cannot be solved, even with
delegation and synchrony
DLOA
DLOB
RA
RA
RB
RA Time t
Faulty Execution E’: No safety Time t’
RB
• Delegating in each other is not enough if both
clients can crash
• Can we do something else?
• We propose using a “Smart DLO” (SDLO) to
collect the append requests and ultimately
execute them:
 Each client appends to the SDLO its description of
the atomic append: e.g. [A, {A,B}, RA]
 When all required descriptions are appended in the
SDLO, the SDLO appends in the corresponding DLOs
A
B
B, {A,B}, RB
RB
DLOA
DLOB
SDLO
A, {A,B}, RA
RA
• Solves the problem even if both clients can
crash and the system is asynchronous
• Works for any number of clients: k-Atomic
Appends
• Can be used for Competitive Atomic Appends
• Assumes that the SDLO has functionality (a
smart contract) that implements the algorithm
• The SDLO needs capacity of issuing Append()
operations
• The SDLO is not a real entity: implemented
with multiple servers
• Must be able of appending in other DLOs!!
SDLO
ServerServer
Server
RB
DLOB
• Cosmos: With a central blockchain (Hub)
Source: Cosmos Video
• Tradecoin [Hardjono et al 2018]: Gateways
connect blockchains
• Isolated DLOs are not extremely useful
• Interconnection and interoperability between DLOs
is needed
• We propose the Atomic Append problem, that
already shows the challenges of interconnecting
DLOs
• Collaborative Atomic Appends:
No crash 1 crash 2 crashes
No delegation YES NO NO
Delegation YES YES NO
Smart DLO YES YES YES
Works also for k clients and Competitive Atomic Appends
• Explore all variants of Atomic Appends under
different utility models
• Define Atomic Append as a native operation in
a multi-ledger system:
 CreateLedger(L,Valid())
 Append(L,r)
 Get(L)
 AtomicAppend( (L1,r1), (L2,r2), …)
• Implement DLOs that can access other DLOs
 Read the records
 Append records
• Design algorithms to implement Smart DLOs.
Do we really need consensus? (Atomic Append
descriptions do not need to be totally ordered)
A
B
RB
DLOA
DLOB
A
SDLO
A, {A,B}, RA
RA
B, {A,B}, RBB
• Cryptocurrencies can be implemented without
consensus [Gerraoui et al. PODC 2019]
(A,4) (D,1)6
(C,1)3
A
B
(E,3)
DLOA
DLOB
(B,2)
(B,2)
(E,3)
3-1+4=6
6-4-1=1
6-4-1+2=3
6-4-1+2-3=0
(E,3)
Thank you!!

More Related Content

What's hot

Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 Akka-demy (a.k.a. How to build stateful distributed systems) I/II Akka-demy (a.k.a. How to build stateful distributed systems) I/II
Akka-demy (a.k.a. How to build stateful distributed systems) I/II
Peter Csala
 
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
Flink Forward
 
Introducing Arc: A Common Intermediate Language for Unified Batch and Stream...
Introducing Arc:  A Common Intermediate Language for Unified Batch and Stream...Introducing Arc:  A Common Intermediate Language for Unified Batch and Stream...
Introducing Arc: A Common Intermediate Language for Unified Batch and Stream...
Flink Forward
 
The Newest in Session Types
The Newest in Session TypesThe Newest in Session Types
The Newest in Session Types
Roland Kuhn
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Zalando Technology
 
Spark Streaming into context
Spark Streaming into contextSpark Streaming into context
Spark Streaming into context
David Martínez Rego
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processing
Vasia Kalavri
 
Journey into Reactive Streams and Akka Streams
Journey into Reactive Streams and Akka StreamsJourney into Reactive Streams and Akka Streams
Journey into Reactive Streams and Akka Streams
Kevin Webber
 
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje CrnjakJavantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Rust in TiKV
Rust in TiKVRust in TiKV
Rust in TiKV
PingCAP
 
Improving Mobile Payments With Real time Spark
Improving Mobile Payments With Real time SparkImproving Mobile Payments With Real time Spark
Improving Mobile Payments With Real time Spark
datamantra
 
Reactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive WayReactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive Way
Roland Kuhn
 
Reactive Spring 5
Reactive Spring 5Reactive Spring 5
Reactive Spring 5
Corneil du Plessis
 
Spark and spark streaming internals
Spark and spark streaming internalsSpark and spark streaming internals
Spark and spark streaming internals
Sigmoid
 
Reactive mistakes reactive nyc
Reactive mistakes   reactive nycReactive mistakes   reactive nyc
Reactive mistakes reactive nyc
Petr Zapletal
 
Bootstrapping Microservices with Kafka, Akka and Spark
Bootstrapping Microservices with Kafka, Akka and SparkBootstrapping Microservices with Kafka, Akka and Spark
Bootstrapping Microservices with Kafka, Akka and Spark
Alex Silva
 
Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
Sub Szabolcs Feczak
 
Event sourcing - what could possibly go wrong ? Devoxx PL 2021
Event sourcing  - what could possibly go wrong ? Devoxx PL 2021Event sourcing  - what could possibly go wrong ? Devoxx PL 2021
Event sourcing - what could possibly go wrong ? Devoxx PL 2021
Andrzej Ludwikowski
 
A Brief Introduction of TiDB (Percona Live)
A Brief Introduction of TiDB (Percona Live)A Brief Introduction of TiDB (Percona Live)
A Brief Introduction of TiDB (Percona Live)
PingCAP
 
Cadence: The Only Workflow Platform You'll Ever Need
Cadence: The Only Workflow Platform You'll Ever NeedCadence: The Only Workflow Platform You'll Ever Need
Cadence: The Only Workflow Platform You'll Ever Need
Maxim Fateev
 

What's hot (20)

Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 Akka-demy (a.k.a. How to build stateful distributed systems) I/II Akka-demy (a.k.a. How to build stateful distributed systems) I/II
Akka-demy (a.k.a. How to build stateful distributed systems) I/II
 
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...
 
Introducing Arc: A Common Intermediate Language for Unified Batch and Stream...
Introducing Arc:  A Common Intermediate Language for Unified Batch and Stream...Introducing Arc:  A Common Intermediate Language for Unified Batch and Stream...
Introducing Arc: A Common Intermediate Language for Unified Batch and Stream...
 
The Newest in Session Types
The Newest in Session TypesThe Newest in Session Types
The Newest in Session Types
 
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland KuhnReactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
 
Spark Streaming into context
Spark Streaming into contextSpark Streaming into context
Spark Streaming into context
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processing
 
Journey into Reactive Streams and Akka Streams
Journey into Reactive Streams and Akka StreamsJourney into Reactive Streams and Akka Streams
Journey into Reactive Streams and Akka Streams
 
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje CrnjakJavantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
 
Rust in TiKV
Rust in TiKVRust in TiKV
Rust in TiKV
 
Improving Mobile Payments With Real time Spark
Improving Mobile Payments With Real time SparkImproving Mobile Payments With Real time Spark
Improving Mobile Payments With Real time Spark
 
Reactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive WayReactive Streams: Handling Data-Flow the Reactive Way
Reactive Streams: Handling Data-Flow the Reactive Way
 
Reactive Spring 5
Reactive Spring 5Reactive Spring 5
Reactive Spring 5
 
Spark and spark streaming internals
Spark and spark streaming internalsSpark and spark streaming internals
Spark and spark streaming internals
 
Reactive mistakes reactive nyc
Reactive mistakes   reactive nycReactive mistakes   reactive nyc
Reactive mistakes reactive nyc
 
Bootstrapping Microservices with Kafka, Akka and Spark
Bootstrapping Microservices with Kafka, Akka and SparkBootstrapping Microservices with Kafka, Akka and Spark
Bootstrapping Microservices with Kafka, Akka and Spark
 
Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
 
Event sourcing - what could possibly go wrong ? Devoxx PL 2021
Event sourcing  - what could possibly go wrong ? Devoxx PL 2021Event sourcing  - what could possibly go wrong ? Devoxx PL 2021
Event sourcing - what could possibly go wrong ? Devoxx PL 2021
 
A Brief Introduction of TiDB (Percona Live)
A Brief Introduction of TiDB (Percona Live)A Brief Introduction of TiDB (Percona Live)
A Brief Introduction of TiDB (Percona Live)
 
Cadence: The Only Workflow Platform You'll Ever Need
Cadence: The Only Workflow Platform You'll Ever NeedCadence: The Only Workflow Platform You'll Ever Need
Cadence: The Only Workflow Platform You'll Ever Need
 

Similar to Atomic Appends: Selling Cars and Coordinating Armies with Multiple Blockchains

Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
Araf Karsh Hamid
 
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
Frank Lyaruu
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
Java one2013
Java one2013Java one2013
Java one2013
Aleksei Kornev
 
Transactional writes to cloud storage with Eric Liang
Transactional writes to cloud storage with Eric LiangTransactional writes to cloud storage with Eric Liang
Transactional writes to cloud storage with Eric Liang
Databricks
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
Ambassador Labs
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
Amazon Web Services
 
High-Speed Reactive Microservices
High-Speed Reactive MicroservicesHigh-Speed Reactive Microservices
High-Speed Reactive Microservices
Rick Hightower
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
Brian Christner
 
GraphChain
GraphChainGraphChain
GraphChain
sopekmir
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
Peter Lawrey
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
Matt Lucas
 
Data for all: Empowering teams with scalable Shiny applications @ useR 2019
Data for all: Empowering teams with scalable Shiny applications @ useR 2019Data for all: Empowering teams with scalable Shiny applications @ useR 2019
Data for all: Empowering teams with scalable Shiny applications @ useR 2019
Ruan Pearce-Authers
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
RightScale
 
Building Conclave: a decentralized, real-time collaborative text editor
Building Conclave: a decentralized, real-time collaborative text editorBuilding Conclave: a decentralized, real-time collaborative text editor
Building Conclave: a decentralized, real-time collaborative text editor
Sun-Li Beatteay
 
Distributed Logging Architecture in the Container Era
Distributed Logging Architecture in the Container EraDistributed Logging Architecture in the Container Era
Distributed Logging Architecture in the Container Era
Glenn Davis
 
Distributed Logging Architecture in Container Era
Distributed Logging Architecture in Container EraDistributed Logging Architecture in Container Era
Distributed Logging Architecture in Container Era
SATOSHI TAGOMORI
 
Monoliths to the cloud!
Monoliths to the cloud!Monoliths to the cloud!
Monoliths to the cloud!
Luciano Mammino
 
Let's take the monolith to the cloud 🚀
Let's take the monolith to the cloud 🚀Let's take the monolith to the cloud 🚀
Let's take the monolith to the cloud 🚀
Luciano Mammino
 
Blockchain Experiments 1-11.pptx
Blockchain Experiments 1-11.pptxBlockchain Experiments 1-11.pptx
Blockchain Experiments 1-11.pptx
saiproject
 

Similar to Atomic Appends: Selling Cars and Coordinating Armies with Multiple Blockchains (20)

Enterprise Software Architecture styles
Enterprise Software Architecture stylesEnterprise Software Architecture styles
Enterprise Software Architecture styles
 
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
Java one2013
Java one2013Java one2013
Java one2013
 
Transactional writes to cloud storage with Eric Liang
Transactional writes to cloud storage with Eric LiangTransactional writes to cloud storage with Eric Liang
Transactional writes to cloud storage with Eric Liang
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
 
(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns(ARC309) Getting to Microservices: Cloud Architecture Patterns
(ARC309) Getting to Microservices: Cloud Architecture Patterns
 
High-Speed Reactive Microservices
High-Speed Reactive MicroservicesHigh-Speed Reactive Microservices
High-Speed Reactive Microservices
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
GraphChain
GraphChainGraphChain
GraphChain
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
 
Data for all: Empowering teams with scalable Shiny applications @ useR 2019
Data for all: Empowering teams with scalable Shiny applications @ useR 2019Data for all: Empowering teams with scalable Shiny applications @ useR 2019
Data for all: Empowering teams with scalable Shiny applications @ useR 2019
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
 
Building Conclave: a decentralized, real-time collaborative text editor
Building Conclave: a decentralized, real-time collaborative text editorBuilding Conclave: a decentralized, real-time collaborative text editor
Building Conclave: a decentralized, real-time collaborative text editor
 
Distributed Logging Architecture in the Container Era
Distributed Logging Architecture in the Container EraDistributed Logging Architecture in the Container Era
Distributed Logging Architecture in the Container Era
 
Distributed Logging Architecture in Container Era
Distributed Logging Architecture in Container EraDistributed Logging Architecture in Container Era
Distributed Logging Architecture in Container Era
 
Monoliths to the cloud!
Monoliths to the cloud!Monoliths to the cloud!
Monoliths to the cloud!
 
Let's take the monolith to the cloud 🚀
Let's take the monolith to the cloud 🚀Let's take the monolith to the cloud 🚀
Let's take the monolith to the cloud 🚀
 
Blockchain Experiments 1-11.pptx
Blockchain Experiments 1-11.pptxBlockchain Experiments 1-11.pptx
Blockchain Experiments 1-11.pptx
 

More from Facultad de Informática UCM

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?
Facultad de Informática UCM
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
Facultad de Informática UCM
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation Computers
Facultad de Informática UCM
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
Facultad de Informática UCM
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura Arm
Facultad de Informática UCM
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
Facultad de Informática UCM
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
Facultad de Informática UCM
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
Facultad de Informática UCM
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuro
Facultad de Informática UCM
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Facultad de Informática UCM
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Facultad de Informática UCM
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error Correction
Facultad de Informática UCM
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
Facultad de Informática UCM
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPC
Facultad de Informática UCM
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
Facultad de Informática UCM
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...
Facultad de Informática UCM
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Facultad de Informática UCM
 
Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?
Facultad de Informática UCM
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Facultad de Informática UCM
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore wind
Facultad de Informática UCM
 

More from Facultad de Informática UCM (20)

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation Computers
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura Arm
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuro
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error Correction
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPC
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
 
Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore wind
 

Recently uploaded

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
PreethaV16
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
Seetal Daas
 
Open Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surfaceOpen Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surface
Indrajeet sahu
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
PreethaV16
 
AI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdfAI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdf
mahaffeycheryld
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Massimo Talia
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
DharmaBanothu
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
q30122000
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Balvir Singh
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
DharmaBanothu
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
wafawafa52
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
vmspraneeth
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
Lubi Valves
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 

Recently uploaded (20)

ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
FULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back EndFULL STACK PROGRAMMING - Both Front End and Back End
FULL STACK PROGRAMMING - Both Front End and Back End
 
Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
 
Open Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surfaceOpen Channel Flow: fluid flow with a free surface
Open Channel Flow: fluid flow with a free surface
 
OOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming languageOOPS_Lab_Manual - programs using C++ programming language
OOPS_Lab_Manual - programs using C++ programming language
 
AI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdfAI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdf
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
 
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
A high-Speed Communication System is based on the Design of a Bi-NoC Router, ...
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Ericsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.pptEricsson LTE Throughput Troubleshooting Techniques.ppt
Ericsson LTE Throughput Troubleshooting Techniques.ppt
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 

Atomic Appends: Selling Cars and Coordinating Armies with Multiple Blockchains

  • 1. Antonio Fernandez Anta (IMDEA Networks Institute) Chryssis Georgiou (U. Cyprus) Nicolas Nicolaou (Algolysis LTD)
  • 2. • Block chains and cryptocurrencies may have the power to change society • But when experts are asked, they often get very technical about crypto, mining, smart contracts • Very often there is confusion between the coin and the blockchain that supports it • Some have specs [Ethereum Yellow Paper] while for others “the code is the spec”
  • 3. • But,  What is the service provided by all blockchains?  What are the properties a blockchain must satisfy?  What are the assumptions on the underlying “world” that are assumed? There is need for formalization [Herlihy’s Keynote at PODC 2017] and possibly use the decades of experience in DC
  • 4. • We contributed to this formalization defining the Distributed Ledger Object (DLO) [FGKN 2018]  Concurrent object that stores a totally ordered sequence of records: [r1, r2, r3, …, rn]  Clients can Append(r) a new record r or Get() the whole sequence of records (operations)  Start and end of an operation are matching events Distributed Ledger Object Client Client Append(r5) Get() AppendRes() GetRes([r1,r2,…,r5]) r1 r2 r3 r4 r5
  • 5. Validated Centralized DLO ( Valid() ) Init: S := [] Upon invocation Append(r) do if ((r not in S) and Valid(S+[r])) then S := S + [r] respond AppendRes() Upon invocation Get() do respond GetRes(S) Appends of the same record r are idempotent
  • 6. • Validity check before appending a record Validated Centralized DLO ( Valid() ) Init: S := [] Upon invocation Append(r) do if ((r not in S) and Valid(S+[r])) then S := S + [r] respond AppendRes() Upon invocation Get() do respond GetRes(S) Validation can check hash links, transaction correctness, and run Smart Contracts
  • 7. • We are interested in distributed implementations of DLO • A set of servers collaborate to provide the service and properties of a ledger Distributed Ledger Object Client Client Append(r) Get() AppendRes() GetRes([r1,r2,…]) ServerServer Server
  • 8. • There is a permutation σ of the operations of every execution of a DLO so that:  All records appended are seen in the same order by every client: Strong prefix [Anceaume et al., 2018]  Atomic consistency (linearizability): The order σ respects the execution order of the operations (“looks like” a centralized ledger) • In [FGKN 2018] and [CFGN 2019] we showed how to implement a linearizable DLO using a total order broadcast service when clients and servers can fail (crash or Byzantine)
  • 9. • A convergence to one single blockchain is very unlikely • Interconnection of blockchains is unavoidable • One of the simplest operation involving multiple blockchains is Atomic Swap
  • 10. • Two selfish clients A and B want to exchange goods • A has to transfer some good G(A) to B in blockchain DLOA • B has to transfer another good G(B) to A in blockchain DLOB • If any of them backs off, no transfer occurs Client A Client B
  • 11. • From [Narayanan et al 2016] [TierNolan 2013]: Client A Client B Put G(A) in escrow If (by time 2T, a value x is revealed: Hash(x)=Y) then Transfer G(A) to B else Release G(A) R Y=Hash(R) Put G(B) in escrow If (by time T, a value x is revealed: Hash(x)=Y) then Transfer G(B) to A else Release G(B) R R DLOA DLOB
  • 12. • Interledger [interledger.org] is a system that uses connectors, escrows, and hashlocks to propagate currency transfers across multiple blockchains Source: Interledger Video https://www.youtube.com/watch?v=UdCxrqP6w3I
  • 13. • [Herlihy 2018] generalizes this algorithm (and hashlocks) to the case in which the transfers form a strongly connected directed graph
  • 14. • Clients A and B • Client A has record RA to be appended to DLOA • Client B has record RB to be appended to DLOB • Algorithm P solves the Atomic Appends Problem if  Safety: Either both records are appended or none  Liveness: If A and B do not fail, both records are appended Client A Client B RA RB
  • 15. • We assume clients A and B rational but risk-averse • In the Competitive Utility Model, UX(only Y appends) > UX(both append) > > UX(none appends) > UX(only X appends) Client A Client B
  • 16. • The Nash equilibrium is not appending • Atomic Swap is an instance of Competitive Atomic Appends Append No Append ( , ) ( - , ) No ( , - ) ( , )
  • 17. • Consider the Coordinated Attack problem • In the Collaborative Utility Model, UX(both append) > UX(none appends) > UX(only Y appends) > UX(only X appends)
  • 18. • In a failure-free system, both clients simply append A B RB DLOA DLOB RA RA RB RA RB
  • 19. • Assume that clients can only append in their respective DLO (no delegation) • Theorem: If clients can crash, Collaborative Atomic Appends cannot be solved, even in a synchronous system RB DLOA DLOB RA RA RB RA RB Time t Time t’ ≥ t Correct Execution E: Liveness
  • 20. • Assume that clients can only append in their respective DLO (no delegation) • Theorem: If clients can crash, Collaborative Atomic Appends cannot be solved, even in a synchronous system DLOA DLOB RA RA RB RA Time t Faulty Execution E’: No Safety Time t’
  • 21. • Let us now assume that delegation is possible (i.e., both clients can append in both DLOs) • Algorithm A for an asynchronous system with delegation and one crash: Each client X does  Send own record RX to the other client  Wait until record RY is received  Append record RX  Append record RY
  • 22. • Theorem: Algorithm A solves Collaborative Atomic Appends with delegation if at most one client crashes RB DLOA DLOB RA RA RB RA RB RB RB RA RA
  • 23. • Theorem: Algorithm A solves Collaborative Atomic Appends with delegation if at most one client crashes RB DLOA DLOB RA RA RB RA RB RB
  • 24. • Theorem: Algorithm A solves Collaborative Atomic Appends with delegation if at most one client crashes DLOA DLOB RA RB Waits forever!!
  • 25. • Theorem: If both clients can crash, the problem cannot be solved, even with delegation and synchrony DLOA DLOB RA RA RB RA Time t Faulty Execution E’: No safety Time t’ RB
  • 26. • Delegating in each other is not enough if both clients can crash • Can we do something else? • We propose using a “Smart DLO” (SDLO) to collect the append requests and ultimately execute them:  Each client appends to the SDLO its description of the atomic append: e.g. [A, {A,B}, RA]  When all required descriptions are appended in the SDLO, the SDLO appends in the corresponding DLOs
  • 28. • Solves the problem even if both clients can crash and the system is asynchronous • Works for any number of clients: k-Atomic Appends • Can be used for Competitive Atomic Appends • Assumes that the SDLO has functionality (a smart contract) that implements the algorithm • The SDLO needs capacity of issuing Append() operations
  • 29. • The SDLO is not a real entity: implemented with multiple servers • Must be able of appending in other DLOs!! SDLO ServerServer Server RB DLOB
  • 30. • Cosmos: With a central blockchain (Hub) Source: Cosmos Video
  • 31. • Tradecoin [Hardjono et al 2018]: Gateways connect blockchains
  • 32. • Isolated DLOs are not extremely useful • Interconnection and interoperability between DLOs is needed • We propose the Atomic Append problem, that already shows the challenges of interconnecting DLOs • Collaborative Atomic Appends: No crash 1 crash 2 crashes No delegation YES NO NO Delegation YES YES NO Smart DLO YES YES YES Works also for k clients and Competitive Atomic Appends
  • 33. • Explore all variants of Atomic Appends under different utility models • Define Atomic Append as a native operation in a multi-ledger system:  CreateLedger(L,Valid())  Append(L,r)  Get(L)  AtomicAppend( (L1,r1), (L2,r2), …) • Implement DLOs that can access other DLOs  Read the records  Append records
  • 34. • Design algorithms to implement Smart DLOs. Do we really need consensus? (Atomic Append descriptions do not need to be totally ordered) A B RB DLOA DLOB A SDLO A, {A,B}, RA RA B, {A,B}, RBB
  • 35. • Cryptocurrencies can be implemented without consensus [Gerraoui et al. PODC 2019] (A,4) (D,1)6 (C,1)3 A B (E,3) DLOA DLOB (B,2) (B,2) (E,3) 3-1+4=6 6-4-1=1 6-4-1+2=3 6-4-1+2-3=0 (E,3)