You are on page 1of 11

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/344678572

Towards Cross-Blockchain Smart Contracts

Preprint · October 2020

CITATIONS READS
0 38

4 authors, including:

Emanuel Sallinger Stefan Schulte


TU Wien TU Wien
44 PUBLICATIONS   206 CITATIONS    154 PUBLICATIONS   1,922 CITATIONS   

SEE PROFILE SEE PROFILE

Michael Borkowski
German Aerospace Center (DLR)
31 PUBLICATIONS   352 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

TAST - Token Atomic Swap Technology View project

Audit4SOAs View project

All content following this page was uploaded by Stefan Schulte on 16 November 2020.

The user has requested enhancement of the downloaded file.


Towards Cross-Blockchain Smart Contracts
Markus Nissl Emanuel Sallinger
mnissl@dbai.tuwien.ac.at sallinger@dbai.tuwien.ac.at
Database and Artificial Intelligence Group Database and Artificial Intelligence Group
TU Wien TU Wien
Vienna, Austria Vienna, Austria

Stefan Schulte Michael Borkowski


s.schulte@dsg.tuwien.ac.at michael.borkowski@dlr.de
Distributed Systems Group Institute of Flight Guidance
arXiv:2010.07352v1 [cs.CR] 14 Oct 2020

TU Wien German Aerospace Center (DLR)


Vienna, Austria Brunswick, Germany

ABSTRACT One particular approach to mitigate these issues is to achieve


In recent years, manifold blockchain protocols have been proposed interoperability by allowing blockchains to interact with each
by researchers and industrial companies alike. This has led to a other [4, 30]. For instance, atomic swaps [15, 33] can be applied in
very heterogeneous blockchain landscape. Accordingly, it would order to provide interoperability on the level of token exchange
be desirable if blockchains could interact with each other. How- without the need of a trusted third party, i.e., a cryptocurrency mar-
ever, current blockchain technologies offer only limited support for ketplace. However, even with different proposals for atomic swaps
interoperability, thus preventing tokens or smart contracts from in place today, the basic problem of blockchain interoperability,
leaving the scope of a particular blockchain. i.e., that transactions processed in one blockchain never leave the
As a first step towards a solution for cross-chain smart contract ecosystem of the particular blockchain, is not solved.
interactions, we introduce a framework which allows to invoke This basic characteristic of blockchains also prevents smart con-
a smart contract from another blockchain. We offer support for tracts from being called in a cross-chain manner, e.g., it is not
continuing a smart contract after receiving a result from a differ- possible that a smart contract running on a source chain can call a
ent blockchain, and for calling smart contracts recursively across smart contract on a target chain, receive the result from the contract
blockchains. We provide a reference implementation for Ethereum- call, and then continue its enactment on the source chain, using
based blockchains using Solidity and evaluate the performance this result [28]. As a consequence, companies seeking to interact
regarding time and cost overheads. with each other using smart contracts have to agree on a given
blockchain in the first place, and changing this choice of technology
KEYWORDS afterwards can incur significant costs.
For instance, blockchains and especially smart contracts have
Blockchain, Smart Contracts, Interoperability
been frequently named as facilitators of future supply chain pro-
cesses, e.g., [5, 19, 24]. In such a scenario, blockchains are used
1 INTRODUCTION to store data about the progress within a supply chain, and smart
Since the advent of Bitcoin [22], blockchains have received signif- contracts can be used to automatically execute payments or to
icant attention by the industry and by research groups [36]. The take over the duties of a clearing house. In a fixed setting, the
manifold activities within the community have led to substantial companies involved in a supply chain may agree on a particular
progress in the blockchain realm: While Bitcoin only has limited blockchain technology and then simply use it without the need for
features, novel blockchain implementations which provide more further changes. However, if another company utilizing a different
sophisticated functionalities arise continually. These technological blockchain technology is added to a supply chain, the newcomer has
advances improve the cryptocurrency itself, e.g., by adding multi- to adapt its existing system and smart contracts for the blockchain
signature support to Bitcoin, or by creating forks, which adapt technology used by the supply chain in order to participate. It would
some parts of the code base, e.g., Litecoin[20], use cryptocurrency be preferable if the new company’s system and smart contracts
technology as a protocol layer and add new layers on top of it, like were interoperable with the original blockchain technology used
OmniLayer [1] or the Lightning Network [25], or create completely by the incumbent supply chain stakeholders.
new cryptocurrencies with novel concepts, such as smart contracts, The missing interoperability between today’s blockchain tech-
which are well known, e.g., from Ethereum [6, 13]. nologies may even prohibit technical progress: Choosing novel
As a result, today’s blockchain landscape is heavily fragment- blockchain technologies enables users to utilize new features and to
ed [35]. This makes it very difficult for developers and researchers to take advantage of state-of-the-art technology. However, if selecting
track the progress of blockchains and to choose the most promising a new blockchain technology comprises that all necessary data and
technologies. This is further complicated by the fact that blockchains smart contracts need to be ported from a formerly used blockchain
are not compatible with each other, i.e., once a company or research to a new one, users might refrain from testing new technologies,
group has selected a blockchain for an application, it is locked-in even if this means that novel features remain unavailable [6].
to this particular technology [28].
Markus Nissl, Emanuel Sallinger, Stefan Schulte, and Michael Borkowski

