Questions tagged [hash-time-locked-contract]

Filter by
Sorted by
Tagged with
6
votes
3answers
2k views

“HTLCs don't work for micropayments”?

I read this tweet by Tadge Dryja recently. What exactly did he mean? Is this an issue? If so, is this issue fixable?
5
votes
2answers
2k views

HTLC (Hash Time Lock Contract) using bitcoin-qt

Is it possible to manually create a HTLC using the bitcoin-qt command line? I know how to manually creating createrawtransaction/sendrawtransaction using the bitcoin-qt clients command line, and ...
2
votes
2answers
459 views

Single-hop Payment vs Multi-hop payments

I am beginner of lightning network. When i am looking roughly lightning network whitepaper, i was confused about the types of contracts used in single-hop and multi-hop. As far as I understand, In ...
2
votes
1answer
63 views

In which cases could I find funds locked in a failed route?

I received an invoice from node Z and my node (A) suggests me 4 possible routes. If the first two routes fail, are there cases in which funds can get stuck in one of these routes until the HTLC ...
2
votes
1answer
327 views

Basic questions about lightning network HTLC

I'm reading about lightning and I have a few questions: The HTLC contract seems to be different at each new path payment channel is opened (due to a different Hash value that needs to be provided), ...
2
votes
1answer
65 views

settling timelocked contracts based on amount of time elapsed in Lightning network

Suppose in a payment route A->B->C, A desires to pay 0.01 BTC to C. It locks in 0.01 BTC with B in the HTLC having timeout period of say 2 days and B locks 0.01 BTC with C in HTLC having timeout ...
2
votes
1answer
524 views

Lightning Network: hashlocks vs private keys exchange

I am reading the Lightning Network paper and noticed that when describing bidirectional payment channels, the authors used "Breach Remedy transactions" and the exchange of the two parties' private ...
2
votes
1answer
39 views

Why does every htlc in a commitment transaction rquire its own signature?

From BOLT 02 we can learn When a node has changes for the remote commitment, it can apply them, sign the resulting transaction (as defined in BOLT #3), and send a commitment_signed message. ...
2
votes
1answer
63 views

Possible race condition(double spend) on HTLC-Timeout in the lightning network?

From the offered HTLC Outputs, # To remote node with revocation key OP_DUP OP_HASH160 <RIPEMD160(SHA256(revocationpubkey))> OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE <remote_htlcpubkey> ...
2
votes
2answers
146 views

Why do we use CLTV instead of CSV in the HTLC output of the commitment transaction?

In lightning network commitment transactions, the HTLC offered/received outputs generally pay the offering node after a timeout which is scripted using CLTV. In other parts of the commitment ...
2
votes
2answers
61 views

Why do multihop LN payments start settling from the recipient's end?

In HTLC, after all the parties have locked their funds in the contract, claiming payment happens in a reverse way, starting with the receiver who reveals the preimage of the corresponding payment hash....
2
votes
1answer
67 views

HTLCs and commitment transactions

Why commitment transactions can't simply be HTLCs instead of contracts revocable by having the second half of the Revocable Private Key? I mean, why bother to create a Revocable Public Key from two ...
1
vote
2answers
86 views

Can someone explain how an HTLC is redeemed?

I'm looking at Bolt 3 in the Lightning rfc. My question is about how a HTLC is redeemed. Example HTLC script for reference: # To remote node with revocation key OP_DUP OP_HASH160 <RIPEMD160(SHA256(...
1
vote
1answer
57 views

Security implications of removing CHECKSIG in a test

If I conduct an htlc transaction on testnet that does not include OP_CHECKSIG will it still cost an attacker more than (say) $10 in processing power or storage to subvert my tests? Details: I'm ...
1
vote
1answer
41 views

Do HTLCs get “carried over” in the subsequent commitment transactions?

With regular commitment transactions, current transaction invalidates the previous one. This is fine, since TXs between A and B in their channel happen one after another. However, HTLCs are sort of ...
1
vote
1answer
81 views

Remote node signature for HTLC-success and HTLC-timeout transactions

According to BOLT #3, when constructing a HTLC output in the version of the local node (both received and offered HTLC), it requires that the payment to the local node is locked with CHECKMULTISIG ...
1
vote
1answer
58 views

Why do we need revocation in both the offered/received HTLC outputs and HTLC timeout/success outputs?

The witness script for the output in the HTLC success/timeout transaction is: OP_IF # Penalty transaction <revocationpubkey> OP_ELSE `to_self_delay` OP_CHECKSEQUENCEVERIFY ...
0
votes
1answer
47 views

How can I create HTLCs below dust_limit_satoshi in Lightning Network?

BOLT#2 documentation for open_channel message has two points (dust_limit_satoshi and htlc_min_msat) in the data message that I found confusing. Below is the statement related to dust_limit_satoshi: ...
0
votes
1answer
48 views

lightning to lightning non custodial swaps [closed]

Do you know the way to freeze funds in lightning tx to implement atomic swap between two independent lightning networks?
0
votes
1answer
31 views

How multiple unfinished payments in single LN channel work?

I think I understand HTLCs, at least if they are on chain. I also have a basic understanding of how off chain channel looks like. I understand it as follows. It is a 2-of-2 multisig transaction ...
0
votes
1answer
78 views

Implement HTLC manually by writing scripts

Is there any way to implement HTLC manually for locking funds in the channels in lightning network for a period of time (by setting intervals) and releasing the funds after the time lock expired using ...
0
votes
1answer
34 views

Destination address(es) when redeeming an HTLC

Starting from this text at https://en.bitcoin.it/wiki/Script: "The script for a typical Bitcoin transfer to destination Bitcoin address D simply encumbers future spending of the bitcoins with two ...
0
votes
1answer
115 views

What is the relation between a Hash Time Lock Contract(HTLC) and a Commitment transaction?

I want to know about what happens to the commitment transactions as the HTLC's are sent and cleared along to peers in a route.
0
votes
1answer
206 views

How to perform atomic swap Bitcoin-Litecoin

I am running Bitcoin and Litecoin nodes fully synced on testnet.Can I perform atomic swapping by using this networks? I heard it can be done through HTLC(Hash Time Locked Contracts). How can I do ...
0
votes
0answers
28 views

non-mandatory-script-verify-flag (Locktime requirement not satisfied) (code 64)

I'm attempting to redeem the following htlc ( the python script below ) via timeout, however the redemption tx errors out upon validation with the error below: bitcoin.rpc.VerifyRejectedError: {'code'...
0
votes
0answers
46 views

How to construct and redeem a bip199 htlc with python-bitcoinlib

Playing with this script, I'd like to understand how to construct a bip199 htlc and redeem it, however this script fails on the OP_EQUALVERIFY and I can't seem to understand why. I'd like an ...
0
votes
0answers
50 views

Method to create P2SH address

I am trying to create a htlc smart contract manually by writing a script and finding the hex using the btcc compiler. Now node A has to create a transaction using that hex and lock money in that p2sh ...
0
votes
1answer
97 views

BOLT #3: Shouldn't timeout be included in the script of “Offered HTLC Outputs” for the local node?

According to the BOLT #3 documentation, the offered HTLC output has the following script that allows the remote node to claim the funds with the payment pre-image and the local node to claim it after ...
0
votes
0answers
18 views

Hash Time Locked Contract (HTLC) using bitcoin-qt [duplicate]

Is it possible to manually create a Hash Time Locked Contract using the bitcoin-qt command line? I have dabbled with manually creating createrawtransaction / sendrawtransaction using the bitcoin-qt ...