Layerswap V8 Atomic Bridging protocol’s specification.

Introduction

This document specifies the Layerswap V8 Atomic Bridging protocol, a permissionless and trustless cross-chain asset transfer system based on improved Hashed Timelock Contracts (PreHTLCs). The protocol aims to facilitate seamless asset movement across multiple blockchain networks without relying on third parties or oracles.

Protocol Model

Presents a series of diagrams illustrating different transaction flows within the protocol, covering both standard scenarios and edge cases.

Standard flow

Visualizes the typical sequence of actions in a successful atomic swap transaction using the protocol.

sequenceDiagram
    participant P1 as Party 1
    participant SC as Source Chain
    participant P2 as Party 2
    participant DC as Destination Chain

	
    P1->>SC: commit()
    SC-->>P2: TokenCommitted
    P2->>DC: lock()
    DC-->>P1: TokenLocked
    P1->>SC: lockCommitment()
    SC-->>P2: TokenLocked
    P2->>DC: redeem()
    DC-->>P1: TokenRedeemed
    P2->>SC: redeem()
	  SC-->>P2: TokenRedeemed

Multi-hop flow (WIP)

When transferring funds from a source chain to a destination chain isn't possible due to a lack of liquidity providers (LPs) directly linking the two, the swap is completed using a multi-hop approach (with chain length $n$). In this setup, the user initially commits funds on the source chain to the first LP. Each LP calls commit so committing funds for the next LP in the sequence, with the final LP on the destination chain calls lock , locking the funds with a hashlock and the longest timelock, set to $T + 2^{n-1}\Delta$ .

Subsequently, each LP from the second-to-last in the chain back to the source performs the addLock function with the same hashlock as used on the destination chain, but with progressively shorter timelocks—starting from $T + 2^{0}\Delta$ for the second-to-last LP. This process continues recursively, with each LP adding a lock using the hashlock and timelock specific to its position in the chain.

Finally, the user on the source chain calls addLock with the hashlock and timelock $T+2^{n-2}\Delta$. At this point, all LPs have locked funds with both a hashlock and timelock.

When the LP on the destination chain calls redeem , revealing the secret, he transfers the user’s funds and redeems the locked funds for himself. This secret revelation allows each preceding LP, one by one, to redeem their funds back through the chain, completing the multi-hop swap.

sequenceDiagram
    participant P1 as Party 1
    participant SC as Source Chain
    participant P2 as Party 2
    participant IC as Intermediary Chain
    participant P3 as Party 3
    participant DC as Destination Chain

	
    P1->>SC: commit()
    SC-->>P2: TokenCommitted
    P2->>IC: commit()
    IC-->>P3: TokenCommitted
    P3->>DC: lock()
    DC-->>P1: TokenLocked
    P1->>SC: lockCommitment()
    DC-->>P2: TokenLocked
    P2->>IC: lockCommitment()
    IC-->>P3: TokenLocked
    P3->>DC: redeem()
    DC-->P1: TokenRedeemed
    P3->>IC: redeem()
    IC-->>P2: TokenRedeemed
    P2->>SC: redeem()

Edge Cases

Explores potential failure scenarios and how the protocol handles them to ensure fund safety and transaction integrity.

1.1. Party 2 fails to release Party 1’s funds.

sequenceDiagram
    participant P1 as Party 1
    participant SC as Source Chain
    participant P2 as Party 2
    participant DC as Destination Chain

	
    P1->>SC: commit()
    SC-->>P2: TokenCommitted
    P2->>DC: lock()
    DC-->>P1: TokenLocked
    P1->>SC: lockCommitment()
    SC-->>P2: TokenLocked
    P2->>SC: redeem()
	  SC-->>P1: TokenRedeemed
    P1->>DC: redeem()
    DC-->>P1: TokenRedeemed