Therefore, within the work at hand, we propose a framework Instead, during the execution of a smart contract, the events issued
for invoking smart contracts across blockchains. The presented from a smart contract from a different chain can be accessed.
approach handles the passing of parameters and return values be- Liu et al. present HyperService, which facilitates the develop-
tween different blockchains, offers scalability, and allows recursive ment of decentralized applications which are executable across the
smart contract calls. We implement our solution for Ethereum-based boundaries of different blockchains [21]. Interaction with other
blockchains and Solidity, but have explicitly foreseen the extension blockchains is done via relays. Notably, the authors provide a
to other blockchain protocols and smart contract languages. blockchain-neutral state model and a high-level programming lan-
The contributions of this paper are as follows: guage which can be used to develop cross-chain decentralized
• We present a framework for cross-chain smart contract invo- applications. Smart contracts written in different programming
cations. This includes a high-level generic workflow, and the languages can be orchestrated using a program defined in this
description of low-level choices for implementing this work- high-level programming language. In contrast, we allow the di-
flow, giving options for the different phases of the workflow. rect invocation of smart contracts without the need to orchestrate
• We provide an open-source reference implementation in them. Also, while we apply a validator-based approach to check
Solidity and evaluate the performance regarding cost and the correctness of cross-blockchain smart contract invocations (see
time overheads. Section 3), HyperService makes use of an additional “blockchain
of blockchains” which consolidates the finalized transactions of
The remainder of this paper is structured as follows. In Section 2, all participating blockchains and allows to prove actions during
we discuss the current state-of-the-art in blockchain interoperabil- cross-chain executions. Nevertheless, HyperService comes closest
ity. Afterwards, we present our framework for cross-chain smart to the work at hand.
contracts in Section 3, followed by discussions in Section 4 and an Fynn et al. [14] follow a distinct approach to blockchain interop-
extension of our framework in Section 5. The evaluation is provided erability by providing the means to migrate a smart contract from
in Section 6. Finally, Section 7 concludes and summarizes this paper. one blockchain to another. While this is an interesting approach, the
authors do not regard that smart contracts on different blockchains
2 RELATED WORK may interact with each other.
Still, the number of solutions aiming at cross-blockchain smart Qiu et al.[26] present ChainIDE, which is an IDE specifically
contract interactions is quite small. Nevertheless, there are a number aiming at smart contract developer support. Among other aspects,
of studies which are related to the approach presented in the work the authors also discuss the need to support developers when imple-
at hand: menting smart contracts for different blockchain protocols. How-
In an early discussion of the topic, Buterin [7] presents three ever, interactions between smart contracts running on different
main approaches for blockchain interoperability, namely (i) notary blockchains are not regarded.
schemes, where a trusted group claims on chain B that a given In general, the related work primarily focuses on transferring
event on chain A occurred, (ii) sidechains, where chain B can read tokens from one blockchain to another. For instance, Metronome[2]
chain A via a relay, and (iii) hash-locking, where a secret is hashed proposes an import/export system for transferring tokens between
by party A and the hash is then published on chain A by party A two blockchains. For this, a user has to “destroy” the tokens on the
and on chain B by party B. Thus, when party A reveals the secret source chain to gain a proof-of-exit receipt, which can be used on
to claim the tokens on chain B, party B learns the secret so that the target chain to reclaim the tokens. For this, Metronome utilizes
party B can claim the tokens on chain A. The author discusses that validators, which verify whether the receipt is correct or not.
hash-locking is not sufficient to achieve portability of any asset Borkowski et al. discuss the Deterministic Cross-Blockchain To-
such as smart contracts, while the main difference between notary ken Transfers (DeXTT) protocol [6]. DeXTT allows to synchronize
schemes and sidechains is their trust model: For the former, the token balances across an arbitrary number of chains. Thus, DeXTT
majority of notaries have to behave honestly, while the latter does ensures that tokens remain available even if one of the chains is not
not allow sidechains to fail or suffer from “51% attacks”. As we will operating any longer. For this, the DeXTT protocol utilizes interme-
discuss in Section 3, we also use a notary scheme in our proposed diaries, called witnesses, which verify and broadcast transactions
framework. to all participating blockchains.
Jin et al. [18] focus on blockchain interoperability in general by Cosmos [29] uses a blockchain, called hub, which is connected
discussing five challenges, namely atomicity, efficiency, security, to independent blockchains, called zones, to transfer tokens as
diversification tolerance and developer friendliness, and propose packets between zones through an inter-blockchain communication
an event monitor to improve the performance of sidechains. In protocol. In this approach, the receiving chain has to prove a packet
addition, the authors state that the biggest problem of cross-chain by keeping track of the block headers of the sender chain.
smart contracts is to connect the runtime environments of two Polkadot [32] uses a relay chain to distribute transactions to mul-
blockchains. Unfortunately, no solution for cross-chain smart con- tiple “worker chains” called parachains, which process the transac-
tracts is provided. tions in parallel. The solution allows to include external blockchains
Ion [9] is a work-in-progress implementation of a sidechain to like Ethereum via bridges. For this, validators forward transactions
transfer a particular state from one blockchain to another. The to the external blockchains, and blockchain-specific properties such
authors focus on validating the state so that it can be used on a as events and Merkle proofs back to Polkadot. The validity of a
different blockchain during the transaction. However, this concept block is proven by two-thirds majority and by challenges that can
does not allow to execute a smart contract of a different blockchain. be submitted after the vote in a certain time period to prove the
Towards Cross-Blockchain Smart Contracts

6B. Finalize
invalidity of the header data of a block. At the moment, only a Source Chain 5B. Vote Target Chain
high-level description of Polkadot’s functionalities is provided, i.e., Validator

5A. Observe
the planned Polkadot network is not yet launched. The Polkadot Caller Callee
documentation states that it is planned to not only support token
1. Register 3B. Invoke
transfers, but also other types of blockchain interoperability, but so Distribution Invocation
2. Make Offer 4A. Observe
far, it has not been announced how this could be achieved. Contract Contract
4B. Publish Intermediary
Interledger [17] provides a protocol for routing payments, e.g., to-
6A. Finalize 3A. Execute
kens or fiat currency, between different payment networks, e.g.,
blockchains. For this, two parties establish a payment channel off-
chain and exchange token claims, which are published after a pre- Figure 1: Interactions between caller, distribution contract,
determined time on an on-chain network for distributing the funds intermediary, invocation contract, callee and validator
appropriately between the involved parties.
The approaches discussed so far aim at token transfers. In con-
trast, atomic swaps [15, 33] aim to exchange tokens between two intermediaries, who play the role of brokers and transfer informa-
(or more) blockchains without the need for a trusted third party. tion between the source and the target chain, and the validators,
Here, no token transfers take place, since the tokens remain on the who validate the information passed by the intermediaries.
respective blockchains, while their ownership changes. For this, a
combination of hash-locks (see above) and time-locks is applied. 3.2 Overview
Cross-chain deals extend this feature to asset transfers between Figure 1 summarizes the workflow of a cross-chain smart contract
users [16]. interaction following our approach. Similar to recent literature
Recently, some further approaches to cross-blockchain transac- on cross-token projects, e.g., [2, 6, 32], our work follows a broker-
tions have been proposed, e.g., [31, 34]. While such approaches based approach, i.e., third parties are used to interconnect the source
provide important insights on how to realize (ACID) transactions and the target chains. We have chosen this approach in order to
across two or more blockchains, they do not implicitly aim at smart provide a simple way to call a contract account on the target chain.
contract interoperability across different blockchains. This would not be possible by using only a relay chain, since each
As it can be seen from the discussion, only very few approaches transaction then would have to be started by an external account.
aiming at blockchain interoperability have been presented so far.
The overall workflow consists of the following phases:
Especially, smart contract interoperability has – with the notable
exception of HyperService – primarily been discussed on a concep- (1) Register phase. In order to invoke a contract on the target
tual level, i.e., there is a lack of concrete frameworks and protocols chain, the caller registers the invocation at the distribution
for addressing this challenge. contract on the source chain. The distribution contract saves
the metadata of the call, e.g., which blockchain is the tar-
get chain, and which parameters are provided to the callee,
3 CROSS-CHAIN SMART CONTRACT and announces the metadata via an event to the interme-
INVOCATIONS diaries. An event informs listening applications about the
In this section, we introduce our framework for cross-chain smart current state of the contract. Such events are stored with its
contract interactions. For this, we first define the basic terminology arguments for example by using the logging functionality
used within this paper (Section 3.1). In Section 3.2, we discuss the of the blockchain and can therefore be inaccessible within
different phases which occur in cross-chain smart contract interac- contracts. The distribution contract manages the complete
tion. In Sections 3.3 through 3.8, we then present these phases in process of the cross-chain interaction. In contrast, the invo-
detail. cation contract on the target chain is required to save the
return values, since these values are not observable by an
external account, i.e., an account hosted on the source chain
3.1 Terminology (see Section 3.3).
Cross-chain smart contract interactions are based on the assump- (2) Offer phase. As pointed out above, intermediaries are used
tion that a user or smart contract calls a function of an account on a to broker information between the source and the target
different blockchain and potentially receives a response (e.g., some chain, i.e., between the distribution contract and the invo-
return values) from the called account. We denominate the calling cation contract. An intermediary is a third party which has
entity as the caller, while the account which is called is the callee. accounts on both blockchains and can interact with both
The source chain contains the account of the caller, while the target technologies by listening for state changes, e.g., events, and
chain contains the account of the callee. publishing transactions. Once a register event has been pub-
As we will discuss in the following sections, in our approach, two lished, parties can make an offer to become the intermediary
smart contracts are needed to enable smart contract interactions, for a particular cross-chain smart contract interaction. Par-
i.e., to call a method on a target chain, and to return the results ties are monetarily incentivized to become an intermediary
to the caller: The distribution contract on the source chain and the (see Section 3.4).
invocation contract on the target chain. Apart from the caller and (3) Execution phase. Once an intermediary has been selected,
the callee, further users are involved in our scenario, namely the it can execute the transaction on the target chain. This is
Markus Nissl, Emanuel Sallinger, Stefan Schulte, and Michael Borkowski

