Bitcoin Lightning Network ทำงานอย่างไร? จากการเปิด Channel ไปจนถึงการจ่ายค่ากาแฟภายในไม่กี่วินาที
มีความจริงอยู่หนึ่งประการที่ใครๆก็รู้กันนั่นก็คือ Bitcoin มี Block ใหม่เกิดขึ้นโดยเฉลี่ยประมาณทุก ๆ 10 นาที
และบางช่วงเราก็อาจต้องรอนานกว่านั้นเพราะ Block Time ของ Bitcoin มันเกิดจากการประมาณการซึ่งมันไม่แน่ไม่นอน
ยิ่งถ้าหากว่าเราจะรอให้มันเกิดหลาย Confirmation ก็จะยิ่งนานเข้าไปใหญ่
คุณลองคิดดูนะ ถ้าวันหนึ่งผมเดินเข้าไปในร้านกาแฟเพื่อซื้อกาแฟ
จากนั้นผมก็หยิบโทรศัพท์ขึ้นมา
แล้วผมก็เปิด Lightning Wallet
จากนั้นผมก็ Scan QR Code
ละก็กดปุ่ม
PAY
…
ติ๊ง! ⚡
แล้วพนักงานของร้านก็บอกว่าได้รับ Bitcoin แล้ว
ทั้งหมดนี่ใช้เวลาเพียงไม่กี่วินาที
เอ๊ะ… แต่เดี๋ยวนะ…
Block ใหม่แม่งยังไม่เกิดเลยนี่หว่า 😂
แล้ว Transaction ของผมอยู่ใน Block ไหน?
แล้ว Miner คนไหนขุดมัน?
แล้ว Transaction ของผมที่จ่ายค่ากาแฟนี่ได้กี่ Confirmation แล้ว?
เมื่อผมเปิด Block Explorer หา Transaction ที่เพิ่งจ่ายไป…
ผลปรากฏว่า…ไม่มี!!!!
ไม่มี Transaction นี้อยู่ใน Blockchain !!!
แล้วทำไมเรื่องนี้มันไม่เหมือนกับ Bitcoin Transaction ที่เราเรียนกันมาก่อนหน้านี้วะ?
นี่แหละครับคือจุดที่ผมเริ่มสนใจว่า
Bitcoin Lightning Network มันทำงานยังไงกันแน่?
และก็เหมือนเดิมครับ
วันนี้ผมไม่อยากเริ่มด้วยประโยคว่า
Lightning Network คือ Layer 2 Payment Protocol……
ผมขอเบรกดังเอี๊ยดดดดดดดดด…… กับการจั่วหัวข้อแบบนี้
วันนี้เราจะลองสร้างมันขึ้นมาเองด้วยมือของเราเอง
แน่นอนว่าเราจะต้องเริ่มจาก Bitcoin ธรรมดา ๆ ที่เรารู้จักกันนี่แหละ
1. ปัญหาของเราคืออะไร?
สมมุติ Alice กับ Bob ชอบซื้อขายของกันเป็นปกติ
แล้ว Alice ก็ชอบจ่ายเงินให้กับ Bob วันละหลายๆครั้ง
ถ้าทุกครั้งต้องสร้าง Bitcoin Transaction แล้ว Broadcast ลงไปใน Network

