ทำความเข้าใจกับ Lightning Network --- สร้างช่องทางการชำระเงินแบบสองทิศทางสำหรับ Bitcoin

ชื่อเดิม: "วิทยาศาสตร์ยอดนิยม | ทำความเข้าใจกับ Lightning Network, ตอนที่ 1: การสร้างช่องทางการชำระเงินแบบสองทิศทางสำหรับ Bitcoin" ผู้เขียน AARON VAN WIRDUM
Lightning Network น่าจะเป็นนวัตกรรมที่ได้รับการคาดหวังมากที่สุดใน Bitcoin blockchain (หมายเหตุบรรณาธิการ: เขียนครั้งแรกในปี 2559) รูปแบบการชำระเงินนี้ถูกเสนอครั้งแรกโดย Joseph Poon และ Tadge Dryja เมื่อกว่า 1 ปีที่แล้ว โดยอ้างว่าจะสนับสนุนผู้ใช้ในการส่งธุรกรรมไม่จำกัดภายใต้ห่วงโซ่และค่าใช้จ่ายก็ต่ำมาก – นอกจากนี้ยังสามารถยืมความปลอดภัยจากเครือข่าย Bitcoin ได้อีกด้วย
บริษัทอย่างน้อยสามแห่ง ได้แก่ Lightning, Blockstream และ Blockchain ของ Poon และ Dryja กำลังพัฒนาการใช้งานเทคโนโลยีนี้ แต่มีเพียงไม่กี่คนที่อยู่นอกวงแคบของนักเทคโนโลยีที่เข้าใจว่า "อนาคตของ micropayments" สามารถปลดปล่อยศักยภาพของ bitcoin ได้อย่างไร
ในบทความชุดนี้ นิตยสาร Bitcoin พยายามระบุองค์ประกอบพื้นฐานที่สุดของ Lightning Network และแสดงให้เห็นว่าสิ่งเหล่านี้สามารถรวมกันเพื่อสร้าง Lightning Network ซึ่งเป็นโปรโตคอลที่กำลังจะมาถึงได้อย่างไร
บทความแรกในชุดนี้จะแสดงรายการโมดูลที่จำเป็นและแสดงวิธีการรวมเข้าด้วยกันเพื่อสร้าง "สัญญาอัจฉริยะ" ซึ่งเป็นแนวคิดที่สามารถใช้เพื่อทำความเข้าใจหลักการแรกของเครือข่าย Lightning: ช่องทางการชำระเงินแบบสองทิศทาง
(คำแนะนำ: ผู้อ่านที่คุ้นเคยกับ Bitcoin เป็นอย่างดีสามารถข้ามการแนะนำโมดูลเหล่านี้ได้)
โมดูล #1: ธุรกรรมที่ไม่ได้รับการยืนยัน
หัวใจของโปรโตคอล Bitcoin คือแนวคิดของสิ่งที่เรียกว่า "ธุรกรรม" โดยทั่วไป ธุรกรรมหนึ่งจะเชื่อมโยงกับธุรกรรมอื่นก่อนหน้าเสมอ และสามารถนำมาใช้ในธุรกรรมในอนาคตได้ ธุรกรรมแต่ละรายการประกอบด้วยอินพุตซึ่งชี้ไปยังที่อยู่ซึ่งโอนบิตคอยน์และเอาต์พุตซึ่งชี้ไปยังที่อยู่ที่ได้รับบิตคอยน์ นอกจากนี้ ในการส่งบิตคอยน์ ข้อมูลที่ป้อนจะต้องตรงตามเงื่อนไขบางประการ เช่น การให้ลายเซ็นดิจิทัลเพื่อพิสูจน์ว่าผู้ส่งมี "ความเป็นเจ้าของ" ของที่อยู่อินพุต ในเวลาเดียวกัน เอาต์พุตจะสร้างเงื่อนไขใหม่สำหรับ bitcoins เหล่านี้ที่จะใช้ในอนาคต ซึ่งจะต้องปฏิบัติตามเมื่อมีการออกธุรกรรมในภายหลัง
(หมายเหตุผู้แปล: คิดว่า Bitcoin เป็นเช็คที่มีสกุลเงิน เมื่อใช้ เช็คจะให้แหล่งที่มาของเงิน และจะมีการสร้างเช็คใหม่หลังจากใช้งาน ดังนั้นสำหรับเช็คแต่ละฉบับ มีธุรกรรมที่สร้างจากเช็คนี้ เป็นรายการก่อนหน้าและเมื่อมีการใช้เช็คเหล่านี้อีกครั้ง ธุรกรรมนั้นสามารถเรียกว่าธุรกรรมที่ตามมา)
คำอธิบายภาพ

