สมมติ คุณเปิดบัญชีธนาคารขึ้นมาอันหนึ่งไว้แชร์กับเพื่อนอีกคน เพราะเพื่อนคุณเปิดบัญชีเป็นของตัวเองเดี่ยวๆไม่ได้ด้วยเหตุผลบางอย่าง
คุณฝากเงินไว้ 1,000 บาท
เพื่อนคุณก็ฝากเงินไว้อีก 1,000 บาท
และบัญชีก็เปิดไว้โดยมีเงื่อนไขว่า คนเปิดทั้งคู่ต้องมาเซ็นใบเบิกถอน มาคนเดียวไม่ได้ จะได้ไม่มีใครแอบชิ่งไปพร้อมเงิน
นอกจากนี้ทั้งคุณและเพื่อนยังรอบคอบ มีการจดบันทึกทำบัญชีไว้ในสมุดจดตลอดว่า ใครมีเงินเท่าไรในตอนนี้ เงินจะได้ไม่ปนกัน
ทีนี้วันหนึ่ง คุณขอซื้อรองเท้าคู่นึงต่อจากเพื่อนของคุณ ด้วยราคา 500 บาท ตอนนั้นคุณไม่มีเงินสดพอดี คุณเลยบอกกับเพื่อนไปว่า “งั้นหักเงินจากในบัญชีไปเลย” เพื่อนคุณยังไม่รีบใช้เงิน ก็ตกลง และไปเพิ่มในสมุดจดว่า ณ ตอนนี้
คุณมีเงินในบัญชี 500 บาท และ
เพื่อนคุณมีเงินในบัญชี 1,500 บาท
มีการควักเงินยื่นออกมาให้กันไหมครับ? จะเห็นว่าไม่มีเลย ทั้งคู่ไม่มีใครแตะเงินในบัญชี หรือเงินสดในกระเป๋าตังของใคร เราแค่แบ่งขยับสัดส่วนเงินที่แต่ละคนเป็นเจ้าของกันในบัญชีที่เปิดร่วมกันนี้เท่านั้น และนี่คือ “Lightning Network”
Lightning Network อนาคตอันสดใสของ Bitcoin
Lightning Network เป็นสิ่งที่จะมาช่วยให้การโอน Bitcoin เกิดขึ้นได้อย่างรวดเร็วมากขึ้น เพราะทุกวันนี้พอคนใช้เยอะ มี transaction เกิดขึ้นถี่มากขึ้น จนนักขุดบันทึก block ลง Blockchain หลาย block แล้ว ก็ยังมาไม่ถึงคิวของ transaction ของคุณซักที ต้องรอเกือบชั่วโมง กว่าการโอนจะถูกยืนยัน
ดังนั้น จึงมีคนหัวใส ออกไอเดียขึ้นมาว่า ถ้ามันช้าตรงที่เราต้องรอว่าเมื่อไรนักขุดถึงจะบันทึก transaction ของเราลง Blockchain งั้นเราก็ไม่ต้องบันทึกมันลง Blockchain ซะ ก็จบเรื่อง ไม่ต้องเสียเวลา
ทีนี้ พอไม่มี Blockchain มันก็ไม่ใช่ Bitcoin แล้วสิ แล้วพอไม่บันทึกลง Blockchain เราจะไปมั่นใจได้ไงว่า จะไม่มีใครแอบโกง หรือแอบโอนสองที เรื่องนี้ Lightning Network มีคำตอบ และบทความนี้จะมาอธิบายว่าเค้าทำกันยังไงแบบเข้าใจง่ายๆ เห็นภาพตามแน่นอน รวมถึงบทความนี้จะตอบคำถามที่อาจจะคาใจบางท่านอยู่
การทำงานของ Lightning Network
สิ่งที่จะแตกต่างจากการโอน Bitcoin แบบเดิมๆ คือ คุณจะต้องทำการเปิด Payment Channel ระหว่างตัวคุณและอีกฝ่าย ซึ่งการเรียกมันว่า Payment Channel อาจจะทำให้คุณงงๆ ให้ทำความเข้าใจว่า “Payment Channel” คือ “บัญชีกลางที่คุณเปิดร่วมกับเพื่อนของคุณ”
[rsnippet id=”1″ name=”AdSense In-article ad 1″]
การจะสร้าง Payment Channel ได้นั้น ทั้งสองฝ่ายจะต้องสร้างสิ่งที่เรียกว่า Commitment Transaction (แปลตรงตัวว่า Commitment = สัญญา หรือการตกลงกันระหว่างหลายฝ่าย Transaction = การโอน)
สมมติว่า Alice และ Bob ต้องการส่ง Bitcoin ให้กันผ่าน Lightning Network ทั้งคู่ต้องทำการโอน Bitcoin จำนวนหนึ่งมาไว้ที่ Address หรือบัญชีกลาง ที่จำเป็นต้องใช้ key จากทั้ง Alice และ Bob ในการเอาเงินออกจากบัญชีนี้
การโอน Bitcoin มาที่บัญชีกลางนี้ จะต้องถูกบันทึกลง Blockchain แปลว่านักขุดจะได้ขุด transaction แรกนี้แน่ๆ ได้รับค่าขุดกันไปแน่นอนตามปกติ
Alice และ Bob ทั้งคู่โอนกันมาคนละ 1 Bitcoin มาไว้ที่บัญชีกลาง ทำให้บัญชีกลางนี้มียอดรวม 2 Bitcoin
หลังจาก Commitment Transaction ถูกบันทึกและยืนยันแล้ว Payment Channel ระหว่าง Alice และ Bob จึงเกิดขึ้น ซึ่งสามารถถูกเปิดทิ้งไว้นานเท่าไรก็ได้
ทีนี้ Alice อยากส่ง Bitcoin ให้ Bob จำนวน 1 BTC สิ่งที่จะเกิดขึ้นคือ มีการเขียน transaction ไว้ที่บัญชีกลางนี้ว่า
“Alice มี 0 BTC และ Bob มี 2 BTC”
โดยคุณสมบัติของ transaction พิเศษนี้คือ
- จะไม่ถูกส่งไปบอกใคร ไม่สามารถถูกขุดได้
- เกิดขึ้นได้อย่างรวดเร็ว เพราะไม่ต้องรอให้ใครมายืนยัน หรือรอนักขุดมาจับใส่ block
- ปลอดภัย เพราะใช้หลักการในการเช็คความถูกต้องเหมือนการโอนทั่วไป ถ้าเกิด Alice ส่ง 10000 BTC ให้ Bob แทน มันเป็นไปไม่ได้แน่นอน เพราะใน Payment Channel นี้มีจำนวน BTC ไม่ถึงยอดนั้น
การโอนครั้งนี้จะเป็นการโอนที่เกิดขึ้นนอก Blockchain และปลอดภัยเช่นเดิม และถ้าสมมติว่าเวลาผ่านไป Bob จำเป็นต้องโอน BTC ให้ Alice บ้าง เขาก็ใช้ Payment Channel เดิมที่เปิดค้างไว้อยู่นี้ได้ และเขาเพียงแค่ต้องบันทึก transaction ใหม่ลงไป เช่น
“Alice มี 0.5 BTC และ Bob มี 1.5 BTC”
ก็เท่ากับว่า “Bob ได้ส่ง 0.5 BTC ให้ Alice” แล้ว
[rsnippet id=”1″ name=”AdSense In-article ad 1″]
และถ้าเกิด Alice และ Bob ต้องการนำเงิน 2 BTC นี้ออกมาเพื่อไปโอนให้คนอื่น พวกเขาก็สามารถทำได้ เพียงแค่ทั้ง Alice และ Bob ตกลงปลงใจกันปิดบัญชีนี้พร้อมกัน และเอา BTC ของใครของมันไปแล้วแยกย้าย
การปิดบัญชีนี้ จะเป็นการนำ transaction สุดท้ายที่เกิดขึ้นว่า “Alice มี 0.5 BTC และ Bob มี 1.5 BTC” ส่งไปที่ Blockchain เพื่อให้ถูกขุด และถูกยืนยัน เป็นการอัพเดทสถานะล่าสุดว่า สุดท้ายแล้ว เงินก้อนใหญ่ 2 BTC ที่ตั้งต้นไว้ตอนสร้าง Payment Channel นั้น สุดท้ายไปอยู่ที่ใครเท่าไรแล้วบ้าง หลังจากนั้น ทั้งคู่จึงจะนำ Bitcoin ไปใช้อย่างอื่นต่อได้
ทุกอย่างที่เกิดขึ้นนี้จะเหมือนกับที่ผมยกตัวอย่างไปข้างต้น กับการเปิดบัญชีร่วมกับเพื่อน และเมื่อถึงเวลาอยากนำเงินออกมาใช้จริงๆก็ค่อยจับมือกันไปปิดบัญชีเอาเงินออกมา จะเสียเวลาแค่ตอนเปิดบัญชีกับตอนปิดบัญชีเท่านั้น ซึ่งก็เปรียบเทียบได้กับการบันทึกลง Blockchain นั่นเอง
เราจะต้องเปิดๆปิดๆ Payment Channel นี้ไปเรื่อยๆหรือไม่?
ถ้าเป็นอย่างนั้นจริง Lightning Network อาจะไม่ได้เร็วฟ้าแล่บอย่างที่คุยไว้ เพราะเราส่งกันไปมาได้แค่สองคนเท่านั้นเอง เสียเวลาเปิดปิด Payment Channel กันอีก แต่อันที่จริงแล้ว Payment Channel สามารถเชื่อมหากันได้
เหมือนเวลาคุณไปส่อง Facebook ใครสักคน คุณอาจจะเจอ Mutual Friend ซึ่งสุดท้ายแล้วเค้าอาจจะเป็นเพื่อนของเพื่อนของเพื่อนคุณก็ได้ และ Payment Channel นี้ก็ใช้ concept เดียวกัน
สมมติ ระหว่าง Alice และ Bob มี Payment Channel ที่ทั้งคู่ลงเงินบัญชีกลางไว้คนละ 1 BTC และ Bob กับ Charlie ก็มี Payment Channel ที่เหมือนกันเด๊ะๆเลย
Alice ต้องการส่ง 1 BTC ให้ Charlie แต่ทั้งคู่ไม่ได้มี Payment Channel ระหว่างกัน แต่นั่นไม่ใช่ปัญหา เพราะ Alice สามารถส่งผ่าน Bob ได้
transaction ที่จะเกิดขึ้น คือ
“Alice มี 0 BTC และ Bob มี 2 BTC”
ณ จุดนี้ Bob มียอดรวม 3 BTC แล้ว และ Bob จะต้องย้าย 1 BTC นั้นมาอีกฝั่ง
และเขาก็ส่งต่อ 1 BTC ของ Alice ไปให้ Charlie
“Bob มี 1 BTC และ Charlie มี 2 BTC”
[rsnippet id=”1″ name=”AdSense In-article ad 1″]
รวมกันแล้ว ทั้งภาพนี้จะมีครบ 4 BTC ไม่ขาดไม่เกิน เหมือนตอนเริ่มแรก
ขั้นตอนการส่งผ่าน Payment Channel ที่เชื่อมกันนี้ ถูกออกแบบมาด้วยระบบป้องกันหลายชั้นให้เฉพาะผู้รับที่ถูกต้องเท่านั้นจึงจะได้ BTC ไป คนกลางอย่าง Bob ไม่สามารถฮุบเงินไปได้
ลองนึกภาพ ถ้าทุกคนเปิด Payment Channel ต่อๆกันไปเรื่อยๆทั่วโลก การโอน Bitcoin ของคุณในหนึ่งวันอาจจะไม่ได้แตะ Blockchain เลยด้วยซ้ำ แต่มันก็ยังถูกต้องตามหลัก และโกงไม่ได้ดังเดิม และแน่นอน มันจะเร็วขึ้นมาก
แบบนี้ก็ขุดได้น้อยลง นักขุดเสียผลประโยชน์น่ะสิ!
อย่าลืมว่า การสร้างและการปิด Payment Channel นั้น จะต้องถูกขุด นักขุดก็จะได้ในส่วนนี้ไป และถ้าเกิดบัญชีกลางที่ถูกเปิดเป็น Payment Channel ไว้นั้นมีเงินไม่พอจะทำ transaction ต่อไป พวกเขาก็ต้องเปิด Payment Channel ใหม่มาให้นักขุดจัดการอยู่ดี
แต่ถึงแม้ปริมาณ block ที่จะเกิดขึ้นและถูกขุด อาจจะลดลงจากเดิมก็จริง เพราะ transaction ส่วนใหญ่จะไปอยู่นอก Blockchain และขุดไม่ได้ แต่อย่าลืมเรื่องของค่า Difficulty ซึ่งจะปรับสมดุลให้การขุดเสมอ ถ้า block น้อยลง ทำให้ block เกิดช้าขึ้น ค่า Difficulty ก็จะปรับตัวลง ทำให้นักขุดขุดได้ง่ายขึ้น และเกิดเป็น block ละ 10 นาทีดังเดิมตามกฎ นักขุดอาจจะได้ตังง่ายกว่าเดิมด้วยซ้ำ หรือถ้าวิเคราะห์ในอีกแง่หนึ่ง ปริมาณ block ที่มาให้ขุดจะลดลง แต่ก็ไม่ลดลงจนไม่มี block ทุกๆ 10 นาทีอยู่ดี เพียงแค่มันลดลงจนทำให้คอขวดที่ Blockchain มันแออัดน้อยลงเท่านั้น ไม่กระทบอะไรกับนักขุด
ทำให้อันที่จริงแล้ว ถ้ามองดีๆ นักขุดอาจจะได้ผลประโยชน์จาก Lightning Network นี้ด้วยซ้ำ เป็นความ win-win ทั้งคนขุด และผู้ใช้งาน
นอกจากความเร็วในการทำธุรกรรมที่เพิ่มขึ้นในเครือข่ายของ Bitcoin แล้ว Lightning Network ยังทำให้เกิดสิ่งอื่นๆ เช่น การเชื่อมต่อกันของ Blockchain ของคนละ cryptocurrency กัน แต่ใช้ algorithm เดียวกัน ให้สามารถแลกเปลี่ยนข้ามไปมาได้
และอีกข้อที่เราไม่ควรลืมคือ Lightning Network นั้นถือเป็นอีกหนึ่งแผนการติดตั้งโคดภายใต้ SegWit ที่ถูกเปิดใช้งานไปแล้วเมื่อไม่นานมานี้
โดยความสามารถทั้งหมดของ Lightning Network นี้เป็นการประยุกต์ใช้สิ่งที่มีอยู่แล้วของ Bitcoin และ Blockchain แถมยังมีการนำ Smart Contract มาช่วยในการจัดการเรื่องของ Payment Channel นี้ด้วย แต่รายละเอียดเหล่านี้อาจจะลึกเกินไปและยากที่จะเข้าใจได้ แต่ถ้าผู้อ่านท่านไหนสนใจอยากอ่านเกี่ยวกับ Lightning Network เต็มๆ สามารถไปที่เว็บไซต์หลักได้ ที่นี่
กดคลิกเพื่อแสดงความเห็น