ถ้าหากว่าทุกๆ Payment แย่งกันใช้พื้นที่ใน Block Space
และทุกๆ Payment จะต้องมี On-chain Fee
และทุกๆ Payment ต้องรอให้ Miner เอา Transaction เข้า Block ถ้าเราต้องการ On-chain confirmation หรืออาจจะต้องรอนานถึง 10 นาทีเพื่อที่จะซื้อกาแฟเพียงแก้วเดียว… โอ้ ตายห่า ไม่ทันกิน
แต่ลองคิดอีกแบบนึงนะ
ถ้า Alice กับ Bob วาง Bitcoin ก้อนหนึ่งไว้ด้วยกันก่อน
แล้วระหว่างวัน…
เราแค่เปลี่ยนว่า
ในก้อนนี้ใครมีสิทธิ์ได้เท่าไหร่ ค้ลายๆกับการจ่ายแบงค์ 1,000 ไว้ที่ร้านค้าก่อน แล้วก็เดินไปเอาสินค้ามาเรื่อยๆแล้วให้ทางร้านหักยอดไปเหมือนกับการลงบัญชีหนังหมา
โดยยังไม่ต้องเขียนทุกการเปลี่ยนแปลงยอดเงินลง Blockchain
แล้วค่อยกลับไปใช้ Blockchain ตอนจำเป็น
จะเกิดอะไรขึ้น?
ตรงนี้เรากำลังจะสร้างสิ่งที่เรียกว่า
Payment Channel
2. การเปิด Lightning Channel นั้นจะต้องกลับไปเริ่มต้นที่ Bitcoin Blockchain ก่อน
สมมุติ Alice ต้องการเปิด Channel กับ Bob
Alice ใส่ 1,000,000 sats เข้าไป
ซึ่งเราจะต้องสร้าง Bitcoin Transaction จริง ๆ ขึ้นมาหนึ่งอัน
อีตรงนี้เราจะเรียกว่า
Concept มันก็จะประมาณนี้

ซึ่งเจ้า Funding Output นี้ถูกสร้างด้วย Spending Conditions ที่ต้องใช้ Key ตามโครงสร้างของ Channel เพื่อทำการ Spend มัน
ถ้าอธิบายแบบพื้นฐานโดยใช้ศัพท์เทคนิคนิดนึง เรามักจะเห็นภาพเป็น 2-of-2 multisig funding output โดยใช้ Public Key ทั้งของ Alice และของ Bob ให้มีสิทธิ์ร่สมกันในการโอนออก

ตรงนี้สำคัญมากนะครับ
ตัว Lightning เองไม่ได้หนีออกจาก Bitcoin Blockchain เลยนะ
จุดเริ่มต้นของ Channel ยังจำเป็นต้องอาศัย Bitcoin Transaction ของจริง
และแน่นอนว่า Bitcoin Lightning ที่โอนไปโอนมาระหว่าง Bob กับ Alice ก็เป็น Bitcoin ของจริง แค่มันล่องลอยอยู่อีกสถานะนึงเท่านั้น
และสุดท้ายมันก็สามารถกลับมา Settlement บน Bitcoin ได้ง่ายดาย แม้เวลาจะผ่านไป 10 ปีก็ตาม
เพราะงั้นถ้าเราเคยเรียน Blog ก่อน ๆ มาแล้ว… ไม่ว่าจะเป็น
เรื่องราวของ Bitcoin Transaction
ของพวกนั้นไม่ได้หายไปไหนเลย
ซึ่ง Bitcoin Lightning มันกำลังสร้างอะไรบางอย่างอยู่ บนพื้นฐานของ Bitcoin ปกตินั่นเอง
3. แล้ว Bitcoin ในแต่ละ Channel มันแบ่งกันยังไง?
เริ่มจากตอนเปิด Channel ผมทำการสมมุติให้ State เริ่มต้นเป็นแบบนี้ละกัน

จากนั้น Alice ได้ทำการซื้อของจาก Bob เป็นเงินจำนวน 100,000 sats
สิ่งที่เราไม่อยากทำคือสร้าง On-chain Transaction ใหม่ทุกครั้ง
เราเพียงแค่ต้องการ Update State ของมันเป็น

จากนั้นเมื่อ Alice ทำการจ่ายให้ Bob อีก 200,000 sats มันก็จะเป็น

จากนั้นก็ทำการจ่ายอีก 50,000 sats มันก็จะเป็น

ตรงนี้คุณสังเกตอะไรไหม?
Bitcoin Blockchain ยังไม่ได้รับ Payment ทั้งสามรายการนี้บน On-chain Transaction เลยนะ
เราเพียงกำลังเปลี่ยน สถานะการแบ่งสิทธิ์ใน Channel ก็เท่านั้นเอง
และตรงนี้เราจะเจอของอีกชิ้นหนึ่งที่เรียกว่า
Commitment Transaction
อ่าาาาาาห์…มาละไงอีดอก
4. Commitment Transaction คืออะไร?
ถ้า Alice กับ Bob แค่เปิด Excel แล้วเขียนว่า

