Project TitleAutomated Fault-Tolerant HTLC for Cross-Chain Atomic Asset Exchange
Status

COMPLETED

Difficulty

  HIGH

Description 

The Hash Time Locked Contract (HTLC) is a well-known pattern for dis-intermediated asset swaps, i.e., as a mechanism to exchange assets between two parties in two different blockchain networks in an atomic manner without a trusted mediator (or trusted third party). HTLC support has been implemented in the Hyperledger Weaver Labs project, with mechanisms to lock, claim, and unlock assets supported in both the contract and higher application layers. At present, the protocol requires several manual steps by the application users carrying out the exchange or agents acting on their behalf. We would like to automate this process as much as possible by augmenting the relay module in Weaver to communicate events and trigger transactions in foreign networks; this requires both research and software development. Further, HTLC is known to have flaws that could violate system integrity properties, because it relies on parties to execute certain actions by a certain timeout or forever lose the opportunity to carry out those actions; this makes the basic protocol intolerant to system crashes. Research is needed to (provably) determine the best way to make the HTLC protocol fault tolerant, using the features of the blockchain networks maintaining the assets and the Weaver relays mediating the exchange. Augmenting the existing HTLC mechanism within Weaver will provide practical validation of this research.

Additional Information

Weaver project repository: https://github.com/hyperledger-labs/weaver-dlt-interoperability

HTLC Background: https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts

Weaver RFC on atomic asset exchange using HTLC: https://github.com/hyperledger-labs/weaver-dlt-interoperability/blob/main/rfcs/protocols/asset-exchange-htlc.md

Learning Objectives

Understand challenges facing blockchain interoperability, especially atomic asset exchange operations

Understand and gain insights into building distributed systems and protocols

Gain research experience by working with Weaver project maintainers, all of whom have both research and software development backgrounds

Practical software development experience gained by working on, and augmenting, a mature codebase, while collaborating with project maintainers

Expected Outcome

Automated HTLC protocol specification as a research output.


Implementation of automated HTLC by augmenting the HTLC protocol within Weaver.

Fault tolerant HTLC protocol specification and analysis as a research output.

Good to have: implementation of fault tolerant HTLC in Weaver.

Good to have: research publication in a reputed systems conference.

Relation to Hyperledger 

Hyperledger Weaver Labs: https://github.com/hyperledger-labs/weaver-dlt-interoperability

Education Level

Given that this project has research requirements, a graduate student (targeting an MS or a PhD) would be suitable. But undergraduate students with research inclinations will also be good candidates for this project.

Skills

Understanding of distributed systems, network protocols, and concepts of reliability and fault tolerance, a strong plus.

Experience with network programming desirable.

Experience in Rust and Node.js a strong plus. Go language skills desirable.

Future plans

The intern can make further contributions to the open source Weaver framework on features related to the summer project or any other component of the framework. Research collaboration with mentors, i.e., geared toward publications based on the work done in the summer, would be very feasible.

Preferred Hours and Length of Internship

Full-time for at least 3 months.

Mentor(s) Names and Contact Info

Venkatraman Ramakrishna, vramakr2@in.ibm.com, IBM Research - India

Krishnasuri Narayanam, knaraya3@in.ibm.com, IBM Research - India

Dhinakaran Vinayagamurthy, dvinaya1@in.ibm.com, IBM Research - India

Sandeep Nishad, sandeep.nishad1@ibm.com, IBM Research - India