mirror of
https://github.com/lnbook/lnbook
synced 2024-11-04 18:00:26 +00:00
218 lines
6.4 KiB
Plaintext
218 lines
6.4 KiB
Plaintext
[preface]
|
|
== List of topics
|
|
|
|
This is a list of grouped topics that might be covered in the book.
|
|
It will lead to the creation of an index.
|
|
The grouping is obviously not unique and there is no notion of priority compiled to this proposal.
|
|
Some topics occur in several groups.
|
|
|
|
=== Review of Bitcoin
|
|
Review of some mechanics and terms from Mastering Bitcoin. This would probably be rather technical.
|
|
|
|
* address
|
|
* Asymmetric Cryptographic System
|
|
* bech32
|
|
* bip
|
|
* bitcoin
|
|
* Bitcoin Mining
|
|
* block
|
|
* Blockchain
|
|
* coinbase
|
|
* coinbase transaction
|
|
* cold storage
|
|
* confirmations
|
|
* Digital Signature
|
|
* double-spending
|
|
* ECDSA
|
|
* fees
|
|
* hash
|
|
* Hash Function
|
|
* Locktime and CLTV
|
|
* multisignature
|
|
* output
|
|
* P2PKH
|
|
* P2SH
|
|
* P2SH address
|
|
* P2WPKH
|
|
* P2WSH
|
|
* Proof-of-Work
|
|
* RIPEMD-160
|
|
* Sequence and CSV
|
|
* Script
|
|
* ScriptPubKey (aka pubkey script)
|
|
* ScriptSig (aka signature script)
|
|
* secret key (aka private key)
|
|
* Segregated Witness
|
|
* SHA
|
|
* Simplified Payment Verification (SPV)
|
|
* soft fork
|
|
* Transaction
|
|
* unspent transaction output (UTXO)
|
|
* wallet
|
|
|
|
=== Motivation: Why the Lightning Network
|
|
|
|
* clear definition what does scaling of a computer system mean? (I realize that discussions often fail because that term is not well defined among participants. A similar definition might be necessary for Decentralized and trustless)
|
|
* Scale Payments (amount of possible payments independent of block size / data base size)
|
|
* increase privacy (not all payments stored on chain)
|
|
* decrease settlement time (get rid of confirmations)
|
|
|
|
=== Using / transacting Bitcoin with the Lightning Network
|
|
This group of topics would be end user oriented and is rather non technical.
|
|
|
|
* channels:
|
|
** Balance
|
|
** Capacity
|
|
** Closing
|
|
** Maximal channel size
|
|
** Opening
|
|
** Peer
|
|
* install a wallet / node
|
|
** cellphone
|
|
** desktop
|
|
** specialized hardware (RaspiBlitz)
|
|
** server / full node
|
|
* make a payment
|
|
** fees
|
|
** invoice
|
|
** maximal payment size
|
|
** payment hash
|
|
** Preimage
|
|
* pitfalls
|
|
** don't double pay!
|
|
** stay online / connected
|
|
|
|
=== Operating and securing a Lightning Network node
|
|
While also important for end users to be aware of some of the topics here it is primarily meant for professionals and developers.
|
|
|
|
* backup & restore a Lightning Network node
|
|
* configure a Lightning network Node
|
|
** max concurrent htlc in flight
|
|
** min channel size
|
|
** max channel size
|
|
** cltv_expiry delta
|
|
** routing fees
|
|
** min / max htlc msat
|
|
** network (mainnet, testnet, regtest)
|
|
** address / port / tor
|
|
** funding confirm
|
|
** logging
|
|
* Denial of service attack vectors
|
|
* hardware wallet
|
|
* hot wallet hot wallet risk
|
|
* uptime
|
|
* watchtowers
|
|
|
|
=== BOLT 1.0
|
|
A summary of how the Lightning Network protocol works.
|
|
|
|
* BOLT
|
|
* Penalty Transaction
|
|
* Closing Transaction
|
|
* Commitment Transaction
|
|
* Contract
|
|
* Diffie Hellman Key Exchange
|
|
* Ephemeral Key
|
|
* features
|
|
** local
|
|
** global
|
|
* Funding Transaction
|
|
* Gossip Protocol
|
|
* Hashlocks
|
|
* HTLC
|
|
* Invoice
|
|
* It's ok to be odd rule
|
|
* Locktime
|
|
* Millisatoshi
|
|
* Noise_XK
|
|
* Onion Routing
|
|
* Penalty Transaction
|
|
* Relative Timelock
|
|
* Revocable Sequence Maturity Contract
|
|
* Revocation Key
|
|
* Second stage HTLC
|
|
* Source-Based Routing
|
|
* SPHINX Mix Format
|
|
* Transaction Malleability
|
|
* Transport Layer
|
|
|
|
=== BOLT 1.1 / 2.0
|
|
Future trends and developments on the Lightning Network.
|
|
|
|
* discreet log contracts
|
|
* dual funded channels
|
|
* eltoo Channels
|
|
** multiparty channels
|
|
** Channel Factories
|
|
* multipath Payments
|
|
* scriptless scripts
|
|
* splicing
|
|
* watchtowers
|
|
* wumbo
|
|
* Rendez vous Routing
|
|
|
|
More ideas could be taken from https://github.com/lightningnetwork/lightning-rfc/wiki/Lightning-Specification-1.1-Proposal-States
|
|
|
|
=== Lightning Network as a Data Set & Software System
|
|
Everything about the Lightning Network that is not covered by the BOLTs but important for developers.
|
|
|
|
* Autopilot
|
|
* centrality
|
|
* c-lightning
|
|
* Eclair
|
|
* graph (theory)
|
|
* lnd
|
|
* privacy
|
|
* social network analysis
|
|
* Topology
|
|
* Traffic analysis
|
|
* pathfinding
|
|
** AMP https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/000993.html
|
|
** JIT https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-March/001891.html
|
|
** Trampoline routing https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-April/001950.html
|
|
** permuteroute https://github.com/ElementsProject/lightning/pull/2890
|
|
** Real time strategy games https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-August/002095.html
|
|
|
|
=== Building on top of the Lightning Network
|
|
|
|
Creating Lightning Network Applications:
|
|
* Client libraries
|
|
* Common pitfalls
|
|
** concurrent payments in custodial settings
|
|
* example lapps
|
|
** paywall Example https://github.com/renepickhardt/HackALapp
|
|
** streaming example: currently working on a dollar cost averaging (DCA) streaming service to your own custody, that allows one to be able stack sats on lightning network. Will provide links to example soonish.
|
|
** more ideas: https://bitcoingames2019.devpost.com/submissions
|
|
* btc pay server
|
|
* Turbo Channels https://medium.com/@akumaigorodski/instant-channels-enable-safe-lightning-payments-with-unconfirmed-funding-8d640defa183
|
|
|
|
=== Comparisons and examples
|
|
The following is a loose list of potential infoboxes, tables and dropins which will most likely make it to some part of the book.
|
|
They have particular illustrative purpose and are therefore collected separately to keep better track of them.
|
|
|
|
==== Comparisons
|
|
* payment process on Bitcoin vs payment process on the lightning network
|
|
* transaction vs payment
|
|
* capacity vs balance
|
|
* routing fees vs mining fees
|
|
* private vs public channel (difficulty to have truly private channels that don't reveal over time on the blockchain?)
|
|
* source based routing vs best effort routing (onion routing vs IP forwarding)
|
|
* eltoo vs RSMC (?)
|
|
* private key vs fully signed transaction (it can be seen as almost the same in the sense of ownership)
|
|
* locked bitcoin vs freely movable bitcoin (on-chain vs. off-chain bitcoin)
|
|
* routing vs path finding
|
|
|
|
==== Examples
|
|
TBA.
|
|
|
|
==== Properties
|
|
|
|
* the seven ingredients for a payment channel c.f: https://youtu.be/AcP3czefanM
|
|
** 2-2 musig address
|
|
** funding transaction to open the channel (without possibility to malleate the transaction)
|
|
** commitment transaction to encode the balance of the channel
|
|
** a time lock to remove trust
|
|
** a communication protocol for partners exchange data outside of the bitcoin network
|
|
** asymmetrical information (unless we switch to eltoo but even there not all keys are shared but channel state is symmetric)
|
|
** game theoretic and economical incentives to follow the protocol
|