Skip to content

alastria/isbe-anchoring-ibc-yui-docs

 
 

Repository files navigation

Anchoring two blockchains' Smart Contract data

This is an example of an application using IBC to anchor information from one blockchain to another, from a smart contract used to register bytes32, to another smart contract on another ledger to provide anchoring to specific information.

We use the following ledgers specifically:

  • Hyperledger Besu for both blockchains

Preparation

Execute npm install in the following directory.

  • contracts/minitoken/solidity
  • samples/minitoken-besu-ethereum

Setup

The following will start the ledger, deploy the contracts on each of them, and establish the channel with a relayer:

make setup

If you want to do each setup independently, see Makefile for more information.

E2E

Perform E2E test to add a bytes32 to a blockchain and later on anchor it to the other ledger, sending the information between ledgers:

make e2e

Clean Up

Stop the ledger and Relayer:

make down

About YUI

"YUI" is japanese word to represent knot, join and connect

Short Description

YUI is a lab to achieve interoperability between multiple heterogeneous ledgers. YUI provides modules and middleware for cross-chain communication as well as modules and tools for cross-chain application development, including an explorer to track status and events for cross-chain environments.

For cross-chain communication, the design of YUI is based on Inter Blockchain Communication (IBC) protocol by Cosmos project, with extensions to support various Hyperledger projects.

Modules for cross-chain application development includes one that implements a protocol for atomic operations between ledgers, such as atomic swap of tokens.

Scope of Lab

Design Principles

Cross-authentication

By relying on the on-chain verification of the other chain’s state, cross-chain communication can be achieved without any safety concern due to the behavior of off-chain actors

This allows cross-chain message relaying not only to the trusted and privileged actors, but also to any actor that satisfies the ACL of the permissioned chain.

In addition, we aim to apply the method not only to the permissioned chains, but to the public chains as well.

Provide a unified communication method independent from a specific blockchain/DLT implementation.

This enables application developers to develop chain agnostic protocols.

Support arbitrary data transfer and computation

Developers can design and implement the specific protocol for its cross-chain application, not limited to token transfer use case.

Avoid adding components that introduce additional trust (apart from individual blockchains)

Introducing such components may decrease the level of security of a system as it would be bounded by the lowest component in the system.

Also, introducing new (off-chain) components with high fault tolerance will also lead to increased operational costs

Do not introduce a new layer

Each actor (of ledgers) has only to interact with a respective ledger of its interest to complete a cross-chain operation unless the application has additional requirements.

Use cases

Cross-chain smart contracts for arbitrary data and procedures, not limited to atomic swap of tokens.

  • Cross-chain token transfer
  • Cross-chain Atomic swap
    • Example includes delivery versus payment settlement
  • Cross-chain atomic execution of arbitrary procedures

Current status and future plan of YUI

We have already developed modules for Hyperledger Fabric, Hyperledger Besu, and Corda. We plan to apply these modules for practical applications as well as to expand support for other blockchains.

  • At first, we are focusing on permissioned blockchain environment

Aim to enable developers in Hyperledger community to introduce interoperability in their systems and develop cross-chain applications without too many changes and increase the complexity

Components of YUI

Client (on-chain) module and Relayer to support various ledgers in align with the design principles

  • Client module should be designed to support each underlying ledger

Various software to support the development of cross-chain systems

  • Modules to support the development of cross-chain contracts
    • Implementation of an atomic commit protocol for cross-chain atomic operation
    • Implementation of authentication for cross-chain contracts
  • System to support the coordination of cross-chain contract and applications
    • Explorer to track the cross-chain status

Original YUI Committers

Contributors

Please take a look at CONTRIBUTORS.md

Repositories

About

Análisis de Interoperabilidad de Redes ISBE

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Solidity 76.3%
  • JavaScript 16.5%
  • CSS 4.4%
  • Shell 2.2%
  • Makefile 0.6%