มันก็ไม่ได้มี Security อะไรเลย ถูกมะ ?
แล้วถ้า Bob เสือกแก้ Excel เป็น

นี่ก็คือจบข่าวในพระราชสำนักเลยนะ
ซึ่งไม่ด้ายยยยยยยยยยยยย…..
แน่นอนว่า Lightning Network จะต้องมีวิธีทำให้แต่ละฝ่ายมี Transaction ที่สามารถใช้ Settlement สถานะของ Channel ลง Bitcoin Blockchain ได้อย่างถูกต้องและ Secure ภายใต้กฎของ Protocol
นั่นคือบทบาทของ Commitment Transactions
ซึ่ง Concept ของมันก็ง่ายมาก :

และหลังจากที่มีการจ่ายเงินเกิดขึ้นก็สร้าง Commitment Transaction ขึ้นมาใหม่ :

จ่ายอีกก็สร้าง Commitment Transaction ขึ้นมาใหม่อีกรอบทับของเดิม :

ซึ่งในระบบ Lightning ของจริงนั้นไม่ได้มีแค่ “Balance Table” แบบนี้นะ
กล่าวคือในแต่ละ Peer จะมี Commitment Transaction ของตัวเอง และจะต้องมี Outputs/Scripts ที่ถูกออกแบบให้มีเงื่อนไขสำหรับการ Settlement และมีการจัดการ State เก่าที่ถูกยกเลิกไปแล้วอย่างเหมาะสม
นี่คือจุดสำคัญของ Lightning Network :
เรากำลังทำการ Update Bitcoin Transaction โดยที่ยังไม่จำเป็นต้อง Broadcast ไปสู่ Blockchain
คุณเริ่มเห็นความบ้าแล้วใช่ไหม ?
5. แล้วถ้า Alice โกง Bob โดยการเอา State เก่ามา Broadcast ล่ะ?
ผมสมมุติให้สถานะล่าสุดคือ

แต่ Alice มี Commitment State เก่าที่ตอนนั้นเป็น

แล้วถ้า Alice Disconnect ออกจาก Peer ไป
แล้วเอา State เก่าๆที่ให้ตัวเองได้เงินเยอะๆไป Broadcast ล่ะ?
ซึ่งถ้ามันทำได้ง่าย ๆ แบบนั้น…
ผมบอกได้เลยว่า Lightning Network จบตั้งแต่ตรงนี้แน่นอน
ซึ่งใน Lightning Network แบบ Original นั้น การ Update Channel จะไม่ได้แค่สร้างแค่ State ใหม่
ยิ่งไปกว่านั้นคือ State เก่าจะถูก Revoked ออกไปด้วย
Commitment Transaction ใช้ Script และ Timelock/Revocation mechanism เพื่อทำให้การ Broadcast revoked state มีความเสี่ยงอย่างมากต่อคนที่อยากจะโกง
ซึ่ง Concept ของมันก็คือ

ซึ่งถ้า Alice ทำการ Broadcast revoked commitment แล้วล่ะก็
Bob สามารถใช้ข้อมูล Revocation ที่ได้รับจากการ Update State แล้วทำการ Claim funds ตามเงื่อนไขของ Channel ได้ทันที ทีนี้ล่ะ Bob จะแดกตังค์ได้เกลี้ยง Channel เลย
นี่เป็นเหตุผลหนึ่งที่ Lightning Node ต้องดูแล Channel State อย่างจริงจัง ต้อง Online เสมอ
ทีนี้จึงตามมาด้วยคำถามที่ว่า ทำไมการ Backup ของ Lightning Node จึงไม่เหมือนกับการ Backup Bitcoin Wallet ธรรมดา
หากว่าคุณกำลังมีความคิดนี้อยู่ในหัว อาทิเช่น
“กูอยากรัน Lightning Node เองจังเลยว่ะ”
จากนี้ไปมันจะเริ่มมีของให้รับผิดชอบมากขึ้นแล้วนะครับ ไปดูกันต่อเลยดีกว่า
6. แต่ตอนนี้ Alice จ่ายเงินให้ได้แค่ Bob ไม่ใช่เหรอ?
ถูกต้อง!!!
และถ้า Lightning Network จะทำได้แค่…
ประมาณว่า Alice จำเป็นต้องเปิด Channel กับร้านกาแฟทุกแห่งบนโลก…

