Automated Fault-Tolerant HTLC for Cross-Chain Atomic Asset Exchange
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