Skip to content
This repository has been archived by the owner on Mar 28, 2023. It is now read-only.

Redemption via Lightning #262

Open
liamzebedee opened this issue Aug 27, 2019 · 8 comments
Open

Redemption via Lightning #262

liamzebedee opened this issue Aug 27, 2019 · 8 comments
Labels
🗣️ discussion Open discussion ⚙️ system-design Up-front system design tbtc
Milestone

Comments

@liamzebedee
Copy link
Contributor

liamzebedee commented Aug 27, 2019

Background

tBTC is a Bitcoin peg protocol. One tBTC is always backed by a real BTC, and the collateralisation is designed such that there is no loss to a user if the cross-chain redemption fails.

Looking at deposit and liquidate flows, it's clear they do the same thing - verify that the peg exists. Redemption in contrast, is proving something different - verifying that Bitcoin was sent from an address, after the redemption request.

Concept

The redemption flow currently requires the signer group to post proof of a Bitcoin transaction. It is likely we can change the redemption proof, such that alternative proofs of payment, such as artifacts from the Lightning network/protocol are supported. This has the potential to vastly improve UX.

Resources

@liamzebedee liamzebedee added 🗣️ discussion Open discussion ⚙️ system-design Up-front system design labels Aug 27, 2019
@prestwich
Copy link
Contributor

a very simple change to support this is a ackRedemption contract call, that is gated to the redeemer. It would shortcut the redemption process.

a more complex version would be to add a redemptionAckHash system, where the redeemer could (optionally) supply a sha2 digest. if the preimage is revealed, it's treated as ackRedemption

@mhluongo
Copy link
Member

Redemption via Lightning is also a sweet improvement to Lightning- folks would be able to get network capacity.

How would signers accomplish this, though?

@prestwich
Copy link
Contributor

How would signers accomplish this, though?

Academic question until larger channels exist

@gakonst
Copy link
Contributor

gakonst commented Aug 29, 2019

Can't the redeemer post an invoice on-chain at redeeming time, and the signers would provide proof of payment via preimage? This would be similar to an Atomic Multipath Payment, where you have N senders instead of 1.

a very simple change to support this is a ackRedemption contract call, that is gated to the redeemer. It would shortcut the redemption process.

This requires invoiceless-payments (ie Sphinx) lightningnetwork/lnd#2455. We can add it in the docs as a possible improvement, but I find it much more complex since you'd need to verify the logic on Ethereum.

@prestwich
Copy link
Contributor

a very simple change to support this is a ackRedemption contract call, that is gated to the redeemer. It would shortcut the redemption process.

This requires invoiceless-payments (ie Sphinx) lightningnetwork/lnd#2455. We can add it in the docs as a possible improvement, but I find it much more complex since you'd need to verify the logic on Ethereum.

Oh I mean in general, in addition to lightning. If the redeemer is willing to attest that they got paid, the Deposit should respect that.

@gakonst
Copy link
Contributor

gakonst commented Aug 29, 2019

If the redeemer is willing to attest that they got paid, the Deposit should respect that.

Right but the redeemer can be unwilling to attest that they got paid, which can be dangerous for the signers' collateral. With on-chain txs that cannot happen, because the Signers can publish the SPV proof that they paid the user, but with off-chain txs you need some similar proof, in this case the invoice preimage (or sphinx payment proof)

@prestwich
Copy link
Contributor

I mean use redeemer attestation as a shortcut that falls back to any other provable delivery method

@liamzebedee
Copy link
Contributor Author

I think the term here is data availability attack @gakonst and it's a good point.

Did some deeper research today (some more links above) - the preimage/submarine approach should work with LN invoices. Data availability aside - the preimage will always be made available otherwise the LN payment won't go through, no?

@mhluongo mhluongo added the tbtc label Sep 16, 2019
@mhluongo mhluongo added this to the Post-mainnet milestone Jan 17, 2020
@mhluongo mhluongo modified the milestones: Post-mainnet, tBTC v2 Dec 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🗣️ discussion Open discussion ⚙️ system-design Up-front system design tbtc
Projects
None yet
Development

No branches or pull requests

4 participants