done through the invocation contract, which in turn invokes in a cross-chain setting, information is necessary on which chain
the callee (see Section 3.5). the invocation should take place. For this, we add an additional
(4) Forwarding phase. After the smart contract on the target blockchain identifier to the invocation information. As is the case
chain has been invoked, the intermediary observes the blocks in intra-chain settings, the identification data for a smart contract,
on the target chain in order to extract the results of the i.e., (i)-(iii) plus the additional blockchain identifier needs to be
smart contract invocation. The intermediary takes the results provided by the caller.
from the target chain and publishes them by invoking the Function-specific data, i.e., the startgas (iv) also needs to be
distribution contract on the source chain. Thus, the data is provided by the caller. However, it should be noted that function-
now available on the source chain and therefore to the caller specific data depends on the behavior of the called smart contract
(see Section 3.6). and the used parameters. This data cannot be estimated without
(5) Verification phase. In order to avoid that the caller uses knowing the logic of the smart contract. As in intra-chain settings,
incorrectly published data on the source chain, the return this data needs to be defined by the caller as well. Finally, target
values have to be approved. Therefore, validators observe chain-specific data (v)-(vi) needs to be defined. In our current ap-
both the results of the invocation on the target chain and proach, we focus on smart contract interactions and therefore omit
the published return values on the source chain. In order token transfers.
to come to a conclusion whether the published values are Finally, target chain-specific data (v)-(vi) needs to be defined.
correct or not, the validators vote on their correctness (see In our current approach, we focus on smart contract interactions
Section 3.7). and therefore omit token transfers. For the definition of the gas
(6) Finalization phase. In case of a positive vote, the transac- price, various possibilities exist, which we discuss in the following
tion is finalized by the intermediary, otherwise by the valida- paragraphs:
tor. In this step, an honest intermediary and the validators Caller sets Gas. The caller determines the gas price of the target
get a reward for their participation (see Section 3.8). chain when registering the transaction. Usually, the gas price of the
The discussion of the following phases focuses on Ethereum-based target chain depends on the workload of the blockchain and is there-
smart contracts. This is to keep discussion based on one concrete fore a dynamic value which has to be determined per registration.
case, and since different concepts in the handling of transaction Since the caller may not have access to the dynamic information
costs and interactions with smart contracts have to be discussed about the target chain, e.g., contract-based accounts, this approach
individually per blockchain. However, these individual concepts should not be used in cross-chain invocations.
do not have any direct consequences on the basic workflow of our Contract sets Gas Price. As a second possibility, the distribution
approach. We discuss in Section 4.4 how our work can be ported to or the invocation contract can be used to store and manage the
other blockchains protocols. gas price, which is then used by the intermediary for the transac-
tion. In order to adjust the price to the current workload of the
3.3 Register Phase blockchain, participants (e.g., caller, validator, intermediary) can
On a local chain, a smart contract invocation requires the defini- vote on a change in the gas price. However, this requires a large
tion of (i) the address of the contract, (ii) the method to be called, number of additional transactions to continuously adjust the gas
(iii) the parameter values of the method, (iv) a maximum number of price in the contracts and is therefore not suitable.
computational steps (startgas), (v) the gas price per computational Intermediary sets Gas. Per se, the intermediary has access to both
step (gasprice), and (vi) the amount of tokens to be transferred to blockchains. Therefore, it is aware of the current gas price of the
the callee [13]. target chain. In order for the caller to pay the transaction costs on
Traditionally, a smart contract can be called only within its own the target chain, the gas price must be converted by the potential
chain. For cross-chain smart contract interactions, this means that intermediary from the target chain to the source chain using an
a caller on the source chain cannot call a smart contract on a target exchange rate. However, the intermediary aims for profit and since
chain directly. Hence, we have to transfer and adapt the discussed there would be no control institution that can verify, without con-
requirements for cross-chain smart contract invocations. sensus finding, whether the chosen exchange rate is acceptable, the
As mentioned in Section 3.2, we use intermediaries to invoke intermediary will set the gas price to a maximum value, so that a
a smart contract on the target chain. Therefore, we have to an- large amount of gas of the caller is used.
nounce a cross-chain smart contract call with the required data, Gas Price Competition. As it can be seen, the possibilities to choose
i.e., (i)-(vi), to potential intermediaries. While the data can be trans- the gas price discussed so-far have individual weaknesses. There-
ferred off-chain or on-chain to the potential intermediaries, we use fore, we implement a different solution, which we call the Gas Price
the already provided infrastructure by the blockchain and publish Competition.
the data directly on the source chain. For this, we implement the Following this approach, instead of letting an intermediary set
distribution contract, which assigns each registration a unique in- the gas price directly, the potential intermediaries propose a gas
vocation id, accepts all relevant parameters (described in the next price in the currency of the source chain during the offer phase
paragraphs), stores them and announces an event for the potential (see Section 3.4). This leads to a competition for the lowest offer, as
intermediaries. the candidate with the lowest gas price wins the competition and
For the cross-chain invocation of a smart contract, the above therefore becomes the current intermediary. On the one hand, the
mentioned definitions (i)-(vi) need to be extended. Most importantly, respective intermediary itself has to ensure that the ratio between
Towards Cross-Blockchain Smart Contracts

