Payment channels

From Bitcoin Wiki
Revision as of 21:12, 28 October 2016 by Harding (talk | contribs) (Quick payment channels article; needs references---I'll come back to add them later)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A Payment Channel is class of techniques designed to allow users to make multiple Bitcoin transactions without commiting all of the transactions to the Bitcoin block chain. In a typical payment channel, only two transactions are added to the block chain but an unlimited or nearly unlimted number of payments can be made between the participants.

Several channel designs have been proposed or implemented over the years. A few of these include,

  • Nakamoto high-frequency transactions: implemented in Bitcoin 0.1 were features such as transaction replacement and input sequence numbers (nSequence) that would allow two or more parties to repeatedly update the state of an unconfirmed transaction prior to it becoming confirmed. This design was not secure: one party could collude with a miner to commit a non-final version of the transaction, possibly stealing funds from the other party or parties.
  • Spillman-style payment channels: discussed on the bitcoin-development mailing list and implemented in BitcoinJ used an additional feature provided in Bitcoin 0.1 (nLocktime) to prevent miners from being able to commit a non-final version of the transaction. However, opening a channel in the Spillman model exposed the depositor to malleability risk where the counter party would be able to hold the depositor's funds hostage.
  • CLTV-style payment channels: were made possible in Decemember 2015 by the activation of the CLTV soft fork after discussion that began in the #bitcoin-wizards IRC channel, moved to the bitcoin-development and bitcoin-dev mailing lists, and included a design specification in BIP65. Channels constructed using the new OP_CLTV opcode were resistant to the malleability problem inherient in the Spillman-style construction.
  • Hash Time-Locked Contracts (HTLCs) are a technique that can allow payments to be securely routed across multiple payment channels. For example, if Alice has a channel open to Bob and Bob has a channel open to Charlie, Alice can use a HTLC to pay Charlie through Bob without any risk of Bob stealing the payment in transit. HTLCs are integral to the design of more advanced payment channels such as those used by the Lightning Network.

Hashbtc.jpgThis page is a stub. Help by expanding it.