แน่นอนว่า Wallet มึงน่าจะระเบิดก่อน 😂
และสิ่งที่ทำให้ Bitcoin Lightning Network กลายเป็น Network จริง ๆ ก็คือ…
เราไม่จำเป็นต้องมี Direct Channel กับคนที่เราต้องการจะจ่ายเงินเสมอไป
เราไม่จำเป็นต้องเปิด Channel กับชาวบ้านไปทั่ว
ผมสมมุติให้

แน่นอนว่า Alice ไม่มี Channel โดยตรงกับ Dave
แต่ Alice ต้องการจ่ายเงินให้ Dave เป็นจำนวน 50,000 sats
ซึ่งถ้า Network ระหว่างทางมี Liquidity และ Route ที่เหมาะสมแล้วล่ะก็
Payment จะสามารถเดินทางแบบนี้ได้ เหมือนฝากกันจ่ายต่อๆกันไป

ทีนี้คำถามคือ…
Alice จะไว้ใจ Bob กับ Carol ได้ยังไง ว่าไอ่คนตรงกาลางจะไม่บิดกู?
ซึ่งถ้าหากว่า Alice จ่าย Bob ก่อน
จากนั้น Bob เสือกบอก
ขอบคุณนะ กูไปละ
บรรลัยจักรทันที 😂
ซึ่งตรงนี้เราต้องดำดิ่งไปกับอีกสิ่งนึงซึ่งนั่นก็คือ
7. HTLC — อุปกรณ์ที่จะทำให้คนตรงกลางกลายเป็นคนซื่อสัตย์ขึ้นมา
สมมุติ Dave สร้างตัวเลข Secret ขึ้นมาตัวหนึ่งแบบสุ่มๆเอา
เรียกว่า Preimage

จากนั้นก็เอามันไป Hash

ทีนี้ Alice ก็จะรู้ Payment Hash ใช่ป่ะ ?
แต่เขาจะยังไม่รู้ Preimage
ซึ่งอี Payment นี้จะถูกสร้างแบบมีเงื่อนไขประมาณว่า
“ถ้าคุณสามารถเปิดเผย Preimage ที่ Hash แล้วได้ค่า Payment Hash นี้ คุณสามารถ Claim Payment ได้ทันที”
เวลาที่เราสร้าง Lightning Invoice นั่นแหละคือการสร้าง Preimage และเมื่อจ่ายเงินสำเร็จมันก็จะเกิด Payment Hash ซึ่งเมื่อมี Payment Hash นั่นก็แปลว่าได้ทำการจ่ายเงินสำเร็จแล้วนั่นเอง
มันจึงเกิดเป็น Route แบบนี้

ซึ่งแน่นอนว่า Dave จะต้องมีมี Preimage
แล้ว Dave ก็จะทำการ Reveal มันเพื่อ Claim Payment เป็นของตัวเอง โดยที่คนตรงกลางไม่สามารถขโมยยอดเงินตรงนี้ไปเป็นของตัวเองได้เนื่องจากไอ่ Preimage หรือ Secret นี้มันถูก Hash ไว้ นั่นเอง