- (หมายเหตุผู้แปล: ดังที่แสดงในรูป Bitcoin สามารถแยกออกได้เหมือนเช็ค และการไหลเวียนของมันจะก่อตัวเป็นห่วงโซ่ที่ชัดเจน) -
โมดูล #2: การป้องกันการใช้จ่ายสองเท่า
โมดูลที่สองที่ Lightning Network ต้องการนั้นอาจไม่ต้องการคำอธิบายมากนัก เนื่องจากเป็นเหตุผลของโปรโตคอล Bitcoin เอง: การป้องกันการชำระเงินหลายครั้ง หากธุรกรรมสองรายการ (หรืออินพุต) ขึ้นอยู่กับเอาต์พุตเดียวกัน เครือข่ายทั้งหมดจะยืนยันเพียงรายการเดียว
ข้อควรจำ: แม้ว่าจะมีข้อขัดแย้งระหว่างธุรกรรมที่ไม่ได้รับการยืนยัน แต่จะมีเพียงรายการเดียวที่ได้รับการยืนยันในตอนท้าย

โมดูล #3: Multisig
โมดูลที่สามของ Lightning Network ก็เป็นที่เข้าใจกันดีเช่นกัน: ที่อยู่แบบหลายลายเซ็น (หรืออย่างกว้างกว่านั้น: ที่อยู่ P2SH (ที่อยู่สคริปต์แฮช))
ตามที่ชื่อแนะนำ ที่อยู่แบบหลายลายเซ็นคือที่อยู่ที่ต้องใช้คีย์ส่วนตัวหลายตัวเพื่อ "ปลดล็อก" และใช้บิตคอยน์ เงื่อนไขสำหรับที่อยู่หลายลายเซ็นสามารถตั้งค่าได้หลายวิธี ตัวอย่างเช่น อาจกำหนดให้คีย์ส่วนตัว 2 ใน 3 คีย์มีส่วนร่วมในการโอน bitcoins หรือข้อกำหนดด้านปริมาณอื่นๆ (เช่น 2/5, 3/4 เป็นต้น)
โดยทั่วไปแล้ว Lightning Network ใช้ข้อกำหนด 2-2 หลายลายเซ็น ในการโอนบิตคอยน์จากที่อยู่ดังกล่าว คุณต้องระบุสองลายเซ็นที่เกี่ยวข้องกับคีย์ส่วนตัวทั้งสองนี้ และอีกอันที่น้อยกว่าจะใช้ไม่ได้

โมดูล #4: การล็อกเวลา
โมดูลที่สี่คือการล็อคเวลา คุณลักษณะการล็อกเวลาจะวางเงื่อนไขการล็อกบนเอาต์พุตเพื่อให้สามารถใช้บิตคอยน์เหล่านี้ได้เท่านั้น (เช่น ใช้เป็นอินพุตในการทำธุรกรรม) หลังจากเวลาหนึ่งในอนาคต
การล็อกเวลามีอยู่สองประเภท: 1) การล็อกเวลาแบบสัมบูรณ์ เรียกว่า CheckLockTimeVerify (CLTV) 2) การล็อกเวลาแบบสัมพัทธ์ CheckSequenceVerify (CSV) CLTV ล็อกบิตคอยน์จนกว่าจะถึงวันที่แน่นอน (อาจเป็นไปได้) ในอนาคต: เวลาและวันที่ที่ระบุ หรือความสูงของบล็อกเฉพาะ ในขณะที่ CSV ใช้เฉพาะเวลาสัมพัทธ์เท่านั้น เมื่อเอาต์พุต CVS ถูกอัปโหลดไปยังเชน ต้องรอบล็อกจำนวนหนึ่งก่อนจึงจะสามารถใช้เอาต์พุตได้

