Introduction to Lightning Network
Problem of Bitcoin
Bitcoin is a gossip protocol because each node must know about every single transaction that occurs globally
What if just increasing the block limit?
-> we need huge amount of storage
- This will result extreme centralization of Bitcoin nodes and miners to the only oes who could afford this processing
- Having privileged, trusted parties will cause problems
Introduction to Lightning Network
If only two participants care about everyday recurring tx, it's not necessary for all other nodes in the Bitcoin network to know about that tx.
- make local frequent transactions and only the final result will be recorded in Bitcoin network
- they make a contract (smart-contract that is parsable) but go to main blockchain network only in the event
- result is deterministic
Lightning Network
Lightning Network
- Lightning Network is a second layer (Layer 2) for the Bitcoin that increases transaction times(fast) and decreases network congestion
- It uses real Bitcoin tx and its native smart-contract scripting language
- Transaction mechanism btw two parties.
- Peer-to-peer system for micropayments through a network of bidirectional payment channels
- Tx on the Lightning network is faster, less costly, and more readily confirmed than those directly on the Bitcoin
Advantages of Lightning Network
Instant Payments
- Payment speed measured in milliseconds to seconds without worrying about block confirmation time
- Security is enforced by smart-contracts without creating a on-chain tx for individual payments
Scalability
- Capable of millions to billions of tx per second across the network
Low Cost
- By using off-chain, Lightning network allows for exceptionally low fees
Cross Blockchain
- Cross-chain atomic swaps can occur off-chain instantly with heterogeneous blockchain consensus rules
- As long as the chains can support the same cryptographic hash function, it is possible to make transactions across blockchains without trust in 3rd party custodians
How the Lightning Network Works
Opening a payment channel
- Create a peer-to-peer payment channel btw two parties
- To create a payment channel, the payer must lock a certain amount of Bitcoin into the network for deposit
- Customer can keep the channel open, they can choose to add Bitcoin consistently
- The two parties can trasfer funds btw themselves indefinitely without telling the main blockchain
Routing
- Lightning network node can route txs by combining individual payment channels btw the parties
- The lightning network is the outcome of many payment systems being linked together
Consolidation
- When finishing transacting, they can close the channel and all of the information then is consolidated into one transaction, which is sent to the Bitcoin mainnet
Example of how Lightning works
- A and B deposit funds via Bitcoin network to a Lightning account they both control.
- This type of address is known as a multi-signature address
- To receive a payment, A or B will create an invoice typically as QR cods that other wallet can scan
- This payment would only occur on the Lightning Network
- When A makes a payment to B, Bitcoin doesn't move out of the multi-signature address -> Lightning records that A now owns fewer of the account's bitcoin, and B has more
- If they want to close the channel, send the laast account statement to the Bitcoin blockchain
- need the other to approve the transaction
- A and B will both be charged a transaction fee and have to wait about an hour for final settlement to the Lightning account
Routing Protocol
Routing
If A want to send one-time payment to C but they haven't established a channel
-> C can send A an invoice and let the protocol determine if a path btw them through existing channels exists.
- As it turns out, A and C both have channel with their mutual friend B
- B = "hop", B agrees to facilitate A's payment to C in exchange for a small routing fee
- Payment can go through maximum of 20 hops. Each hop comes with an additional routing fee
To ensure that B passes along the Bitcoin meant for C, Lightning network uses hashed timelock contracts(HTLC)
- HTLCs are smart contracts that effectively force B to pay C before A pays B
Privacy Tools
B's node doesn't know who the payment originated with or who the end recipient is
- only knows it received Bitcoin from A and that it had to pass it to C
Onion Routing
- To create private network path like Lightning Network, sender builds a virtual circuit of encrypted conections, called Onion Routing one by one through nodes on the network
- No individual node ever knows the complete path that a data packet has taken
- Sender negotiates a separate set of encryption keys for each hop along the circuit to ensure that each hop can't trace these connections as they pass through
Detail Example
Suppose there three nodes labelled A, B, C btw S(source) and D(destination) with keys $K_A$, $K_B$, $K_C$, $K_S$ resp. are shared with S. Each node and source S have node information $N_A$, $N_B$, $N_C$, $N_S$ resp.
- To send message $m$ to D, S will do the following:
- Compute(one-by-one):
- $C_C$ = $E_{KC}(m,N_D)$; $C_B$ = $E_{KB}(C_C,N_C)$; $C_A = E_{KA}(C_B,N_B)$
- Send $C_A$ to node A (assuming S has $N_A$)
- Compute(one-by-one):
- In each node:
- A will decrypt $C_A$ to $(C_B,N_B)$ and send $C_B$ to B
- B will decrypt $C_B$ to $(C_C,N_C)$ and send $C_C$ to C
- C will decrypt $C_C$ to $(m,N_D)$ and send $m$ to D
- node A, B, C don't know $m$ is originated from S
Hashed Timelock Contract (HTLC)
HTLC
- HTLC is a smart contract that allows tx to be sent btw parties who don't have a direct channel on the Lightning Network
- Individual can structure a payment such that another party can only accept it if the party knows the secret whose hash has been shared with them.
- HTLC use hashlocks and timelocks to ensure payment security
- Receiver acknowledges receiving the payment prior to a deadline by generating cryptographic proof of payment or forfeits the ability to claim the payment, returning it to the payer
- This idea can be extended to allow a sequence of payments
- cryptographic proof of payment the receiver generates can then be used to trigger other actions in other payments
Functionality
- The completion of payments via a routed network using HTLC is probabilistic, depending on the availability of users and the quantity of funds held by users
- To forward payments, users must be live and must have locked funds in a greater quantity then forwarding payment
- This makes the network geared towards dedicated payment processors who will forward transactions in exchange for fees.
Hashlock
- Restrict the spending of an output until a specified piece of data(secret) is publicly revealed
- This allows for payments to be routed through third parties without any risk that the third parties will take the payments themselves
Timelock
- Restrictions on txs or outputs that only allow spending after a point in time to ensure that routed payments cannot be claimed by intermediate nodes
- If the secret is not revealed, the payer of HTLC can get a refund after some time
- by using
CHECKLOCKTIMEVERIFY
- by using
HTLC Code
OP_IF
OP_HASH160 <Hash160 (R)> OP_EQUALVERIFY
2 <Alice2> <Bob2> OP_CHECKMULTISIG
OP_ELSE
2 <Alice2> <Bob2> OP_CHECKMULTISIG
OP_ENDIF
- First path sends funds to Bob if Bob can produce R
- Second path is redeemed using a 3-day timelocked refund to Alice
Issue
- For all payments btw two parties, HTLC require hashlocks to be resolved and routes to be found -> overhead
- result in higher work and BW requirements for nodes in the network
Payment Routing
Gateway Nodes
- Nodes that directly serve end users
- serve a relatively small # of users and will have modest hardware, BW, capital requirements
- over time, gateway nodes will become more highly connected
Routing Capabilities
- Lightning Nodes can determine routes to any node in the network
Real World Use cases
El Salvador
- Bitcoin as a legal tender and Lightning Network as a Wallet
- The country's Chivo wallet is Lightning-enabled, and merchants use the network to accept bitcoin for everyday payments
Summary
Pros of Lightning Network
Lightning Network is faster and cheaper
- enabling micropayments
- cheaper than accepting credit cards
- unlike Bitcoin, Lightning has no minimum transaction value. A single Satoshi can be sent
Secure
- Lightning network still benefits from Bitcoin's security protocols
- Lightning network payment channel provide private transactions
Cons of Lightning Network
Compatibility with Bitcoin
- User must lock up their Bitcoin to create a payment channel and they lose some Bitcoin to interact with the protocol
Channel closure
- It's not possible to pull out a little bit of money and leave the channel open
Offline transaction scams
- If one participant in a payment channel chooses to close it while the other party is offline, the former can steal the funds
- when later party finally comes online, it's too late to do anything
Stuck Payments
- Bugs such as stuck payments, which are outgoing transactions that don't see verification
- Bitcoin network will refund a stuck payment, but it can take days to acquire
Regulators
- Regulators might now allow Lightning Network due to its ananomity because it's hard to trace
'CS > 블록체인응용' 카테고리의 다른 글
Lec 7-2: Proof-of-Stake (0) | 2023.10.20 |
---|---|
Lec 7-1: Ethereum (0) | 2023.10.20 |
Lec 5: Bitcoin Transaction (1) | 2023.10.19 |
Lec4: Digital Signature (1) | 2023.10.19 |
Lec3: HashCash and Proof-of-work in Blockchain (1) | 2023.10.19 |