the gas price submitted in the offer on the source chain and the ac- distribution contract, and the winner is selected implicitly without
tual gas price on the target chain is not below the current exchange any additional transaction. In case that no offer has been submitted
rate, since otherwise the offer is not lucrative for the intermediary, in time, an additional handling is required to return the deposited
but on the other hand if the ratio is higher, more profit can be made. tokens to the caller. For this, we suggest to abort the cross-chain
Due to the competition between the potential intermediaries, it can call and directly jump to the finalization phase, where the call has
be expected that the value settles to the exchange value. However, to be finalized by the caller (see Section 3.8).
if there is no competition between the potential intermediaries, or The time-based approach can be combined with the random-
they find a way to fix a gas price among themselves, the caller needs based one by using soft limits or hard limits, i.e., the offer phase
to be protected against excessive gas prices. For this, we allow the remains active at least until the soft limit, it can randomly end be-
definition of a maximum gas price. tween the soft and the hard limit and will definitely end at the hard
As is the case in intra-chain settings, the caller also has to pay limit. While this may increase the incentives for submitting better
a transaction fee for the invocation of smart contracts on a target offers, there is no technical advantage. It increases the complexity
chain. In addition, the intermediary and the validators have to be and loses the deterministic properties.
monetarily rewarded in order to incentivize them to participate. For As mentioned, the winner of the offer phase is determined based
paying these fees, the caller has to deposit tokens at the distribution on the lowest submitted gas price. In the case of a tie, we make
contract. This deposition needs to take place during the register use of an algorithm introduced in DeXTT [6], where the winner
phase. Else, there is a risk that the caller will not pay the fees to is determined on the basis of the lowest hash value, consisting
the intermediary and the validators after the invocation has taken of the invocation id, the address of the intermediary, and the gas
place. price. This guarantees that the winner is selected in a determin-
The minimum amount of tokens to be deposited can be calculated istic way without any additional transaction and does not favor
by intermediaries with a faster network connection.
max gas price · startgas + fees ≤ deposited tokens
To summarize the register phase, the caller registers the cross-chain 3.5 Execution Phase
smart contract invocation with the identification data (i-iii) plus
the identifier of the target chain, a startgas (iv), and a maximum gas Once an intermediary has won the offer, it has to process the smart
price, and deposits tokens at the distribution contract for paying contract call on the target chain. For this, the intermediary submits
transaction data and rewards. The actual gas price (v) is proposed the data received from the distribution contract on the source chain
by the potential intermediaries during the offer phase (see below). to the invocation contract on the target chain, which forwards the
transaction to the callee. The invocation contract is required for
3.4 Offer Phase two reasons: First, an external account cannot receive the return
values of a function call, hence a contract has to store it. Second, the
After the caller has registered its cross-chain smart contract call
invocation contract simplifies the access of the parameters during
at the distribution contract, the latter publishes an event on the
the verification process of the validators, which is discussed in
source chain, announcing the begin of the offer phase. Potential
detail in Section 3.7.
intermediaries listen for each retrieved block of the source chain
Apart from storing the input and output data, the invocation
for such events and will submit zero or more offers regarding an
contract assigns each execution a unique execution id for tracking
event to the distribution contract. As pointed out in the previous
purposes and manages the execution status. This is important for
section, the submitted offers have to include a gas price, which is
extended functionality, such as recursive cross-chain invocations,
used at the end of the offer phase to determine the winner of the
which are discussed in Section 5.
competition.
Note that in this step the intermediary has to pay the transaction
There exist various possibilities to end the offer phase, which
costs in advance and will get them reimbursed in the finalization
we discuss in the following paragraphs.
phase (see Section 3.8). Otherwise, transaction costs could be col-
Caller-based. The caller sends a transaction to end the offer phase. lected without following the next phases to steal the tokens from
This has the advantage that the caller decides whether the proposed the caller.
offer meets its wishes. However, if the caller itself is a smart contract,
it cannot send the transaction without being invoked by an external
account. Therefore, this option is not investigated further. 3.6 Forwarding Phase
Random-based. The phase ends pseudo-randomly after an offer has After the smart contract invocation on the target chain has been
been submitted, either by using insecure blockchain parameters successfully processed, the intermediary has to forward the re-
or external services [27]. In the worst case, either the offer phase turn values to the source chain. For this purpose, the intermediary
never ends because the condition is not fulfilled or the phase can observes the blockchain and waits for an event announcing the
end after the first offer, which prevents an offer competition. This completion of the call. Once such an event is observed, the inter-
approach is not suitable for time-critical calls where a maximum mediary extracts the return values from the invocation contract
duration needs to be guaranteed. and publishes it on the distribution contract of the source chain by
Time-based. In order to guarantee a maximum execution time, we passing the value as argument of a function.
suggest to use a time-based approach, where the offer phase ends Although the value is now available on the source chain and can
after a predefined time, e.g., defined by the caller or chosen by the be used by the caller, it is not guaranteed that the value is correct.
Markus Nissl, Emanuel Sallinger, Stefan Schulte, and Michael Borkowski