โมดูล #5: แฮชและความลับ
โมดูลที่ห้าและสุดท้าย - การเข้ารหัส - ยังเป็นโมดูลพื้นฐานที่สุดของ Bitcoin อีกด้วย แต่ในเครือข่าย Lightning การใช้งานจะแตกต่างออกไป
กล่าวโดยสรุปคือ "ค่าลับ" คือชุดตัวเลขที่ยาวมากและไม่ซ้ำกันซึ่งแทบจะเป็นไปไม่ได้เลยที่จะคาดเดา แม้ว่าคอมพิวเตอร์จะทำการคำนวณที่รุนแรงนับครั้งไม่ถ้วนก็ตาม และผ่านการคำนวณพิเศษ ค่าลับนี้สามารถ "แบ่ง" เป็นตัวเลขอื่นที่เรียกว่า "ค่าแฮช" นี่คือสิ่งที่น่าสนใจ: คนที่รู้ค่าความลับสามารถคำนวณค่าแฮชของมันได้อย่างง่ายดาย แต่การย้อนกลับไม่เป็นความจริง คุณไม่สามารถย้อนกลับค่าความลับด้วยค่าแฮชได้
ใน Bitcoin blockchain กลไกนี้สามารถใช้เพื่อ "ล็อค bitcoins" ได้อีกครั้ง (อันที่จริง การล็อค bitcoins เป็นวิธีการทำงานของโปรโตคอล bitcoin) ตัวอย่างเช่น คุณสามารถรวมค่าแฮชในเอาต์พุตและกำหนดให้ธุรกรรมที่ตามมาใช้เอาต์พุตเฉพาะในกรณีที่มีค่าลับที่สอดคล้องกับค่าแฮช