แต่ละ Hop จึงสามารถ Settlement HTLC ที่เกี่ยวข้องได้
นี่คือแนวคิดของ
HTLC — Hashed Time-Locked Contract
ซึ่งคำว่า Time-Locked ก็สำคัญนะ
เพราะถ้า Payment ไปไม่ถึงปลายทางขึ้นมาจะทำยังไง? หาก Alice กับ Dave กำลังจะทำการฝากส่งเงินไปหากัน แต่ระหว่างทางนั้น Carol เสือก Offline ไปเฉยๆ ก็จบเห่ ฉะนั้นไอ่ตัว Time-Locked จึงมีผลทำให้ยอดเงินสามารถเด้งกลับมาที่เก่าได้ แล้วค่อยมาทำการโอนจ่ายกันใหม่อีกครั้ง แล้ว Lightning Node มันก็จะ Route ไปอีกทางนึง
เพราะฉะนั้น HTLC จึงมี Timeout conditions ให้สามารถย้อนกระบวนการตามเงื่อนไขของ Protocol ได้
นี่คือหนึ่งในของที่ทำให้ Multi-hop Lightning Payment สามารถเกิดขึ้นได้โดยไม่ต้อง Trust Router ว่า
มึงช่วยส่งเงินต่อให้กูด้วยนะ ขอร้องล่ะ มึงอย่าโกงกูนะ
ซึ่งสบายใจหายห่วงได้เลยเพราะว่า Protocol เป็นคนสร้างเงื่อนไขเหล่านี้ให้แบบอัตโนมัติ
8. แน่นอนว่ามี 1,000,000 sats ไม่ได้แปลว่าคุณจะรับส่งได้ 1,000,000 sats นะ
และแล้วก็มาถึงในส่วนของ Welcome to…
Liquidity 😂
นี่เป็นจุดที่คนเริ่มรัน Lightning Node มักจะเจอปัญหาจริง
สมมุติ Channel ของคุณมี Capacity

และมี Lastest State เป็น

โดยคร่าว ๆ คุณมี Liquidity ฝั่งตัวเองสำหรับการส่งออกมากกว่าอีกฝั่ง
เรามักเรียกแนวคิดนี้ว่า Outbound Liquidity
แต่ถ้าคนอื่นอยากส่งเงินเข้าหาคุณผ่าน Channel นี้
อีกฝั่งต้องมี Liquidity ที่สามารถเคลื่อนมาทางคุณได้

ซึ่งพื้นที่ในการรับเงินจาก Direction นี้จึงมีจำกัด
ในทางกลับกัน

ซึ่งในตอนนี้คุณเองก็มีศักยภาพรับเข้าผ่าน Channel นี้มากขึ้น
แต่ความสามารถส่งออกของคุณผ่าน Direction นั้นลดลง
นี่คือประโยคที่สำคัญมาก :
มี Bitcoin อยู่ใน Channel แต่ไม่ได้แปลว่ามี Lightning Liquidity ในทิศทางที่ต้องการเสมอไป
และมันยิ่งซับซ้อนยิ่งขึ้นเมื่อ Payment ต้องผ่านหลาย Hop ใน Netwrok เช่น :

แน่นอนว่าทุกๆ Channel ใน Route นั้นจะต้องมี Liquidity ใน Direction ที่ Payment ต้องเดินทาง
หาก Channel ใด Channel หนึ่งเกิดตันขึ้นมา…
Payment Route นั้นก็จะไปต่อไม่ได้
นี่คือโลกที่คนรัน Node ต้องเริ่มสนใจ
Channel Capacity
Local Balance
Remote Balance
Outbound Liquidity
Inbound Liquidity
Routing Fees
Peer Selection
Channel Management
จากตอนแรก
กูจะรัน Node เป็นธนาคารของตัวเอง 😎
ผ่านไปสองอาทิตย์
ทำไมกูรับเงินไม่ได้วะ
😂
9. แล้วเราจะปิด Channel ได้ยังไง?
สุดท้ายแล้ว Channel ไม่จำเป็นต้องอยู่ตลอดไป
Alice กับ Bob สามารถปิด Channel แล้ว Settlement กลับลง Bitcoin Blockchain ได้ทุกเมื่อที่ต้องการ
แบบที่ทั้งสองฝ่ายร่วมมือกันเรียกว่า Cooperative Close
Concept ของมันก็คือ :

ซึ่งยอดเงินนั้นก็จะกลับมาที่ On-chain
แต่ถ้าอีกฝ่ายเกิด Offline หรือไม่ให้ความร่วมมือ
Channel ยังมีวิธี Force Close ตาม Commitment Transaction ที่ถืออยู่
ตรงนี้ Timelock และการจัดการ Outputs จะเข้ามามีบทบาท และอาจต้องรอ Block ตามเงื่อนไขก่อนที่เงินบางส่วนจะเอาไป Spend ได้ ซึ่งศัพท์ในวงการจะเรียกว่าติด Timelock oyjogv’
ดังนั้นภาพใหญ่ของ Bitcoin Lightning Network จริง ๆ ก็คือ

