SlideShare a Scribd company logo
1 of 36
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

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
 
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
 

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

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

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

Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 

Recently uploaded (20)

Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 

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)