For example, the intermediary could publish random data without As mentioned in Section 3.4, if no offer has been submitted, the
interacting with the invocation contract at all. call has to be finalized as well so that the deposited tokens are
released to the caller. Since there is no voting and no cross-chain
3.7 Verification Phase execution, neither the intermediary nor the validator will finalize
the cross-chain call because they receive no reward. Therefore, only
To avoid that the intermediary publishes (and subsequently the
the caller will most likely execute this function in order to get its
caller uses) incorrect data, the result published by the intermediary
deposit back.
is verified for correctness. For this purpose, validators are used
Upon completion of this phase, the caller can access the sta-
which compare the data stored in the distribution contract of the
tus and the returned value by providing the invocation id to the
source chain with the data stored in the invocation contract of the
distribution contract.
target chain. This data includes:
• Execution of the correct callee (blockchain identifier, address, 4 DISCUSSION
method, parameters) In this section, we discuss misbehavior, i.e., what is done in case an
• Publication of the correct result (status, value) from the cor- intermediary is behaving in a malicious way (see Section 4.1), the
rect transaction (invocation id, execution id) voting mechanism necessary for result verification and misbehavior
• Correct execution boundaries (startgas, actual “steps”) detection (see Section 4.2), how the intermediaries and validators
In order to determine whether the cross-chain call was correct, the can be selected (see Section 4.3), and how this approach can be
validators vote among three different outcomes: (i) the call was applied to further blockchain protocols (see Section 4.4).
invalid, (ii) the call was valid and (iii) the call was valid, but the
actual number of “steps” does not match, i.e., the intermediary 4.1 Penalizing Misbehavior
submitted more steps than were actually needed. The third option One particular case of misbehavior occurs when the intermediary
is introduced to avoid resubmitting the complete transaction if the gives up its reward and does not execute the transaction in its
transaction was executed correctly but the intermediary cheats entirety. Then, the deposit of the caller would be locked forever. To
on the number of computational steps in order to receive more solve this problem, two aspects have to be considered: First, the
tokens. These “step votes” are not done separately, but are part of decision to give up the reward should be penalized and second, the
the normal voting procedure. tokens have to be released to the caller.
As in the offer phase, the voting ends after a predefined time. Penalty fees for intermediary. To penalize the non-execution of a
Then, the positive (call valid) and negative (call invalid) votes are cross-chain smart contract call, we suggest that intermediaries have
compared. If the vote is positive, the “step votes” are compared. to deposit tokens in a depot with which the misbehavior can be
The reward is distributed to only one validator among the partic- compensated. A pre-defined amount of tokens are locked from
ipants in the winning group. Similar to the offer phase, the winner the deposit on submission of an offer and become available for
is chosen by selecting the validator with the lowest hash, which is further use once the cross-chain call has reached the final state or a
for this purpose defined as the hash of the unique voting id and the better offer has been made. Thus, the more tokens an intermediary
validator address. For a complete discussion on the deterministic deposits, the more cross-chain transactions can be executed in
selection of the reward recipient, we refer to [6]. parallel.
Each time the intermediary does not execute the transaction, the
3.8 Finalization Phase locked tokens are used to pay a penalty for violating the “execution
After result verification is completed, the cross-chain smart contract contract”. Therefore, we suggest as a minimum the same amount
call waits for finalization on the distribution contract. Finalization of tokens as fees for the intermediary as the deposited fees by
marks the call as completed and distributes the rewards. the caller. Thus, the intermediary could pay as a penalty the same
Depending on the voting result, the tokens are distributed dif- amount of tokens for the validation process (see next paragraph)
ferently: If the voting result is negative or the comparison of the and to the caller for its misbehavior (reversal of reward).
computational steps failed, the entire transaction value with the Release locked tokens. In order to release the locked tokens to the
exception of the result verification reward is reimbursed to the caller, a method for detecting misbehavior has to be defined. For
caller. This means that the intermediary only receives the reward this, we propose a combination of a time-based and a voting-based
and gets reimbursed the transaction costs if its behavior was honest detection method to protect against misuse of voting attempts.
over the whole execution and it has not tried to cheat the system. Thus, voting can only be started after a certain period of time. For
Therefore, it is likely that the caller or the validators will finalize example, this could be a fixed time period (e.g., one week), a fixed
the invocation due to their respective incentives. amount of blocks (e.g., 40,000), or be explicitly defined by the caller.
If the voting result is positive, the intermediary gets reimbursed In this period of time, the intermediary should have enough time
the transaction cost plus its reward, the winning validator of the to publish the result, or in case of a recursive cross-chain call (see
voting will receive its reward and the remaining tokens will be Section 5), to register the status of the transaction on the source
refunded to the caller. Since the intermediary receives most of the chain so that validators can observe if the cross-chain call is still in
tokens, it is assumed that the transaction will be executed by the process. After this time span, each validator can start to vote for a
intermediary, although it can be called by anyone else, such as the fraudulent cross-chain call, i.e., a call that has not been (completely)
caller or the validator. processed by the intermediary.
Towards Cross-Blockchain Smart Contracts

To encourage validators to participate in the voting, a voting While we support multiple validators to be part of one cross-
reward is paid with the same distribution criteria as in Section 3.7. blockchain call, we have limited the transaction execution to only
However, this time the fee is either paid by the intermediary (if the one intermediary. Initially, this could be considered to be a disad-
intermediary is dishonest) or by the voting initiator (if the voting vantage due to decentralization aspects, but indeed, this approach
initiator is dishonest). Therefore, the validator has to deposit tokens features several advantages: First, transaction execution by multiple
similar to the intermediary before starting this voting. This has the intermediaries would lead to a linear increase in gas costs. Since
positive side effect of a “protective charge”, i.e., that validators will transactions can become very expensive, the caller must either re-
usually avoid to start invalid votings. imburse the transaction costs to all intermediaries, which is a cost
exposure for the caller, or the intermediaries do not get the trans-
4.2 Voting Mechanism action refunded which will lower the number of participants in the
process/offering phase. Second, some transactions return different
As mentioned in Section 3.7, we discuss the voting mechanism of
values per execution. For example, we assume a fictional scenario
our framework in this section. For both votings (result verifica-
where a smart contract contains a counter that is increased by one
tion and misbehavior detection), we use a majority voting system,
and returned for each execution. Each intermediary will return a
i.e., the result with more than 50% of votes is assumed to be correct.
different result. For this reason, we limit the number of intermedi-
This voting procedure should ensure that an honest party does
aries to exactly one and impose penalties in case of misconduct to
not lose any tokens under the assumption that at least 51% of the
reduce the number of invalid cross-chain calls.
validators behave honestly. However, the probability of voting de-
creases exponentially per voting option because a validator will
only submit its voting when it can win. Since we make use of a
hash-based winner selection, the hash of a validator has to be lower
than the current winner. Therefore, in practice, the worst case is a 4.4 Support of further Blockchain Protocols
low hash, e.g., zero, for the first vote for a voting option, resulting As mentioned in Section 3.2, the presented approach has been
in no further votes for this option. implemented for Ethereum-based blockchains, and the actual adap-
Since the source chain does not know the truth value of the tation of the workflow depends on the semantics imposed by the
target chain and can only judge by the majority of votes regardless blockchain technologies and their smart contract languages. Our
of the correct result, validators have no incentive to behave hon- protocol is designed to work with blockchain technologies where a
estly. Naturally, validators will aim for profit and always vote for trusted chain of blocks is available. We require as a minimum smart
the current majority if their own signature is lower. Therefore, it contract functionality the ability to store data, perform arithmetic
is important to monitor the validators. This can be achieved, for operations, and enforce conditions. However, our software for the
example, with a delegated Proof of Stake protocol [10], where par- intermediary and validator requires knowledge of the functionality
ticipants will only nominate honest validators. We want to point of the blockchains and has to be extended for further blockchains,
out that the incentives to follow the majority-voting are not spe- for example adapted to blockchain-specific interfaces and behavior
cific to our solution, but can also be found in a similar way in other in order to process and validate transactions correctly (read gas
validator-based approaches using majority voting, e.g., [2, 32]. price, event and storage access, etc.). In the following, we show how
One possibility to increase the incentive of voting correctly is the support for a different technology can be added, using EOS as
the usage of zero-knowledge proofs [23] to hide the votes until an example.
the end of the voting phase. Since this paper focuses on a generic EOS is a blockchain technology that creates a operating system-
framework to cross-chain smart contract interaction, we leave such like construct upon applications can be built, which fundamentally
further improvements to our future work. differs to the concept of Ethereum. In detail, EOS smart contracts
differ from Ethereum smart contracts in two relevant points. First,
4.3 Selection of Intermediaries and Validators they do not support events and second, they have no transaction
As discussed in Section 3, we use intermediaries and validators to costs. For the former, we change the strategy from observing events
transfer and verify the information between the source and the to a polling-based approach, where the distribution and invoca-
target chain. To ensure that intermediaries and validators cannot tion contracts are checked for changes after each block, while for
launch any Sybil attacks against the framework, they have to be transactions costs the gas parameters are set to zero when an EOS
selected by the participants or by authorization. As a possible option contract is to be invoked. If an Ethereum contract is called from
to do so, we suggest using a smart contract in an existing blockchain EOS, nothing has to be changed, i.e., transaction costs remain as
or creating an own blockchain in which participants can vote for defined, but are paid with EOS tokens, which is the source chain
intermediaries and validators, for example by using an Sybil attack currency.
resistant delegated proof of reputation protocol [12]. The voting We want to point out, while our approach was initially developed
protocol has to ensure that intermediaries and validators are not for permissionless blockchains, it also works in a restricted way
the same nodes, otherwise the intermediaries can verify their own for permissioned blockchains. In this case, possible intermediaries
transactions and defraud the system. In addition, this selection and validators are required to have access to the permissioned
strategy allows the participants to stop voting for validators and blockchain, which limits the number of possible intermediaries and
especially intermediaries which do not submit, or publish wrong validators.
information.
Markus Nissl, Emanuel Sallinger, Stefan Schulte, and Michael Borkowski

