[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
