Bitcoin Lightning Network ทำงานอย่างไร ตั้งแต่เปิด Channel จนถึงจ่าย Bitcoin ในไม่กี่วินาที

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 จริง ๆ ขึ้นมาหนึ่งอัน

อีตรงนี้เราจะเรียกว่า

Funding 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

UTXO

Private Key

Digital Signature

ของพวกนั้นไม่ได้หายไปไหนเลย

ซึ่ง 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 คืออะไร ?

และเขาก็ไม่จำเป็นต้องรู้

แต่ตรงนั้นผมกลับเริ่มสงสัยขึ้นมาอีกเรื่อง…

ถ้าคนธรรมดาไม่จำเป็นต้องรู้ว่าเครื่องข้างหลังทำงานยังไง ?

แล้วคนที่ควบคุมเครื่องอยู่ข้างหลัง…กำลังทำหน้าที่เป็นอะไร?

Similar Posts

  • Bitcoin Address คืออะไร? มันถูกสร้างมาจาก Private Key ได้อย่างไร?

    ครั้นนึกถึงตอนผมเป็นมือใหม่แล้วเพิ่งเริ่มได้สัมผัสกับ Bitcoin ซึ่งในช่วงเวลานั้นผมเข้าใจเรื่อง Address ง่ายมากครับ 1.เปิด Wallet 2.กด Receive Application ของ Exchange มันก็โยนตัวหนังสือยาว ๆ มาให้ชุดหนึ่ง ซึ่งจะมีหน้าตาประมาณนี้ bc1q… พร้อม QR Code ยึก ๆ ยือ ๆ อันนึง จากนั้นผมก็ทำการ Copy แล้วส่งให้คนที่จะโอน Bitcoin มาให้ จบข่าวในพระราชสำนัก… Bitcoin Address ก็คงเหมือนเลขบัญชีธนาคารนั่นแหละ ง่ายชิบหาย 😂 จนวันหนึ่งผมเริ่มสังเกตว่า… ทำไม Address ของบางคนขึ้นต้นด้วย 1 บางอันขึ้นต้นด้วย 3 แต่ของผมแม่งเสือกเป็น bc1q แล้วหลัง ๆ ดันมี bc1p โผล่มาอีก อ้าว…อี่ยังวะ ? แบบใด๋ ? ตกลงแล้ว…

  • Bitcoin Self Custody คืออะไร? Not Your Keys, Not Your Coins หมายความว่าอะไร?

    นึกย้อนกลับไปในตอนผมเริ่มซื้อ Bitcoin ใหม่ ๆ ผมก็ซื้อจาก Exchange เหมือนคนทั่วไปนี่แหละ จุดเริ่มต้นมันก็มาจาก สมัคร Account ก่อนเลย ละก็ KYC (ถ่ายรูปบัตรประชาชน ละก็ หันซ้าย หันขวา อ้าปาก พยักหน้า กระพริบตา) จากนั้นก็โอนเงินบาทเข้าไป ละก็เลือก BTC จากนั้นก็กด Buy แล้วมันก็ขึ้นที่หน้าจอก็ว่า 0.01 BTC โอเค๊… กูมี Bitcoin แล้ว ง่ายดี 😂 แต่พอศึกษาไปเรื่อย ๆ ผมก็เริ่มได้ยินประโยคหนึ่งซ้ำแล้วซ้ำอีก นั่นก็คือ Not Your Keys, Not Your Coins ตอนแรกผมก็คิดว่า Bitcoin ก็อยู่ใน Account กูนี่หว่า ชื่อก็ชื่อกู Password กูก็รู้ 2FA ก็อยู่ในมือถือกู แล้วทำไมมันถึงไม่ใช่…

  • Digital Signature คืออะไร? Bitcoin พิสูจน์ว่าเป็นเจ้าของได้อย่างไร โดยไม่เปิดเผย Private Key

    Digital Signature คืออะไร? ถ้าผมบอกคุณว่า… ผมสามารถพิสูจน์กับคนทั้งโลกได้ว่า “ผมมี Private Key ของแท้” โดยที่… ผมไม่ต้องเอา Private Key ให้ใครดูเลยแม้แต่นิดเดียว คุณจะเชื่อมั้ย? หรือคุณอาจถามว่า : “แล้วกูจะรู้ได้ยังไงว่ามึงมีของจริง?” 😂 นี่แหละครับคือหนึ่งในความมหัศจรรย์ของ Cryptography ที่ Bitcoin ใช้ ในบทความก่อนหน้าเรื่อง Private Key คืออะไร? ทำไมคนที่ถือ Key ถึงควบคุม Bitcoin ได้? เรารู้แล้วว่า Private Key ไม่ใช่ Password และ Bitcoin ก็ไม่ได้ถูกเก็บอยู่ใน Private Key Private Key คือ Secret ที่สามารถนำมาใช้สร้างหลักฐานทาง Cryptography เพื่ออนุญาตให้เราทำการ Spend Bitcoin ตามเงื่อนไขที่กำหนดไว้ได้อย่างสบายใจ ซึ่งอีหลักฐานที่ว่านี้คือสิ่งที่เรียกว่า :…

  • UTXO คืออะไร? ทำไม Bitcoin ถึงไม่มี Balance อยู่จริง

    UTXO คืออะไร? ถ้าคุณเพิ่งเริ่มศึกษา Bitcoin คำนี้อาจฟังดูเหมือนศัพท์เทคนิคที่เข้าใจยาก แต่จริง ๆ แล้ว UTXO คือหนึ่งในแนวคิดพื้นฐานที่สุดของ Bitcoin และถ้าคุณเข้าใจมัน คุณจะเริ่มเห็นทันทีว่า Bitcoin ทำงานแตกต่างจากบัญชีธนาคารที่เราใช้กันทุกวันอย่างไร ถ้าผมถามคุณว่า… “ตอนนี้คุณมีเงินอยู่ในบัญชีธนาคารเท่าไหร่?” คุณอาจเปิด Mobile Banking ขึ้นมา แล้วตอบว่า ฉันมีเงินอยู่ 50,000 บาท ก็โอเค๊ นั่นมันง่ายมาก เพราะระบบธนาคารทำให้เราคุ้นเคยกับสิ่งที่เรียกว่า Account Base Balance แน่นอนว่าธนาคารมีบัญชีของคุณที่เป็นระบบฐานข้อมูล Databaseและในบัญชีนั้นมีตัวเลขเขียนเอาไว้ว่า นาย A มีเงิน = 50,000 บาท ถ้าคุณโอนให้ Bob 10,000 บาท ระบบก็ทำหน้าที่หักลบตัวเลขออกประมาณว่า: นาย A เหลือยอดเงินในบัญชีคือ : 50,000 → 40,000 บาท และนาย Bob ก็จะมียอดเงินเพิ่มขึ้นเป็น…

  • Bitcoin Node คืออะไร? ทำไม Bitcoin ถึงไม่ต้องมีใครเป็นคนกลาง

    ในบทความที่แล้วเราเพิ่งคุยกันเรื่อง Digital Signature ว่า Bitcoin สามารถตรวจสอบได้ว่า Transaction นึงนั้นมี Signature ที่ถูกต้องหรือไม่? โดยที่เจ้าของ Private Key ไม่ต้องเอา Secret Key ของตัวเองออกมาเปิดเผยให้ใครเห็นเลยแม้แต่คนเดียว มันก็…ฟังดูดีนะครับ แต่พอผมคิดต่อไปอีกนิดนึงแล้ว มันเสือกมีคำถามหนึ่งโผล่ขึ้นมาในหัว แล้วใครเป็นคนตรวจสอบวะ? ใครที่เป็นคนบอกเราว่า Signature อันนี้ถูกต้อง? ใครเป็นคนบอกว่า UTXO ที่กำลังจะถูก Spend นี้มีอยู่จริง และมันยังเป็น UTXO ที่ไม่เคยถูกใช้ไปแล้ว? ใครเป็นคนบอกว่า Transaction นี้ไม่ได้ถูกเสกเพิ่มขึ้นมาจากอากาศ? แล้วถ้าวันหนึ่ง Miner เสือกบอกว่า “กูขุด Block นี้ได้แล้วนะ” ใครเป็นคนบอกว่า Block ที่มันขุดมานั้นถูกต้องตามกฎของ Bitcoin? ถ้าคำตอบของเราคือ “ก็ Server กลางของ Bitcoin ไง” งั้นเราก็มีปัญหาแล้วล่ะ เพราะถ้ามี Server กลางสักเครื่องเป็นคนบอกทุกคนว่าอะไรของจริง…

  • Bitcoin Mining คืออะไร? Miner กำลังคำนวณหาอะไรกันแน่?

    จากบทความที่แล้วเราคุยกันเรื่อง Bitcoin Full Node ซึ่งมีประโยคนึงที่ผมเขียนเอาไว้ว่า Miner มีหน้าที่เสนอ Block เข้ามา ส่วน Node มีหน้าที่ตรวจการบ้าน ฟังดูง่ายดี… แต่คำถามก็คือ แล้วพวก Miner มันไปเอา Block มาจากไหนกันวะ? เวลาเราเห็นภาพของ Bitcoin Mining ที่เจอกันบ่อย ๆ ก็คงจะเป็นโกดังใหญ่ ๆ ที่มีเครื่อง ASIC วางเรียงกันเป็นร้อยเป็นพันเครื่อง พัดลมหมุนติ้วๆๆเสียงดังชิบหายยังกับเครื่องบิน Jet มิหนำซ้ำยังแดกไฟยังกับเป็นโรงงานอุตสาหกรรม แล้วไอ้เครื่องพวกนี้มันกำลังทำอะไรกันอยู่กันแน่? มันกำลังแก้สมการคณิตศาสตร์รึเปล่านะ? มันกำลังถอดรหัส Bitcoin รึเปล่านะ? มันกำลังตรวจ Transaction รึเปล่านะ? หรือมันกำลัง “ขุด” Bitcoin เหรียญใหม่ๆให้มันกระเด้งออกมาจาก Blockchain เหมือนคนขุดทอง? ตอนผมเริ่มศึกษา Bitcoin ใหม่ ๆ ผมก็เคยเข้าใจประมาณนั้นเหมือนกัน ผมคิดว่าคงมีโจทย์คณิตศาสตร์ยาก ๆ สักข้อ แล้ว…