A trustless, cost-efficient bridge between the Lightning Network and Ethereum. Lightning stays exactly as deployed today. When both channel peers are honest, Ethereum checks a single hash preimage, and the costly dispute contract is deployed only if someone misbehaves.
1Visa Research · 2IMDEA Software Institute · 3MPI-SP
In three numbers · Table 1
All gas figures are measured with Hardhat 2.17.4 and are the mean of three runs (standard deviation $<0.1\%$). Alba's figures are the published values from Alba (NDSS'25), the prior Lightning–Ethereum bridge.
1,215,315 gas vs. Alba's 4,513,248. The dispute logic is no longer part of the contract every user deploys.
vs. Alba's 253,566-gas submitProof, the comparison the abstract makes. Alba's own optimisticProof costs a further 48,027.
vs. Alba's 515,860. When a dispute does happen, deploying the dispute contract costs 2,785,514 gas.
The problem
A bridge applies a state change on one chain once something has happened on another. Conventional designs assume that event is public: a lock transaction everyone can see and prove. Lightning breaks that assumption. Channel updates happen off-chain between two peers, and nobody else ever sees them.
Why you would want such a bridge anyway (the paper's example): Alice must pay Carol over Lightning, but her channel to Bob has only 5 coins of outbound capacity. Alice has funds on Ethereum. She locks collateral worth $\alpha$ in an Ethereum contract, Bob extends her $\alpha$ coins of credit in their channel, and she routes the payment to Carol through Bob. Once Bob is repaid in the channel, the contract must return Alice's collateral.
Two ways this goes wrong (Section 1):
Liveness. Alice locks her collateral, and Bob never extends the loan.
Safety. Alice repays, reaching channel state $s_n$, and uses $s_n$ to unlock her collateral. At the same time she closes the channel on Bitcoin with the older state $s_{n-1}$, where she still holds the $\alpha$ coins. She keeps both.
The prior work, Alba (NDSS'25), solves this by changing Lightning. Every channel state carries extra data in an OP_RETURN output, and earlier states are timelocked until the Ethereum side settles. That needs a new BOLT specification and updated Lightning implementations. It also uses one monolithic Ethereum contract that contains all the dispute logic, so honest users pay to deploy it every time.
OptiBridge's idea. Bob picks a secret $r_{bridge}$ and commits to $h_{bridge} = H(r_{bridge})$ up front. When he is repaid, he simply hands $r_{bridge}$ to Alice, and the Ethereum contract releases her collateral against the preimage. Everything needed to settle a dispute lives in a second contract, fixed in advance by its hash and deployed only when cooperation fails.
Interactive · Table 1, summed per execution path
Pick how the bridge ends. Each bar is one on-chain call from Table 1, stacked as a running total. The legend separates calls that happen on every run from calls that exist only when there is a dispute. Branches (a)–(d) are the ones in Figure 1.
The paper reports per-call gas (Table 1) and does not sum it by path. The totals here add the Table 1 rows each path executes, following the call sequences in Figures 3–4. ⚑ marks setup (dispute) = 428,939: this is exactly the same as setup (bridge) and is suspected to be a copy error in the paper, so every dispute total includes a suspect value. The paper does not give Alba's call sequence for each dispute branch, so the dispute branches show no Alba total. Alba's matching per-call figures are in the table.
Interactive · Figures 1, 3 and 4
Alice is the prover, who borrows and repays. Bob is the verifier, who lends and holds the secret. Choose a path and step through it. The diagram, the asset readouts and the gas readout update at each step. On the optimistic path, the last step lets you try the contract's hash check yourself.
State after this step
In the paper, $H$ is an abstract hash function. The demo computes SHA-256 in your browser only as an illustration. The paper does not say which hash the contract uses. Gas figures are Table 1's, under Table 1's function names (see the name mapping in Results).
Interactive · Figure 5 and Theorem 1
Section 7.1 models the bridge as a game with perfect information: Alice (P) and Bob (V) take turns, and every move has an honest option, "go idle", or an attack. Play either side. Each ending shows what the paper's Figure 5 awards: who ends up with the loan (₿) and the collateral (Ξ), how many on-chain fee units it took, and how many time windows $\Delta$ it took. Theorem 1 says the green path is the unique subgame-perfect Nash equilibrium.
Moves so far
Fees and delays are counts of the coin and clock icons in Figure 5. They rank outcomes; they are not gas or time measurements. Lettered regions (a)–(d) match the shaded sub-games in the figure. Section 4.1 notes that the game abstracts away mempool congestion, fee volatility and MEV. The incentive result relies on rationality, but safety and liveness do not: an irrational deviator pays more on-chain but cannot steal funds.
Interactive · Table 1, deployment rows
Alba puts the optimistic path and dispute resolution in one contract, so every bridge deploys all of it. OptiBridge's bridge contract only stores a commitment $h_{dispute} = H(C_{dispute})$ to the dispute contract's code. It deploys that code only when someone calls InitDispute. Switch the dispute on and off.
| Contract | Deployed | Gas |
|---|---|---|
| Alba: monolithic contract | every run | 4,513,248 |
| OptiBridge: bridge contract | every run | 1,215,315 |
| OptiBridge: dispute contract | only on dispute | 2,785,514 |
Deployment rows only. Setup and function calls are in the first chart. Provenance: the evaluation's "side-by-side" paragraph says OptiBridge "pays the 3.4 M-gas dispute deployment only when a dispute occurs". Table 1, the abstract and the conclusion all give 2,785,514. Even adding setup (dispute) gives 3,214,453, not 3.4M. This chart uses Table 1.
Guarantees
| Property | OptiBridge | Alba (as the paper describes it) | Where |
|---|---|---|---|
| Safety: no wrapped state without the source event, and no release without repayment | ✓ | not assessed | Def. 2, §7.2 |
| Liveness: once repaid, Alice can reclaim the collateral on her own | ✓ | not assessed | Def. 3, §7.2 |
| Trustless: no relays, oracles, operators or committees; only signatures and hash preimages | ✓ | not assessed | §4.2, §6 |
| Lightning unchanged: no OP_RETURN, custom outputs or extra timelocks | ✓ | ✗ needs extra state data and timelocked earlier states (new BOLT proposal) | §2.3, §6 |
| Ethereum side uses only ordinary contract calls | ✓ | not assessed | §6 |
| Honest users never deploy the dispute logic | ✓ | ✗ one monolithic contract | §3, §6 |
| Common-case Ethereum check | one hash preimage | two signatures on a sequence number, plus a full-channel-state submitProof | §6 |
| Honest optimistic path is the unique SPNE for rational players | ✓ | not assessed | Thm. 1, App. A |
"Not assessed" means this paper does not evaluate Alba on that property. It is not a claim that Alba lacks it. Safety and liveness assume the synchrony bound of §4.1: the dispute window must satisfy $T_{DISPUTE} > \delta_{BTC} + 2\,\delta_{ETH} + \Delta$. For example, with $\delta_{BTC}\approx$ 1 hour and $\delta_{ETH}\approx$ 15 minutes, the paper says $T_{DISPUTE}$ = 24 hours comfortably suffices. Like any Lightning user, honest parties must monitor the chain or delegate that job to a watchtower.
Measured results · Table 1
Reproduced as published. "—" means the function does not exist in that system. OptiBridge: Hardhat 2.17.4, a fresh contract instance for every call, eth_estimateGas, mean of three runs. Alba: values from its public proof of concept and its Table II.
| Function | OptiBridge | Alba |
|---|---|---|
| Optimistic | ||
| setup (bridge) | 428,939 | 393,401 |
| optimisticProof | 40,107 | 48,027 |
| submitProof | — | 253,566 |
| Dispute | ||
| bridgeTimeout | 36,971 | — |
| setup (dispute) ⚑ | 428,939 | — |
| verifierCloseChannel | 183,993 | — |
| dispute | 196,438 | 515,860 |
| resolveDispute | 175,688 | 168,046 |
| settle | 30,279 | 49,814 |
| One-time deployment | ||
| bridge contract deployment | 1,215,315 | 4,513,248 |
| dispute contract deployment | 2,785,514 | — |
The table, the contract listing and the overview figure name the dispute functions differently. This page uses Table 1's names. The Fig. 2 "caller" checks are shown as printed. Two of them contradict the prose, as noted below.
| Table 1 | Fig. 2 contract | Fig. 1 overview | Called by (Figs. 3–4 / §6 text) |
|---|---|---|---|
| setup (bridge) | Init | Init | Alice |
| optimisticProof | OptimisticProof | — | Alice |
| setup (dispute) | InitDispute | — | whoever starts the dispute |
| verifierCloseChannel | VerifierCloseCh | VerifierCloseChannel | Alice ⚑ Fig. 2 requires caller == verifier |
| dispute | TriggerDispute | TriggerDispute | Alice |
| resolveDispute | ResDisputeVerifier | ResolveDisputeVerifier | Bob ⚑ Fig. 2 requires caller == prover |
| settle | ResDisputeProver | ResolveDisputeProver | Alice |
| bridgeTimeout | BridgeTimeout | BridgeTimeout | Bob (§6 prose calls it timeoutBridge) |
Reference
@inproceedings{minaei2026optibridge,
title = {{OptiBridge}: A Trustless, Cost-Efficient Bridge Between
the Lightning Network and Ethereum},
author = {Minaei, Mohsen and Le, Duc V. and Moreno-Sanchez, Pedro},
booktitle = {Applied Cryptography and Network Security (ACNS)},
year = {2026}
}
Source code. The paper has no code or data availability statement and does not link an OptiBridge implementation. The only repository it cites is Alba's, whose Bitcoin transaction-verification contracts OptiBridge reuses for $DS.\mathsf{Vrfy}$: github.com/ALBA-blockchain/ALBA-Protocol.