It should be noted that the chosen implementation of Ethereum- Distribution Invocation


based blockchains sufficiently allows us to evaluate the basic func- Contract Contract
tionality of our approach to smart contract interoperability. Imple- Method A Method B
menting the proposed approach first for this technology has also the Invocation Distribution
Contract Contract
benefit that Ethereum-based blockchains (e.g., Ethereum, Ethereum
Classic, Ubiq, WanChain) today provide the most popular solutions
for decentralized applications and digital assets [8, 11]. Cross-chain Figure 2: Recursive Execution Attack
smart contract invocations for Ethereum-based blockchains can
thus enhance the utility of a majority of available assets. Notably,
our implementation can also be applied to sidechains for Ethereum. continues as defined in Section 3.6 by transferring the return values
Sidechains are a means to increase the transaction throughput in a to the source chain when the flag is set to completed.
blockchain network. For this, certain transactions are offloaded to This procedure raises the risk of a possible recursive execution
the sidechain [3]. attack, where at least two chains call each other unboundedly (vi-
Last but not least, we note again that the proposed approach does sualized in Figure 2). An attacker may create such a scenario to
not pose any restrictions on the concrete means of cross-blockchain prevent an intermediary from ever finishing the given transaction
interaction. As long as a blockchain provides sufficient scripting and getting its deposit tokens for the transaction back.
capabilities to implement the presented concepts, the solution can One possible solution against this attack is to limit the maximum
be adopted beyond Ethereum-based blockchains, as described above number of recursive chain calls. For this, the intermediary transfers
for EOS. the current number of recursive chain calls to the other blockchain,
which is verified by validators to prevent attacker-controlled inter-
5 EXTENSIONS mediaries from changing the number. In our current solution, we
In this section, we provide two important extensions to the basic have not implemented any check against this form of attack since
workflow between source and target chains presented in Section 3. in the basic workflow it only harms the intermediary but does not
have any real advantage for the attacker.
5.1 Continuation on Source Chain
6 EVALUATION
Initially, the caller does not know when a cross-chain smart contract
In this section, we evaluate the implemented approach regarding
is finished. Therefore, the caller has to observe the blockchain to
time and costs. We implemented the contracts in Solidity, the pri-
see if the cross-chain call is finalized to use the value in subsequent
mary language for Ethereum, and the logic for the intermediaries
transactions. In order to reduce the caller’s work, it is advisable to
and the validators in node.js using web3.js. The source code is pub-
automatically execute the subsequent transaction once the cross-
licly available1 . For the setup, we use the Rinkeby test network,
chain call is completed, especially if the caller is a contract-based
where we can observe whether the transaction pool or the network
account that cannot watch the blockchain for results without being
latency has an impact on the duration of the cross-chain call. The
invoked.
blockchain is initialized with the developed distribution and invo-
Therefore, we extend the registration process presented in Sec-
cation contract with enough funds for all parties and with a test
tion 3.3 with additional parameters (startgas, gas price and method
contract, which provides getter and setter methods for different
name for the callback function) to let the caller define a callback
variable types, e.g., int, string, byte.
function, which is executed during the finalization phase. As a
consequence, the formula for depositing tokens introduced in Sec-
tion 3.3 has to be adjusted to include the deposition of the callback
6.1 Cost Evaluation
function: For evaluating the cost of various functions, we compare the im-
plemented cross-chain smart contract call with executing the call
max gas price·startgas + fees +
manually on the target chain. For manual invocation, we assume
cb. startgas · cb. gas price ≤ deposited tokens that getter functions are free of charge since no transaction is exe-
where cb. startgas is the maximum number of computational steps cuted when viewing the data and only setters have to be paid. Thus,
and cb. gas price is the price paid per computational step of the for both scenarios (setting or getting data), only one setter call is
callback function. required (either on the target chain for setting or on the source
chain for returning the data). In the proposed solution, we make
5.2 Recursive Smart Contract Calls use of the callback function for returning the data in the finalization
phase.
In some cases, the return values of the callee depends on an addi- Since the required steps depend on the behavior of the function,
tional cross-chain call, which creates a chain of cross-chain calls. the cost of each function is summarized in Table 1. The result shows
For this, we extend the execution phase defined in Section 3.5 by significant cost in all steps, especially when dealing with byte data
adding an additional status flag (pending) to the invocation con- types, i.e., parameters or return values. The execution part, which
tract, which informs the intermediary that the result is not ready is equivalent to the setter function on the target chain, shows an
for the source chain due to a recursive cross-chain call. Once this overhead by a factor of 9. This can be explained by high costs for
call is finished, the flag is updated either to pending or completed
depending on whether an additional call is required. The process 1 https://github.com/markusnissl/cross-chain-smartcontracts
Towards Cross-Blockchain Smart Contracts

