“Bitcoin มันช้าค่าธรรมเนียมก็แพงสู้ XRP สู้ Promtpay หรือธนาคารก็ไม่ได้ มันไม่มีทางเข้าถึง Mass adoption ได้หรอก” นี่เป็นประโยคที่คุณอาจจะเคยได้ยิน ใช่ครับปัจจุบัน Bitcoin ทำธุรกรรมได้เพียง 7 ธุรกรรมต่อวินาที เมื่อเทียบกับ Visa ที่ทำธุรกรรมได้ 24000 ธุรกรรม หรือ XRP ที่ทำธุรกรรมได้ 50000 แน่นอนในปัจจุบัน (04/2019) ค่าธรรมเนียมของการใช้ Bitcoin ที่จะทำให้ธุรกรรมของคุณถูกยืนยันเร็วที่สุดนั้นอยู่ที่ 30 บาทโดยประมาณ และค่าธรรมเนียมขั้นต่ำที่จะทำให้ Bitcoin ของคุณอาจจะถูกส่งช้าหน่อยนั้นอยู่ที่ 0.7 บาท มันทำให้ Bitcoin ไม่สามารถกลายเป็นเงินที่คุณจะสามารถซื้อกาแฟได้อย่างสะดวกเท่าไหร่หรือจะถูกใช้งานใน Main Stream ได้เลย
Thank you for reading this post, don't forget to subscribe!ซึ่งในปี 2016 ก็ Joseph Poon และ Thaddeus Dryja เผยแพร่ White paper ที่ชื่อว่า Lighting network โดยแนวคิดของ Lighting Network นี้จะทำให้ Bitcoin นั้นสามารถส่งหากันได้อย่างรวดเร็วและมีประสิทธิภาพโดยแนวคิดง่ายๆ ของระบบนี้คือในเมื่อการขุด Bitcoin นั้นทำให้การส่ง bitcoin นั้นแพงและเชื่องช้างั้นเราก็ไม่ต้องขุดมันซะก็จบเรื่อง แล้วแบบนี้ธุรกรรมจะถูกบันทึกได้อย่างไรมาดูกัน
Lightning Network คืออะไร
สมมติ คุณเปิดบัญชีธนาคารขึ้นมาอันหนึ่งไว้แชร์กับเพื่อนอีกคน เพราะเพื่อนคุณเปิดบัญชีเป็นของตัวเองเดี่ยวๆไม่ได้ด้วยเหตุผลบางอย่าง
คุณฝากเงินไว้ 1,000 บาท
เพื่อนคุณก็ฝากเงินไว้อีก 1,000 บาท
และบัญชีก็เปิดไว้โดยมีเงื่อนไขว่า คนเปิดทั้งคู่ต้องมาเซ็นใบเบิกถอน มาคนเดียวไม่ได้ จะได้ไม่มีใครแอบชิ่งไปพร้อมเงิน
นอกจากนี้ทั้งคุณและเพื่อนยังรอบคอบ มีการจดบันทึกทำบัญชีไว้ในสมุดจดตลอดว่า ใครมีเงินเท่าไรในตอนนี้ เงินจะได้ไม่ปนกัน
ทีนี้วันหนึ่ง คุณขอซื้อรองเท้าคู่นึงต่อจากเพื่อนของคุณ ด้วยราคา 500 บาท ตอนนั้นคุณไม่มีเงินสดพอดี คุณเลยบอกกับเพื่อนไปว่า “งั้นหักเงินจากในบัญชีไปเลย” เพื่อนคุณยังไม่รีบใช้เงิน ก็ตกลง และไปเพิ่มในสมุดจดว่า ณ ตอนนี้
คุณมีเงินในบัญชี 500 บาท และ
เพื่อนคุณมีเงินในบัญชี 1,500 บาท
มีการควักเงินยื่นออกมาให้กันไหมครับ? จะเห็นว่าไม่มีเลย ทั้งคู่ไม่มีใครแตะเงินในบัญชี หรือเงินสดในกระเป๋าตังของใคร เราแค่แบ่งขยับสัดส่วนเงินที่แต่ละคนเป็นเจ้าของกันในบัญชีที่เปิดร่วมกันนี้เท่านั้น และนี่คือ “ Lightning Network”
Lightning Network อนาคตอันสดใสของ Bitcoin
Lightning Network เป็นสิ่งที่จะมาช่วยให้การโอน Bitcoin เกิดขึ้นได้อย่างรวดเร็วมากขึ้น ปกติแล้วในทุกวันนี้เมื่อคุณโอน Bitcoin ธุรกรรมของคุณจะยังไม่ถูกยืนยันหรือเข้าสู่ระบบทันทีนะครับ (ไม่แม้กระทั่งอยู่ใน 0 confirmation) ธุรกรรมของคุณจะไปอยู่ในสิ่งที่เรียกว่า Mempool และนักขุดจะตรวจสอบค่าธรรมเนียมของคุณ ถ้าคุณจ่ายมากก็จะทำให้ธุรกรรมของคุณได้สิทธิก่อน และถ้าคุณใส่ค่าธรรมเนียมน้อยเกินไปหรือไม่ใช่เลย ธุรกรรมของคุณอาจจะค้างอยู่ใน Mempool อยู่เป็นอาทิตย์หรือคุณอาจจต้องส่งธุรกรรมเดิมซ้ำด้วยค่าธรรมเนียมที่เพิ่มขึ้น เพราะทุกวันนี้พอคนใช้เยอะ มี transaction เกิดขึ้นถี่มากขึ้น จนนักขุดบันทึก block ลง Blockchain หลาย block แล้ว ก็ยังมาไม่ถึงคิวของ transaction ของคุณซักที ต้องรอเกือบชั่วโมง กว่าการโอนจะถูกยืนยัน
ดังนั้น จึงมีคนหัวใส ออกไอเดียขึ้นมาว่า ถ้ามันช้าตรงที่เราต้องรอว่าเมื่อไรนักขุดถึงจะบันทึก transaction ของเราลง Blockchain งั้นเราก็ไม่ต้องบันทึกมันลง Blockchain ซะ ก็จบเรื่อง ไม่ต้องเสียเวลา
ทีนี้ พอไม่มี Blockchain มันก็ไม่ใช่ Bitcoin แล้วสิ แล้วพอไม่บันทึกลง Blockchain เราจะไปมั่นใจได้ไงว่า จะไม่มีใครแอบโกง หรือแอบโอนสองที เรื่องนี้ Lightning Network มีคำตอบ และบทความนี้จะมาอธิบายว่าเค้าทำกันยังไงแบบเข้าใจง่ายๆ เห็นภาพตามแน่นอน รวมถึงบทความนี้จะตอบคำถามที่อาจจะคาใจบางท่านอยู่
การทำงานของ Lightning Network
สิ่งที่จะแตกต่างจากการโอน Bitcoin แบบเดิมๆ คือ คุณจะต้องทำการเปิด Payment Channel ระหว่างตัวคุณและอีกฝ่าย ซึ่งการเรียกมันว่า Payment Channel อาจจะทำให้คุณงงๆ ให้ทำความเข้าใจว่า “Payment Channel” คือ “บัญชีกลางที่คุณเปิดร่วมกับเพื่อนของคุณ”
การจะสร้าง Payment Channel ได้นั้น ทั้งสองฝ่ายจะต้องสร้างสิ่งที่เรียกว่า Commitment Transaction (แปลตรงตัวว่า Commitment = สัญญา หรือการตกลงกันระหว่างหลายฝ่าย Transaction = การโอน)
สมมติว่า Alice และ Bob ต้องการส่ง Bitcoin ให้กันผ่าน Lightning Network ทั้งคู่ต้องทำการโอน Bitcoin จำนวนหนึ่งมาไว้ที่ Address หรือบัญชีกลาง ที่จำเป็นต้องใช้ key จากทั้ง Alice และ Bob ในการเอาเงินออกจากบัญชีนี้ หรือที่เราเรียกอีกอย่างว่า Multisig หรือ Multisignature
การโอน 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” แล้ว
และถ้าเกิด Alice และ Bob ต้องการนำเงิน 2 BTC นี้ออกมาเพื่อไปโอนให้คนอื่น พวกเขาก็สามารถทำได้ เพียงแค่ทั้ง Alice และ Bob ตกลงปลงใจกันปิดบัญชีนี้พร้อมกัน และเอา BTC ของใครของมันไปแล้วแยกย้าย
การปิดบัญชีนี้ จะเป็นการนำ transaction สุดท้ายที่เกิดขึ้นว่า “Alice มี 0.5 BTC และ Bob มี 1.5 BTC” ส่งไปที่ Blockchain เพื่อให้ถูกขุด และถูกยืนยัน มีการจ่ายค่าธรรมเนียมปกติ ซึ่งต้องมีการยืนยันโดยใช้ Signature จากทั้ง Alice และ Bob เป็นการอัพเดทสถานะล่าสุดว่า สุดท้ายแล้ว เงินก้อนใหญ่ 2 BTC ที่ตั้งต้นไว้ตอนสร้าง Payment Channel นั้น สุดท้ายไปอยู่ที่ใครเท่าไรแล้วบ้าง หลังจากนั้น ทั้งคู่จึงจะนำ Bitcoin ไปใช้อย่างอื่นต่อได้
Note:ก่อนที่ Alice และ Bob จะทำการปิด Payment Channel นั้นถ้ามองจากภายนอก Payment Channel นี้จะเป็นเพียง Address หนึ่งที่มีเงินเพียง 2 BTC เท่านั้น
ทุกอย่างที่เกิดขึ้นนี้จะเหมือนกับที่ผมยกตัวอย่างไปข้างต้น กับการเปิดบัญชีร่วมกับเพื่อน และเมื่อถึงเวลาอยากนำเงินออกมาใช้จริงๆก็ค่อยจับมือกันไปปิดบัญชีเอาเงินออกมา จะเสียเวลาแค่ตอนเปิดบัญชีกับตอนปิดบัญชีเท่านั้น ซึ่งก็เปรียบเทียบได้กับการบันทึกลง 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”
รวมกันแล้ว ทั้งภาพนี้จะมีครบ 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 เต็มๆ สามารถไปที่เว็บไซต์หลักได้ ที่นี่
Lighting Network ยังทำให้ระบบ atomic swap ที่สามารถแลกเหรียญอื่นๆข้าม Chain นั้นเป็นได้ในภาพรวมแล้วจริงๆ Lighting Work เป็นแค่แนวคิดและคอนเซปเท่านั้นจึงมีเหรียญอื่นๆมากมายที่นำแนวคิดนี้ไปใช้เหรียญอย่าง Litecoin หรือ Stellar นั้นพัฒนาระบบ Lighting Network ไปเรียบร้อยแล้ว และในปัจจุบันก็มีการทำ Atomic swap ระหว่าง Bitcoin และ Litecoin แล้วด้วย
อย่างไรก็ตามก็ใช่ว่า Lighting Network จะไม่มีข้อเสียซะทีเดียว ปัญหาหลักของหลักของ Lightning Network คือจำนวนเงินที่เปิด Payment Channel นั้นอาจจะไม่เพียงพอ เช่น ถ้าคุณจะโอนเงินจำนวนมากๆหรือมีการโอนจากหลายคนรวมกัน แต่ถ้ามองอีกแง่คือ Lighting Network นั้นเหมาะกันการทำธุรกรรมจำนวนน้อยระดับ Micropayment ถ้าเป็นการโอนเงินจำนวนมากๆก็ควรจะโอนบน Blockchain ปกติ
ในปัจจุบันจำนวน Lighting Node ของ Bitcoin นั้นสูงถึง 4146 Node ซึ่งมีจำนวนเกือบครึ่งหนึ่งของ Bitcoin node ทั้งหมดและมี Channel กว่า 39294 ซึงเป็นจำนวนที่เติบโตและเพิ่มขึ้นเรื่อยๆ
สรุปข้อดีข้อเสียของ Lighting Network
ข้อดี
- ทำให้ Bitcoin สามารถทำธุรกรรมได้รวดเร็วขึ้นจนถึงระดับ 1 ล้านธุรกรรมต่อวินาที
- สามารถทำธุรกรรมระดับ Micropayment ที่เป็นการจ่ายเงินจำนวนที่น้อยมากๆได้
- ไม่เสียค่าธรรมเนียม
- หากมีการใช้งานอย่างกว้างขวางจะทำให้สามารถเข้าสู่ Mass adoption ได้ที่ร้านค้าสามารถใช้ได้
- ธุรกรรมที่โอนภายใน Payment Channel นั้นเป็นส่วนตัวจนกว่าจะปิด Payment Channel
ข้อเสีย
- มีปัญหาเงินที่อาจไม่เพียงพอใน Payment Channel
- การสร้าง Payment Channel ใด Channel ที่มีเงินมากๆนั้นมีความคล้ายคลึงธนาคารที่เป็น Centralized
- ประสิทธิภาพขึ้นอยู่กับว่ามีคนเปิด Payment Channel ที่ใช้งานร่วมกันได้มากแค่ไหน
- ใน Payment Channal การโอนเงินนั้นอาจจะไม่โปร่งใสเท่าใน Blockchain จริงๆ