และนี่คือจุดที่ผมเริ่มเข้าใจคำว่า Off-chain ดีขึ้น
ซึ่งคำว่า Off-chain ไม่ได้แปลว่า
ไม่เกี่ยวข้องกับ Blockchain อีกต่อไปแล้ว
แต่มันหมายความว่าเราไม่จำเป็นต้อง Publish ทุก Intermediate State เป็น On-chain Transaction เสมอไป
นี่คือโลกของคนที่อยากรัน Lightning Node เอง
ถ้าคุณอ่านมาถึงตรงนี้แล้วรู้สึกว่า
แม่งสนุกดีว่ะ
ก็ยินดีด้วยครับ
คุณอาจเป็นพวกเดียวกับผม 😂
นี่คือโลกของคนที่อยากรัน
LND
Core Lightning
LDK
หรือ Infrastructure ที่เกี่ยวข้อง
คุณจะเริ่มเจอคำถามใหม่ ๆ
เราควรเปิด Channel กับใคร?
แล้วขนาดของ Channel ควรใหญ่แค่ไหน?
เราจะเอา Inbound Liquidity เอามาจากไหน?
แล้ว Outbound เหลือเท่าไหร่?
เาควรตั้ง Routing Fee เป็นเท่าไหร่?
หาก Node Offline จะเกิดอะไรขึ้น?
เราจะ Backup Channel ยังไง?
แล้ว Force Close คืออะไร?
แล้ว Watchtower คืออะไร?
แล้ว Channel Rebalancing คืออะไร?
ทำไม Payment Route Fail?
และนี่คือจุดที่คำว่า
Be Your Own Bank
เริ่มไม่ได้ฟังดูเป็น Quote เท่ ๆ อย่างเดียวแล้ว
เพราะถ้าคุณเลือกควบคุม Infrastructure เอง…
คุณก็ต้องรับผิดชอบ Infrastructure เองเหมือนกัน
แล้วคนธรรมดาต้องรู้เรื่องเหี้ยพวกนี้ทั้งหมดไหม?
ไม่ต้องครับ
😂
หลังจากผมลากคุณผ่าน Funding Transaction, Commitment Transaction, Revocation, HTLC, Routing, Liquidity และ Force Close มาเป็นกิโล…
ถ้าคุณเป็นคนธรรมดาที่แค่อยากซื้อกาแฟ
คุณอาจใช้ Custodial Lightning Wallet
ประสบการณ์อาจมีแค่นี้

จบข่าว
คุณไม่ต้องไปเปิด Channel กับใครเขา
ไม่ต้องหา Peer
ไม่ต้องหา Inbound Liquidity
ไม่ต้อง Rebalance
ไม่ต้องดู Node 24 ชั่วโมง
ไม่ต้องเข้าใจ HTLC
ไม่ต้องรู้ด้วยซ้ำว่า Payment วิ่งผ่าน Node ไหนบ้าง
ผู้ให้บริการ Wallet เป็นคนจัดการ Bitcoin Lightning Network Infrastructure อยู่ข้างหลังให้คุณ
นี่คือเหตุผลที่ Lightning สำหรับผู้ใช้ทั่วไป…
สามารถรู้สึกง่ายมาก
ทั้งที่ข้างหลังแม่งไม่ได้ง่ายเลย 😂
แต่ความง่ายนั้นแลกกับอะไร?
ถ้าเป็น Custodial Wallet
โดยทั่วไปผู้ให้บริการเป็นผู้ควบคุม Bitcoin/Lightning funds ที่อยู่เบื้องหลัง Account Balance ของคุณ
คุณกำลัง Trust ผู้ให้บริการบางส่วน
มันคล้ายกับสิ่งที่เราเคยคุยกันใน Blog Bitcoin Self Custody คืออะไร
หน้าจออาจเขียนว่า
100,000 sats
แต่คำถามคือ
ใครถือ Key ที่สามารถควบคุม Bitcoin ในตัวเลข Balance นั้น?
ถ้าคำตอบคือบริษัท Lightning Wallet
นี่คือคุณกำลังใช้ Bitcoin Lightning Network เต็มๆ
แต่ไม่ได้หมายความว่าคุณกำลัง Self Custody Bitcoin เหล่านั้นด้วยตัวเอง
ไม่ได้แปลว่า Custodial Wallet นั้น “เลว” เสมอไป
แต่มันเป็น Trade-off
ซึ่งมันทำให้ชีวิตของคุณนั้นง่ายขึ้น
แต่ต้องแลกกับการ Trust Custodian มากขึ้นเช่นกัน
แล้วมันมีตรงกลางไหม?
แน่นอนว่า มีครับ
โลกใบนี้ไม่ได้มีแค่