Table 1: Required Amount of Gas per Transaction Table 2: Optimal/Average Time Consumption on Rinkeby
in Blocks, Optimal/Average Time in Minutes (15 Sec-
Operation Required Steps onds/Block)
Registration without callback (Setter) 362,967-388,568
Registration with callback (Getter) 354,325-354,389 waitingBlocks

blocksPerPhase
Offer Request (first offer) 72,448 30 50 100
Offer Request (not a better offer) 26,131 blocks min blocks min blocks min
Offer Request (better offer) 49,011 5 164/168 41/42 264/268 66/67 514/518 129/130
Target Chain Execution (Setter) 290,667-331,818 10 174/180 44/45 274/278 69/70 524/528 131/132
Target Chain Execution (Getter) 265,403-306,348 30 214/218 54/55 314/318 79/80 564/589 141/147
Forwarding (Setter) 309,081 m 30 7.5 50 12.5 100 25
Forwarding (Getter) 344,445-384,982
Voting (first vote) 110,267
Voting (other votes) 60,678 receives the next transaction to continue, i.e., before execution,
Finalization without callback 93,733 result forwarding, first voting, and finalization.
Finalization with callback 111,114-131,353 The result shows an increase of at least a factor 5 for a cross-
Manual Setter calls 26,983-33,022 chain call, depending on the number of blocksPerPhase. Given
Manual Getter calls 0 the current blockchain time of about 15 seconds per block, the
transaction takes 45 minutes if waitingBlocks is set to 30 and
blocksPerPhase is set to 10, compared to 7.5 minutes if invoked
creating or modifying storage data. Overall, the gas costs are about
manually.
40 times higher, when taking only one intermediary, one validator
Considering the retrieved values given in Table 2, the transac-
and no rewards into account.
tion pool has a consistent and negligible impact on the query of
Although the values are high, the proposed implementation
one block, when enough gas is provided (i.e., at least the aver-
offers a novel framework for cross-chain smart contract invocations.
age paid per computational step in the previous blocks). Only for
Thanks to intermediaries and validators, we do not have to leave the
two calls, we encountered outliers due to network latency, one by
blockchain world and the execution is verified, which is not possible
blocksPerPhase = 10 and waitingBlocks = 30 with 184 instead of
by manually importing the values or if using a non-blockchain third
178 and another by blocksPerPhase = 30 and waitingBlocks = 100
party for the interactions.
with 631 instead of 568.
Overall, the needed time is within an acceptable range for many
6.2 Time Evaluation cross-chain transactions, but may be critical for some transactions.
In this section, we compare the time spent in the proposed im- Reducing the number of waitingBlocks and blocksPerPhase
plementation with the manual execution for a simple cross-chain (with a trade-off regarding security) improves the time in situa-
call. For the proposed implementation, we execute the transac- tions where a faster communication is required.
tion three times for various configurations of waitingBlocks and
blocksPerPhase and calculate the average block difference be- 7 CONCLUSION
tween the register and the finalization phase. The parameter wait-
In this paper, we presented a method for invoking smart contracts
ingBlocks is used after the registration, the offer, the execution, the
across blockchains. The proposed method supports not only a single
result forwarding and the validation phase to wait for consistency in
cross-chain smart contract call, but also the recursive invocation as
the blockchain, i.e., to avoid small forks, while the blocksPerPhase
well as the continuation of a smart contract after receiving a result.
parameter defines the time for the offer and voting phase.
Our solution takes into account the concurrency and consistency
To calculate the time for a manual execution, we use the wait-
of blockchains and the payment of transaction fees and rewards.
ingBlocks parameter, since it represents the time we have to wait
The proposed implementation has been evaluated with several tests
until the value is considered valid in the target chain (independently
where results have shown a time overhead by a factor of at least 5
of reading or writing). For the source chain, we do not have to add
and a cost overhead by a factor of 40.
an additional waitingBlocks period for importing the value, since
In future work, we will investigate ways to reduce the cost of
this period is outside the scope of the framework, i.e., after the
cross-chain calls. Possible options include the use of off-chain trans-
finalization phase.
actions, the optimization of source code, or a mixed approach with
The results are shown in Table 2, where m denotes the manual
relay networks. Furthermore, we want to improve the voting mech-
execution time (in blocks and minutes, respectively) and the other
anism by increasing the incentives to vote correctly. In addition,
values list first the optimal time for the parameters and then the
we want to add support for token transfers as well as implement
average time for the Rinkeby test network in blocks and rounded to
smart contracts for further blockchain technologies.
minutes assuming that 4 blocks are mined on average per minute.
The optimal number is calculated by 5 · waitingBlocks + 2 ·
blocksPerPhase + 4, where the factor 5 and 2 describe the num- ACKNOWLEDGMENTS
ber of uses of the parameters in the framework and the summand 4 The work on this paper was supported by the WWTF (Vienna
is derived from the one-block waiting times until the framework Science and Technology Fund) grant VRG18-013.
Markus Nissl, Emanuel Sallinger, Stefan Schulte, and Michael Borkowski

REFERENCES [27] Arseny Reutov. 2018. Predicting Random Numbers in


