Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย
ศึกษาโพรโทคอล GG18, GG20 และ CGGMP ที่ทำให้หลายฝ่ายลงลายมือชื่อ ECDSA ร่วมกันได้โดยไม่ต้องสร้างกุญแจขึ้นใหม่
Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใด ECDSA จึงทำให้แบ่งเกณฑ์ได้ยาก
ลายเซ็น ECDSA ต้องคำนวณค่าใช้ครั้งเดียว k แบบสุ่ม จุด R = k*G บนเส้นโค้ง และลายเซ็น s = k^{-1}(h + r*x) mod n โดย x คือกุญแจส่วนตัว และ r คือพิกัด x ของ R การหาอินเวอร์สของ k และการคูณด้วยกุญแจส่วนตัวทำให้ ECDSA มีลักษณะไม่เชิงเส้นโดยเนื้อแท้ ต่างจากลายเซ็น Schnorr ที่ค่าตอบสนองเป็นเพียงการรวมเชิงเส้นอย่างง่าย ความไม่เชิงเส้นนี้ทำให้การกระจายการคำนวณไปยังหลายฝ่ายเป็นเรื่องท้าทายอย่างยิ่ง
GG18: ECDSA แบบแบ่งเกณฑ์ของ Gennaro-Goldfeder
โปรโตคอล GG18 ของ Gennaro และ Goldfeder (2018) เป็นโครงสร้าง ECDSA แบบสองฝ่ายและแบบใช้เกณฑ์ที่ใช้งานได้จริงชุดแรก ซึ่งมีความปลอดภัยโดยไม่ต้องอาศัยผู้แจกจ่ายที่เชื่อถือได้ แนวคิดสำคัญคือการใช้การเข้ารหัสแบบโฮโมมอร์ฟิกของ Paillier เพื่อดำเนินการแปลงจากการคูณเป็นการบวก (MtA) ที่จำเป็นต่อการคำนวณ ECDSA ซึ่งไม่เป็นเชิงเส้น GG18 ให้ความปลอดภัยตามการจำลองต่อผู้โจมตีแบบกึ่งซื่อสัตย์ที่กำหนดไว้ล่วงหน้า
GG20: การปรับปรุงด้านความปลอดภัย
GG20 (Gennaro และ Goldfeder 2020) ปรับปรุง GG18 โดยพิสูจน์ความปลอดภัยต่อผู้โจมตีที่มุ่งร้ายโดยไม่ต้องอาศัยการตั้งค่าที่เชื่อถือได้ GG20 เพิ่มการพิสูจน์แบบไม่เปิดเผยความรู้เพื่อรับรองว่าแต่ละฝ่ายปฏิบัติตามโปรโตคอลอย่างถูกต้อง การพิสูจน์เหล่านี้ป้องกันไม่ให้ฝ่ายที่มุ่งร้ายบิดเบือนค่าที่ใช้ครั้งเดียวหรือลายเซ็นเพื่อดึงข้อมูลเกี่ยวกับส่วนแบ่งกุญแจของฝ่ายอื่น GG20 กลายเป็นรากฐานของการนำกระเป๋าเงิน MPC ไปใช้งานจริงจำนวนมาก
CGGMP21: ความก้าวหน้าสูงสุดในปัจจุบัน
CGGMP21 (Canetti, Gennaro, Goldfeder, Makriyannis, Peled, 2021) เป็นโปรโตคอล ECDSA แบบใช้เกณฑ์ที่ล้ำสมัยที่สุดในปัจจุบัน โดยรองรับการยุติที่ระบุผู้รับผิดชอบได้ ซึ่งหมายความว่า หากโปรโตคอลการลงนามล้มเหลวเนื่องจากพฤติกรรมมุ่งร้าย โปรโตคอลจะสามารถระบุได้ว่าฝ่ายใดรับผิดชอบ เรื่องนี้สำคัญอย่างยิ่งสำหรับการนำไปใช้งานระดับองค์กร ซึ่งต้องตรวจสอบความรับผิดชอบได้ CGGMP21 ได้รับการนำไปใช้งานในไลบรารี MPC ที่ได้รับความนิยม เช่น tss-lib และ multi-party-sig
การแปลงจากการคูณเป็นการบวก
ความท้าทายหลักของ ECDSA แบบใช้เกณฑ์คือการคำนวณผลคูณของส่วนแบ่งความลับโดยไม่เปิดเผยส่วนแบ่งเหล่านั้น การแปลง MtA (จากการคูณเป็นการบวก) จะแปลงผลคูณ a*b ของส่วนแบ่งจากสองฝ่ายให้เป็นส่วนแบ่งแบบบวก โดยฝ่ายที่ 1 ได้ alpha และฝ่ายที่ 2 ได้ beta ซึ่งทำให้ alpha + beta = a*b การดำเนินการนี้ทำได้โดยใช้การเข้ารหัส Paillier ฝ่ายที่ 1 เข้ารหัส a ฝ่ายที่ 2 คูณด้วย b แบบโฮโมมอร์ฟิกและเพิ่มค่าความสุ่ม จากนั้นฝ่ายที่ 1 ถอดรหัสผลลัพธ์เพื่อให้ได้ส่วนแบ่งแบบบวก
การเข้ารหัสแบบโฮโมมอร์ฟิกของ Paillier ใน MtA
การเข้ารหัส Paillier เป็นรูปแบบการเข้ารหัสแบบโฮโมมอร์ฟิกบางส่วนที่รองรับทั้งการบวกและการคูณด้วยข้อความธรรมดา เมื่อมีการเข้ารหัส Enc(a) ทุกคนสามารถคำนวณ Enc(a*b) สำหรับ b ที่ทราบค่าได้โดยไม่ต้องถอดรหัส คุณสมบัตินี้ทำให้โปรโตคอล MtA เป็นไปได้ โดยฝ่ายที่ 1 สร้างคู่กุญแจ Paillier และส่ง Enc(k1) กับ Enc(x1) ซึ่งเป็นส่วนแบ่งของค่าที่ใช้ครั้งเดียวและกุญแจส่วนตัว ฝ่ายที่ 2 ใช้การดำเนินการแบบโฮโมมอร์ฟิกเพื่อคำนวณส่วนที่ตนมีส่วนร่วมโดยไม่ทราบค่า k1 หรือ x1
รอบการลงนามใน ECDSA แบบใช้เกณฑ์
โดยทั่วไปการลงนาม ECDSA แบบใช้เกณฑ์เกี่ยวข้องกับการสื่อสารหลายรอบ ใน GG20 มีระยะเตรียมการ (2 รอบ) ซึ่งคำนวณค่าผูกมัดของค่าที่ใช้ครั้งเดียวและค่าปิดบังแบบสุ่ม และมีระยะลงนามขณะทำงานจริง (1 รอบ) ที่รวมลายเซ็นบางส่วนเข้าด้วยกัน การเตรียมการทำได้ก่อนที่จะทราบข้อความ จึงลดเวลาแฝงในช่วงทำงานจริงเหลือเพียงรอบเดียว CGGMP21 ปรับปรุงให้มีประสิทธิภาพยิ่งขึ้น
การยุติที่ระบุผู้รับผิดชอบได้
การยุติที่ระบุผู้รับผิดชอบได้หมายความว่า หากโปรโตคอลการลงนามแบบใช้เกณฑ์ล้มเหลว (เนื่องจากฝ่ายหนึ่งส่งข้อความที่มีรูปแบบไม่ถูกต้องหรือไม่ปฏิบัติตามโปรโตคอล) ฝ่ายที่ซื่อสัตย์สามารถใช้หลักการเข้ารหัสเพื่อระบุได้ว่าฝ่ายใดประพฤติมิชอบ เรื่องนี้ต้องมีการพิสูจน์การคำนวณที่ถูกต้องแบบไม่เปิดเผยความรู้ในทุกขั้นตอน หากไม่มีการยุติที่ระบุผู้รับผิดชอบได้ ฝ่ายที่มุ่งร้ายอาจทำให้เกิดการปฏิเสธการให้บริการ (โดยปฏิเสธที่จะทำโปรโตคอลให้เสร็จสิ้น) โดยไม่ถูกระบุได้
EdDSA และ FROST: การใช้เกณฑ์ที่ง่ายกว่า
EdDSA (ลายเซ็นที่ใช้ Schnorr บน Ed25519) นำมาใช้แบบใช้เกณฑ์ได้ง่ายกว่า ECDSA มาก เนื่องจากลายเซ็น Schnorr เป็นเชิงเส้น โดยคำตอบ z = r + c*x เป็นผลรวมของส่วนแบ่งแบบบวก FROST (Schnorr แบบใช้เกณฑ์ที่ยืดหยุ่นและปรับจำนวนรอบให้เหมาะสม) โดย Komlo และ Goldberg (2020) ทำให้การลงนาม Schnorr แบบใช้เกณฑ์ในสองรอบเป็นไปได้โดยไม่ต้องมีการตั้งค่าที่เชื่อถือได้ FROST อยู่ระหว่างการกำหนดมาตรฐานโดย IETF (ร่าง RFC) เพื่อใช้งานในโปรโตคอลที่รักษาความเป็นส่วนตัวและกระเป๋าเงินคริปโตเคอร์เรนซี
ประสิทธิภาพของ ECDSA แบบใช้เกณฑ์
ECDSA แบบใช้เกณฑ์มีค่าใช้จ่ายในการคำนวณสูงกว่า ECDSA แบบฝ่ายเดียว เนื่องจากโปรโตคอล MtA และการพิสูจน์แบบไม่เปิดเผยความรู้ การลงนามแบบสองฝ่ายของ GG20 ใช้เวลาประมาณ 1-2 วินาทีบนฮาร์ดแวร์สมัยใหม่ ส่วนการลงนามแบบใช้เกณฑ์ที่มี n มากขึ้นจะใช้เวลานานขึ้น เนื่องจากต้องดำเนินการ MtA ระหว่างแต่ละคู่หลายครั้ง การปรับปรุงของ CGGMP21 ลดเวลานี้เหลือระดับหลายร้อยมิลลิวินาที สำหรับธุรกรรมคริปโตเคอร์เรนซีที่ให้ความสำคัญกับเวลาแฝงของการลงนาม ประสิทธิภาพระดับนี้ถือว่ายอมรับได้ แต่ก็ยังมีต้นทุนที่มีนัยสำคัญ
การนำไปใช้งานจริง
ECDSA แบบใช้เกณฑ์ถูกนำไปใช้งานในวงกว้างในภาคการเงินระดับสถาบัน Fireblocks ใช้ ECDSA แบบใช้เกณฑ์ที่อิง GG20 เพื่อรักษาความปลอดภัยให้ปริมาณธุรกรรมมูลค่ากว่า 4 ล้านล้านดอลลาร์ Coinbase Prime ใช้บริการดูแลสินทรัพย์แบบ MPC ที่อาศัยลายเซ็นแบบใช้เกณฑ์ Qredo และ Copper.co ให้บริการ ECDSA แบบใช้เกณฑ์สำหรับการจัดการสินทรัพย์ระดับสถาบัน ไลบรารี Go tss-lib (ที่ Binance ใช้งาน) และ multi-party-sig (ที่ Coinbase ใช้งาน) เป็นการนำไปใช้งานแบบโอเพนซอร์สที่สำคัญ
แบบทดสอบการแปลง MtA
การเข้ารหัสแบบโฮโมมอร์ฟิกของ Paillier มีบทบาทใดใน ECDSA แบบใช้เกณฑ์?
สรุป ECDSA แบบใช้เกณฑ์
ECDSA แบบใช้เกณฑ์ช่วยให้ฝ่ายจำนวน t ฝ่ายลงนามได้โดยไม่มีฝ่ายใดทราบกุญแจทั้งหมด โครงสร้างที่ไม่เป็นเชิงเส้นของ ECDSA ทำให้ต้องใช้การแปลง MtA ด้วยการเข้ารหัสแบบโฮโมมอร์ฟิกของ Paillier GG18 เป็นผู้บุกเบิกแนวทางนี้ GG20 เพิ่มความปลอดภัยต่อผู้โจมตีที่มุ่งร้าย และ CGGMP21 เพิ่มการยุติที่ระบุผู้รับผิดชอบได้ EdDSA/Schnorr นำมาใช้แบบใช้เกณฑ์ได้ง่ายกว่าผ่าน FROST (2 รอบ ไม่ต้องมีการตั้งค่าที่เชื่อถือได้) การนำไปใช้งานจริงที่ Fireblocks และ Coinbase ช่วยคุ้มครองสินทรัพย์มูลค่าหลายล้านล้าน
คำถามที่พบบ่อย
บทเรียน “Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย”
ศึกษาโพรโทคอล GG18, GG20 และ CGGMP ที่ทำให้หลายฝ่ายลงลายมือชื่อ ECDSA ร่วมกันได้โดยไม่ต้องสร้างกุญแจขึ้นใหม่ คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงร่างลายเซ็นแบบ Threshold: แนวคิดพื้นฐาน
- Threshold ECDSA: การลงลายมือชื่อแบบหลายฝ่าย
- โพรโทคอลการสร้างกุญแจแบบกระจาย
- โครงร่าง Threshold ในบล็อกเชนและ HSM