ความท้าทายแรก: ช่องทางการชำระเงินสองทาง
ก่อนที่ Lightning Network จะมีแนวคิดของ "ช่องทางการชำระเงิน" อยู่แล้ว ช่องทางการชำระเงินมาตรฐานสร้างขึ้นตามวัตถุประสงค์ ดังนั้นจึงมีข้อจำกัด: เป็นช่องทางเดียว Alice สามารถเริ่มการชำระเงิน Dobby ให้กับ Bob นอกเครือข่ายได้ แต่ Bob ไม่สามารถใช้ช่องทางเดียวกันเพื่อชำระเงินให้กับ Alice ได้
คุณสมบัติที่สำคัญของ Lightning Network คือช่องทางการชำระเงินแบบสองทางที่ไม่น่าเชื่อถือซึ่งนำเสนอโดย Poon และ Dryja
ช่องเปิด
ในการสร้างช่องทางการชำระเงินแบบสองทาง ทั้งสองฝ่ายที่เกี่ยวข้องจะต้องบรรลุฉันทามติในการทำธุรกรรมเพื่อเปิดช่องทาง ธุรกรรมการเปิดนี้กำหนดจำนวนเงินที่แต่ละคนจะฝากในช่องทางนี้
สมมติว่าอลิซต้องการส่ง 1 btc ให้ Bob เนื่องจากทั้งคู่คาดว่าจะมีการแลกเปลี่ยนกันบ่อยครั้งในอนาคต พวกเขาจึงตัดสินใจเปิดช่องทางการชำระเงินแบบสองทาง (การส่ง 1 btc ในหนึ่งช่องอาจจะมากเกินไป เนื่องจากทุกช่องอาจมีประโยชน์มากกว่าสำหรับ micropayments - แต่ก็สามารถทำได้โดยสิ้นเชิง)
ในการเปิดช่อง อลิซและบ็อบต่างส่ง 5 btc ไปยังที่อยู่แบบหลายลายเซ็น 2-2 รายการ นี่คือ "รายการเปิดช่อง" เงินในที่อยู่นี้จะใช้ได้ต่อเมื่ออลิซและบ๊อบลงนามในธุรกรรมเดียวกันเท่านั้น
นอกจากนี้ ทั้ง Alice และ Bot ต่างก็สร้างค่าลับ (นั่นคือ สตริงของตัวเลข) แล้วแลกเปลี่ยนแฮช
ตอนนี้ Alice สร้างธุรกรรมที่ตามมาของธุรกรรมการเปิดช่อง และนี่คือ "ธุรกรรมที่มีข้อผูกมัด" ในธุรกรรมผูกมัดนี้ Alice ส่ง 4 btc ให้ตัวเอง และ 6 btc ไปยังที่อยู่แบบหลายลายเซ็นที่สอง ที่อยู่แบบหลายลายเซ็นนี้น่าสนใจกว่า: Bob สามารถปลดล็อกที่อยู่นี้คนเดียว แต่เดี๋ยวก่อน (ธุรกรรมของ Alice หลังจาก 1-00 บล็อค ในห่วงโซ่ Bob สามารถใช้เงินในนั้น (นี่คือการ ล็อคเวลาสัมพัทธ์ ) อลิซยังสามารถเปิดที่อยู่นี้เพียงอย่างเดียวโดยที่เธอมีค่าแฮชที่ตรงกับของขวัญที่ Bob มอบให้เธอ ค่าลับของ (แน่นอนว่าอลิซไม่รู้คุณค่าความลับนี้เลย—ทั้งหมดที่เธอมีคือค่าแฮชที่บ๊อบมอบให้เธอ—ดังนั้นจึงเป็นเพียงการดูถูกเท่านั้น) (หมายเหตุผู้แปล: นั่นคือ ที่อยู่หลายลายเซ็นที่สองนี้มีทั้งการล็อกเวลาและแฮชล็อก .)
อลิซลงนามในการทำธุรกรรมของเธอ แต่เธอจะไม่ถ่ายทอดการทำธุรกรรม! เธอจะส่งธุรกรรมให้ Bob แทน
ในเวลาเดียวกัน Bob ยังดำเนินการแบบสมมาตรอีกด้วย นอกจากนี้เขายังสร้างธุรกรรมที่มีข้อผูกมัด โดยส่ง 6 btc ให้ตัวเองและ 4 btc ไปยังที่อยู่แบบหลายลายเซ็นใหม่ อลิซสามารถปลดล็อกที่อยู่ได้โดยลำพังหลังจากรอ 1,000 บล็อก หรือ Bob สามารถปลดล็อกที่อยู่ด้วยค่าลับของอลิซ
Bob ลงนามในการทำธุรกรรมและส่งให้อลิซ
หลังจากแลกเปลี่ยนธุรกรรมข้อผูกมัดและค่าแฮชแล้ว พวกเขาลงนามร่วมกันและเผยแพร่ธุรกรรมการเปิดช่องเพื่อให้สามารถอัปโหลดไปยังห่วงโซ่ได้ ขณะนี้ได้เปิดช่องทางการชำระเงินแบบสองทาง
หลังจากเปิดช่องแล้ว ทั้งอลิซและบ็อบสามารถลงนามและเผยแพร่ธุรกรรมข้อผูกมัดที่ถูกต้องบางส่วนที่ได้รับจากท้องถิ่น หากอลิซออกอากาศ (บ็อบส่งธุรกรรมผูกมัดให้เธอ) บ็อบจะได้รับ 6 btc ทันที หาก Bod ออกอากาศ อลิซจะได้รับ 4 btc ทันที แต่อันที่ลงนามและถ่ายทอดการทำธุรกรรมต้องรอ 1,000 บล็อกเพื่อปลดล็อกที่อยู่หลายลายเซ็นที่ตามมาและนำ bitcoins ที่เหลือออกไป

อย่างไรก็ตาม นี่เป็นเคล็ดลับสำคัญของช่องทางการชำระเงิน: ไม่ลงนามและเผยแพร่ธุรกรรมข้อผูกมัดที่ได้รับ
(หมายเหตุผู้แปล: จุดประสงค์ของการโต้ตอบกับธุรกรรมข้อผูกมัดก่อนแล้วจึงแพร่ภาพธุรกรรมการเปิดช่องเพื่อหลีกเลี่ยงการฉ้อโกงจากฝ่ายตรงข้าม หลังจากได้รับธุรกรรมข้อผูกมัดแล้ว ไม่จำเป็นต้องออกอากาศ และรับประกันความปลอดภัยได้ด้วย )
อัพเดทช่อง
ต่อมา Bob ต้องการส่ง 1 btc กลับไปให้ Alice และพวกเขาต้องการอัปเดตสถานะของช่องนี้เพื่อให้กลับสู่สถานะ 5:5 เพื่อให้บรรลุเป้าหมายนี้ อลิซและบ็อบต้องทำสองสิ่ง
ก่อนอื่น ทั้งสองฝ่ายจะต้องผ่านขั้นตอนที่อธิบายไว้ข้างต้นอีกครั้ง (ยกเว้นในส่วนของการเปิดธุรกรรม เนื่องจากได้รับการบันทึกไว้ในห่วงโซ่) ครั้งนี้ทั้งอลิซและบ็อบกำหนด 5 btc ให้กันและกัน และทั้งคู่กำหนด 5 btc ให้กับที่อยู่แบบหลายลายเซ็นนั้น เงื่อนไขสำหรับที่อยู่แบบหลายลายเซ็นที่ตามมาเหล่านี้คล้ายกัน ยกเว้นว่าทั้งหมดจำเป็นต้องสร้างค่าลับใหม่: ทั้ง Alice และ Bob จัดเตรียมค่าแฮชใหม่ ทั้งคู่ลงนามในธุรกรรมข้อผูกมัดใหม่ของตนเองและส่งให้กันและกัน
ประการที่สอง ทั้งอลิซและบ็อบมอบค่าลับแรกให้กันและกัน (ค่าที่ใช้ในการทำธุรกรรมข้อผูกมัดครั้งแรก)
ณ จุดนี้ ทั้งอลิซและบ็อบสามารถลงนามและถ่ายทอดธุรกรรมข้อผูกมัดล่าสุดของพวกเขาได้ คู่ต่อสู้ของพวกเขาจะได้รับ 5 btc ทันที ในขณะที่การแพร่ภาพนั้นต้องรอ 1,000 บล็อค เช่นเดียวกับที่สถานะของช่องจะได้รับการอัปเดต
แต่อะไรที่ทำให้บ๊อบหยุดออกอากาศการทำธุรกรรมเก่าที่ผูกมัด? การทำธุรกรรมนั้นจะจัดสรรให้เขา 6 btc ซึ่งมากกว่า 5 btc...
แน่นอนว่าสิ่งที่ทำให้บ็อบหยุดไม่อยู่ก็คือค่าความลับแรกของเขา ซึ่งเขาได้มอบให้กับอลิซไปแล้ว
เนื่องจากในเวลานี้ Bob ไม่สามารถลงนามและเผยแพร่ธุรกรรมข้อผูกมัดที่เก่ากว่าได้อีกต่อไปตามที่เขาต้องการ เนื่องจาก Alice รู้ความลับประการแรกของ Bob แล้ว ถ้า Bob ลงนามและออกอากาศ (รายการที่ Alice มอบให้เขา) ในการทำธุรกรรมข้อผูกมัดที่เก่ากว่า เขาจะส่ง 4 btc ไปให้ Alice ทันที... และเขาจะต้องรอ 1,000 บล็อกเพื่ออ้างสิทธิ์ด้วยตัวเอง แต่ Alice รู้ความลับของเขาแล้ว คุ้มค่ามาก ดังนั้นเธอจึงสามารถใช้เวลานี้เพื่อถอน btc ที่เหลืออีก 6 btc ล่วงหน้า!
และเนื่องจากบ็อบก็มีค่าความลับของอลิซเช่นกัน สำหรับบ็อบก็เช่นกัน! หากอลิซต้องการลงนามและเผยแพร่ธุรกรรมข้อผูกมัดเก่า Bob สามารถขโมย btc ทั้งหมดที่เธอใส่ไว้ในช่องได้!
ซึ่งหมายความว่าอลิซและบ็อบต่างจัดระเบียบสิ่งจูงใจที่จะไม่เล่นกล แต่จะออกอากาศเฉพาะสถานะล่าสุดเท่านั้น

หลังจากมีช่องทางการชำระเงินแบบสองทางแล้ว เราต้องขยายให้เป็นเครือข่ายการชำระเงิน นี่คือหัวข้อของบทความที่สองของเรา
ขอบคุณ Rusty Russell และ Joseph Poon สำหรับข้อเสนอแนะที่ทุ่มเท