[1] [n. d.]. Omni Layer. https://www.omnilayer.org Accessed: March 27, 2019. Ethereum Smart Contracts. https://blog.positive.com/
[2] Autonomous Software. 2018. Metronome. https://www.metronome.io/download/ predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620
owners_manual.pdf Version 0.988; Accessed: Feb. 24, 2019. Accessed May 6, 2019.
[3] Adam Back, Matt Corallo, Luke Dashjr, Mark Friedenbach, Gregory Maxwell, [28] Stefan Schulte, Marten Sigwart, Philipp Frauenthaler, and Michael Borkowski.
Andrew Miller, Andrew Poelstra, Jorge Timón, and Pieter Wuille. 2014. Enabling 2019. Towards Blockchain Interoperability. In BPM (Blockchain and CEE Forum)
blockchain innovations with pegged sidechains. http://kevinriggen.com/files/ (LNBIP), Vol. 361. Springer, 3–10.
sidechains.pdf White Paper, Accessed May 15, 2020. [29] Tendermint Inc. 2019. Cosmos – A Network of Distributed Ledgers. https:
[4] Rafael Belchior, André Vasconcelos, Sérgio Guerreiro, and Miguel Correia. 2020. //cosmos.network/resources/whitepaper Accessed: June 10, 2019.
A Survey on Blockchain Interoperability: Past, Present, and Future Trends. CoRR [30] Sarah Underwood. 2016. Blockchain Beyond Bitcoin. Commun. ACM 59, 11
abs/2005.14282 (2020). (2016), 15–17.
[5] Thomas Bocek, Bruno Bastos Rodrigues, Tim Strasser, and Burkhard Stiller. 2017. [31] Xinying Wang, Olamide Timothy Tawose, Feng Yan, and Dongfang Zhao. 2020.
Blockchains everywhere - a use-case of blockchains in the pharma supply-chain. Distributed Nonblocking Commit Protocols for Many-Party Cross-Blockchain
In 2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM). Transactions. CoRR abs/2001.01174 (2020).
IEEE, 772–777. [32] Gavin Wood. 2017. POLKADOT: VISION FOR A HETEROGENEOUS MULTI-
[6] Michael Borkowski, Marten Sigwart, Philipp Frauenthaler, Taneli Hukkinen, and CHAIN FRAMEWORK, DRAFT 1. https://polkadot.network/PolkaDotPaper.pdf
Stefan Schulte. 2019. DeXTT: Deterministic Cross-Blockchain Token Transfers. Accessed June 10, 2019.
IEEE Access 7 (2019), 111030–111042. [33] Victor Zakhary, Divy Agrawal, and Amr El Abbadi. 2020. Atomic Commitment
[7] Vitalik Buterin. 2016. Chain Interoperability. https://allquantor.at/blockchainbib/ Across Blockchains. PVLDB 13, 9 (2020), 1319–1331.
pdf/vitalik2016chain.pdf Accessed Nov. 10, 2019. [34] Dongfang Zhao and Tonglin Li. 2020. Distributed Cross-Blockchain Transactions.
[8] Wei Cai, Zehua Wang, Jason B. Ernst, Zhen Hong, Chen Feng, and Victor C.M. CoRR abs/2002.11771 (2020).
Leung. 2018. Decentralized Applications: The Blockchain-Empowered Software [35] Zibin Zheng, Shaoan Xie, Hong-Ning Dai, Xiangping Chen, and Huaimin Wang.
System. IEEE Access 6 (2018), 53019–53033. 2018. Blockchain challenges and opportunities: a survey. International Journal
[9] Clearmatics. 2019. Ion Stage 2: Cross-Chain Smart Contract Development. https: on Web and Grid Services 14, 4 (2018), 352–375.
//github.com/clearmatics/ion/wiki/Ion-Design Accessed: Nov. 27, 2019. [36] Aviv Zohar. 2015. Bitcoin: Under the Hood. Commun. ACM 58, 9 (2015), 104–113.
[10] dantheman. 2017. DPOS Consensus Algorithm - The Miss- https://doi.org/10.1145/2701411
ing White Paper. https://steemit.com/dpos/@dantheman/
dpos-consensus-algorithm-this-missing-white-paper Accessed Nov. 27,
2019.
[11] Monika Di Angelo and Gernot Salzer. 2019. A Survey of Tools for Analyzing
Ethereum Smart Contracts. In 2019 IEEE International Conference on Decentralized
Applications and Infrastructures (DAPPCON). IEEE, 69–78.
[12] Thuat Do, Thao Nguyen, and Hung Pham. 2019. Delegated Proof of Reputation:
a Novel Blockchain Consensus. In 2019 International Electronics Communication
Conference (IECC’19). ACM, 90–98.
[13] Ethereum Foundation. [n. d.]. A Next-Generation Smart Contract and Decentral-
ized Application Platform. https://github.com/ethereum/wiki/wiki/White-Paper
Accessed: Feb. 24, 2019.
[14] Enrique Fynn, Alysson Bessani, and Fernando Pedone. 2020. Smart Contracts
on the Move. In 50th IEEE/IFIP Dependable Systems and Networks Conference
(DSN’20). IEEE.
[15] Maurice Herlihy. 2018. Atomic Cross-Chain Swaps. In ACM Symposium on
Principles of Distributed Computing. ACM, 245–254. https://doi.org/10.1145/
3212734.3212736
[16] Maurice Herlihy, Liuba Shrira, and Barbara Liskov. 2019. Cross-chain Deals and
Adversarial Commerce. PVLDB 13, 2 (2019), 100–113.
[17] Interledger Project. 2019. Interledger Protocol V4. https://interledger.org/rfcs/
0027-interledger-protocol-4/draft-9.html Accessed: Nov. 20, 2019.
[18] Hai Jin, Xiaohai Dai, and Jiang Xiao. 2018. Towards a Novel Architecture for En-
abling Interoperability amongst Multiple Blockchains. In 38th IEEE International
Conference on Distributed Computing Systems. IEEE, 1203–1211.
[19] Kari Korpela, Jukka Hallikas, and Tomi Dahlberg. 2017. Digital Supply Chain
Transformation toward Blockchain Integration. In 50th Hawaii International
Conference on System Sciences (HICSS 2017). ScholarSpace / AIS Electronic Library
(AISeL), 1–10.
[20] Litecoin Foundation. [n. d.]. Litecoin. https://litecoin.org/ Accessed: March 22,
2019.
[21] Zhuotao Liu, Yangxi Xiang, Jian Shi, Peng Gao, Haoyu Wang, Xusheng Xiao,
Bihan Wen, and Yih-Chun Hu. 2019. HyperService: Interoperability and Pro-
grammability Across Heterogeneous Blockchains. In 2019 ACM SIGSAC Confer-
ence on Computer and Communications Security (CCS 2019). ACM, 549–566.
[22] Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. http:
//bitcoin.org/bitcoin.pdf Accessed: Feb. 24, 2019.
[23] Somnath Panja and Bimal Kumar Roy. 2018. A secure end-to-end verifiable
e-voting system using zero knowledge based blockchain. IACR Cryptology ePrint
Archive 2018 (2018), 466.
[24] Moritz Petersen, Niels Hackius, and Birgit von See. 2018. Mapping the sea
of opportunities: Blockchain in supply chain and logistics. it - Information
Technology 60, 5–6 (2018), 263–271.
[25] Joseph Poon and Thaddeus Dryja. 2016. The Bitcoin Lightning Net-
work: Scalable Off-Chain Instant Payments. https://lightning.network/
lightning-network-paper.pdf Accessed: March 26, 2019.
[26] Han Qiu, Xiao Wu, Shuyi Zhang, Victor C. M. Leung, and Wei Cai. 2019. ChainIDE:
A Cloud-Based Integrated Development Environment for Cross-Blockchain Smart
Contracts. In 2019 IEEE International Conference on Cloud Computing Technology
and Science (CloudCom). IEEE, 317–319.

View publication stats

You might also like