ยังมี Self-custodial Lightning Wallet และ Architecture หลายรูปแบบที่พยายามซ่อน Complexity ของ Channel Management จากผู้ใช้อีกด้วย
ภาพ Concept จึงออกมาประมาณนี้

เส้นแบ่งของจริงไม่ได้คมเป๊ะขนาด Diagram นี้
แต่ Concept ที่สำคัญก็คือ
ความง่าย กับ การควบคุม ไม่ได้เป็นเรื่องเดียวกัน
และ Wallet แต่ละแบบก็จะมี Trade-off ที่ไม่เหมือนกัน
Bitcoin Lightning Network ทำงานอย่างไร? ลองประกอบเครื่องทั้งหมดอีกครั้ง
ตอนนี้เราก็มีของครบแล้ว

ทีนี้คำว่า
Bitcoin Lightning Network
เริ่มไม่ได้ดูเหมือนเวทมนตร์แล้วใช่มั้ย ?
มันไม่ได้ทำให้ Bitcoin Blockchain สร้าง Block ทุก 2 วินาที
มันไม่ได้ทำให้ Miner ขุดเร็วขึ้น
และไม่ได้เปลี่ยน Bitcoin ให้กลายเป็น Database ที่เขียน Transaction ได้เป็นล้านครั้งต่อวินาที
มันใช้แนวคิดอีกแบบ
ไม่เอาทุก Payment ไปเขียนลง Blockchain ตั้งแต่แรก ก็แค่นั้นเอง
FAQ — Bitcoin Lightning Network
Bitcoin Lightning Network คืออะไร?
Bitcoin Lightning Network เป็น Payment Network ที่ใช้ Bitcoin Channels เพื่อให้ผู้ใช้สามารถ Update การจัดสรรมูลค่าระหว่างกันได้โดยไม่ต้อง Broadcast ทุก Payment เป็น On-chain Transaction โดย Channel เริ่มต้นด้วยยอดเงินจำนวนหนึ่งและสามารถ Settlement กลับไปยัง Bitcoin Blockchain ได้
Lightning Network ต้องใช้ Bitcoin Blockchain ไหม?
ต้องใช้
เพราะการเปิด Channel นั้นมันเชื่อมโยงกับ On-chain Funding Transaction แบบเต็มข้อและการปิด Channel ก็คือการ Settlement เงินกลับสู่ On-chain ซึ่งคำตอบสุดท้ายของมันก็คือ Lightning ไม่ได้เป็น Network ที่แยกขาดจาก Bitcoin ซะทีเดียว
Lightning Payment อยู่บน Blockchain หรือไม่?
Payment ภายใน Channel ที่เกิดขึ้นบน Port Internet คู่ขนานและไม่ได้ถูกบันทึกเป็น Bitcoin On-chain Transaction ทุกครั้งที่มีการโอน
ซึ่ง Blockchain จะมองเห็น On-chain transactions ที่เกี่ยวข้องกับ Lightning แค่ Funding และ Closing/Force-closing transactions และ Bitcoin Full Node จะไม่มีทางมองเห็น Intermediate Payment ที่เกิดขึ้นภายใน Channel ของ Lightning Network
HTLC คืออะไร?
HTLC หรือ Hashed Time-Locked Contract ซึ่งเป็นกลไกที่ใช้งาน Hash condition และ Time condition เพื่อช่วยให้ Conditional Payments สามารถส่งผ่านหลาย Hop ได้โดยไม่ต้อง Trust Router
Inbound Liquidity คืออะไร?
Inbound Liquidity คือความสามารถโดยประมาณในการรับ Payment เข้ามายัง Node ผ่าน Channel Direction ต่าง ๆ ซึ่งขึ้นอยู่กับการกระจาย Liquidity และ Route ที่มีอยู่ ไม่ได้ขึ้นอยู่เพียงว่าคุณ “มี Bitcoin กี่ sats”
Outbound Liquidity คืออะไร?
Outbound Liquidity คือความสามารถในการส่ง Payment ออกจาก Node ผ่าน Channel ที่มี Local-side funds และสามารถเคลื่อนไปยัง Peer ข้างๆได้
ต้องรัน Lightning Node เองไหมถึงใช้ Lightning ได้?
ไม่จำเป็น
คุณสามารถใช้ Custodial หรือ Self-custodial Lightning Wallet ตาม Application บนมือถือได้ แน่นอนว่าการรัน Node เองให้การควบคุม Infrastructure มากขึ้น แต่ก็มาพร้อมความรับผิดชอบด้าน Channel, Liquidity, Backup, Availability และ Security ที่มากขึ้นด้วย
แล้วจริง ๆ Lightning ทำให้ Bitcoin เร็วขึ้นหรือเปล่า?
ตอนแรกผมคิดว่า Bitcoin Lightning Network ทำให้ Bitcoin นั้นเคลื่อนที่เร็วขึ้น
แต่พอเปิดมันออกมาดูจริง ๆ…
Bitcoin Blockchain ไม่ได้วิ่งเร็วขึ้นเลย
ซึ่ง Block ก็ยังเกิดตามกลไก Proof of Work ของมัน
มิหนำซ้ำ Miner ก็ไม่ได้ขุด Block ทุกๆ 2 วินาที
แต่ที่ Bitcoin มันเร็วขึ้นได้ก็เป็นเพราะเราเปิด Lightning
สิ่งที่ Lightning ทำก็คือ…
คือการที่ทำให้เราไม่จำเป็นต้องเอาการจ่ายเงินทุกครั้งไปวางไว้บน Blockchain
ซึ่งเราเพียงแค่เอา Bitcoin มาวางอยู่ภายใต้เงื่อนไขของ Channel
จากนั้นเราก็มา Update State กันข้างนอก Port Internet อื่นๆที่ไม่ใช่ Bitcoin Mainnet
แน่นอนว่า Lightning Network ก็ใช้ Cryptography, Timelock และ Incentive ทำให้คนที่ไม่ได้ Trust กันสามารถจ่ายเงินผ่านกันได้
แล้วสามารถ Sync กลับไปหา Bitcoin Blockchain เมื่อจำเป็น
แต่ส่วนที่ผมรู้สึกว่าน่าสนใจที่สุดกลับไม่ใช่ HTLC
ไม่ใช่ Routing
ไม่ใช่ Commitment Transaction
แต่มันคือวันหนึ่งที่ผมยืนอยู่หน้าร้านก๋วยเตี๋ยวป้าเรียม
เปิด Lightning Wallet
Scan QR
กดจ่าย
ติ๊ง ⚡
โดยที่คนตรงหน้าผมก็ไม่รู้ว่า Channel คืออะไร ?
ไม่รู้จัก HTLC
ไม่รู้ว่า Inbound Liquidity คืออะไร ?
และเขาก็ไม่จำเป็นต้องรู้
แต่ตรงนั้นผมกลับเริ่มสงสัยขึ้นมาอีกเรื่อง…
ถ้าคนธรรมดาไม่จำเป็นต้องรู้ว่าเครื่องข้างหลังทำงานยังไง ?
แล้วคนที่ควบคุมเครื่องอยู่ข้างหลัง…กำลังทำหน้าที่เป็นอะไร?