ในโปรโตคอลฉันทามติของนากาโมโตะ (ย่อว่า NC ในภาพฉันทามตินากาโมโตะ) เพื่อแก้ปัญหาการแยกทางสองทาง คนงานเหมืองจะต้องเลือกเชนที่ยาวที่สุดหากเป็นไปได้ เมื่อไม่มีเชนที่ยาวที่สุด คนงานเหมืองจะเลือกบล็อกที่ได้รับก่อน ถูกเพิ่มเข้าไปในห่วงโซ่หลัก ในแง่ของรางวัล บล็อกลูกโซ่หลักจะได้รับรางวัลทั้งหมด และบล็อกลูกโซ่จะไม่ได้รับรางวัลอะไรเลย
ปลอดภัยเพียงพอหรือไม่
การวิเคราะห์ดั้งเดิมของความเห็นพ้องของนากาโมโตะมีแนวโน้มที่จะเชื่อว่าบล็อกเชนนั้นมีคุณภาพเชนที่สมบูรณ์แบบ กล่าวคือ ผู้โจมตีที่มีกำลังประมวลผลน้อยกว่า 50% ของเครือข่ายทั้งหมดไม่สามารถแก้ไขบล็อกเชนได้ อย่างไรก็ตาม ในความเป็นจริงแล้ว ผู้โจมตีสามารถแก้ไขบล็อกเชนด้วยอัตราความสำเร็จที่สูงมาก
มีการโจมตีสามประเภทที่ปรับเปลี่ยนบล็อกเชน: การขุดแบบเห็นแก่ตัว การใช้จ่ายสองเท่า และการโจมตีการเซ็นเซอร์ ในหมู่พวกเขา ผู้โจมตีการขุดที่เห็นแก่ตัวสามารถรับรางวัลการบล็อกที่ไม่ยุติธรรมซึ่งไม่ได้สัดส่วนกับพลังการประมวลผลของพวกเขา พวกเขาสามารถรวมพลังการคำนวณการขุดเพื่อรับรางวัลบล็อกสัมพัทธ์ที่สูงขึ้น ซึ่งจะเป็นการทำลายลักษณะการกระจายอำนาจของบล็อกเชน ในการโจมตีแบบ double-spend ผู้โจมตีสามารถย้อนกลับธุรกรรมที่ได้รับการยืนยันและเพิ่มผลประโยชน์สูงสุดของพวกเขาเอง ในกรณีของการโจมตีแบบเซ็นเซอร์ ผู้โจมตีขัดขวางการทำธุรกรรมจากการยืนยัน ก่อให้เกิดความสูญเสียทางเศรษฐกิจแก่นักขุดที่ซื่อสัตย์
การขุดที่เห็นแก่ตัว
การขุดที่เห็นแก่ตัว
โจมตีการใช้จ่ายสองเท่า
การโจมตีด้วยการเซ็นเซอร์
สี่เหลี่ยมสีแดงระบุเมื่อบล็อกถูกเผยแพร่ไปยังเครือข่าย จากนั้นวงกลมสีส้มระบุบล็อกของผู้โจมตี และสามเหลี่ยมระบุบล็อกที่ขุดโดยนักขุดที่ซื่อสัตย์ ผู้โจมตีโชคดีพอที่จะพบบล็อกแรก แต่แทนที่จะเผยแพร่ไปยังเครือข่าย กลับเลือกที่จะระงับบล็อกนั้น
เมื่อนักขุดที่ซื่อสัตย์พบบล็อก ผู้โจมตีจะเผยแพร่บล็อกที่ถูกระงับต่อหน้านักขุดที่ซื่อสัตย์ในเวลานี้ จากนั้นนักขุดทุกคนจะขุดบนบล็อกของผู้โจมตีแทนที่จะเป็นบล็อกของนักขุดที่ซื่อสัตย์
หากผู้โจมตีโชคดีพอที่จะพบบล็อกหลายบล็อกติดต่อกัน ผู้โจมตีสามารถแยกบล็อกที่ซื่อสัตย์ได้โดยไม่มีความเสี่ยง ในกรณีนี้ ห่วงโซ่ของผู้โจมตีจะยาวขึ้น และพลังการประมวลผลของเครือข่ายทั้งหมดจะไปที่ห่วงโซ่ของมันเพื่อขุดเหมือง ด้วยวิธีนี้ ผู้โจมตีประสบความสำเร็จในการเพิ่มสัดส่วนสัมพัทธ์ของรางวัลการบล็อกโดยรวมที่ได้รับ
การโจมตีแบบใช้จ่ายซ้ำซ้อนนั้นคล้ายกับการโจมตีการขุดแบบเห็นแก่ตัวมาก ซึ่งจะได้รับรางวัลเพิ่มเติมผ่านการขุดแบบลับ ตัวอย่างเช่น ใน Bitcoin ตามแบบแผน มี 6 บล็อกเพื่อยืนยันการทำธุรกรรม ซึ่งโดยพื้นฐานแล้วจะได้รับการยืนยันอย่างสมบูรณ์ หากผู้โจมตีแอบยึดบล็อก 6 บล็อกแล้วเผยแพร่ไปยังเครือข่ายพร้อมกัน เขาสามารถย้อนกลับธุรกรรมได้หลังจากได้รับสินค้าหรือบริการ
การโจมตีด้วยการเซ็นเซอร์พยายามแยกบล็อกทั้งหมดที่ไม่เป็นไปตามข้อกำหนดการเซ็นเซอร์ เช่น ฉันจะออกอากาศธุรกรรมเหล่านี้ที่ฉันต้องการเซ็นเซอร์ หากคุณไม่ปฏิบัติตามคำสั่งของฉัน ฉันจะพยายามแยกบล็อกของคุณ
สองโซลูชั่น
พูดคุยเกี่ยวกับสองวิธีในการแก้ปัญหาความปลอดภัยฉันทามติของ Nakamoto
ประเภทแรกที่เราเรียกว่าโปรโตคอล “คุณภาพของห่วงโซ่ที่ดีกว่า” มีโปรโตคอลมากมายในหมวดหมู่กว้างๆ นี้ดังที่แสดงไว้ ซึ่งอ้างว่าสามารถปรับปรุงคุณภาพของห่วงโซ่ได้ ครั้งนี้ผมจะมุ่งเน้นไปที่ "โปรโตคอลการผูกไทเบรกที่เล็กที่สุด (เรียกสั้นๆ ว่า SHTB)" และ "โปรโตคอลการผูกไทเบรกแบบกำหนดไม่ได้ซึ่งคาดเดาไม่ได้ (เรียกสั้นๆ ว่า UDTB)"
ประเภทที่สองเรียกว่า "โปรโตคอลต่อต้านการโจมตี" โปรโตคอลเหล่านี้อ้างว่าสามารถต้านทานการโจมตีได้โดยที่คุณภาพของเชนไม่สมบูรณ์แบบ ดังนั้นจึงไม่จำเป็นต้องปรับปรุงคุณภาพของเชน
โปรโตคอลต่อต้านการโจมตีสามประเภท
ประการแรกคือโปรโตคอลรางวัลทั้งหมด โปรโตคอลประเภทนี้จะให้รางวัลแก่หลักฐานการทำงานล่าสุด และบล็อกที่เข้าเกณฑ์จะได้รับรางวัลอยู่ดี ดังนั้นผู้โจมตีจึงไม่สามารถดำเนินการโจมตีการขุดเหมืองที่เห็นแก่ตัวเพื่อทำให้รางวัลของนักขุดที่ซื่อสัตย์เป็นโมฆะ ดังนั้นผู้โจมตีจึงไม่มีแรงจูงใจในการขุดเหมืองที่เห็นแก่ตัว จู่โจม.
ประการที่สองเรียกว่าโปรโตคอล "การลงโทษ" โปรโตคอลเหล่านี้จะเสียรางวัลสำหรับการบล็อกที่น่าสงสัย กฎการลงโทษหวังว่าด้วยความเกลียดชังการสูญเสีย ทุกคนต้องปฏิบัติตามข้อตกลง
วิธีที่สามเรียกว่าโปรโตคอล "รางวัลนำโชค" โปรโตคอลเหล่านี้ให้รางวัลบล็อกนำโชคตามเนื้อหาของบล็อก โดยหวังว่าบล็อกนำโชคเหล่านี้จะทำหน้าที่เป็น "จุดยึด" สำหรับเครือข่ายที่เสถียร
มาดูโปรโตคอลเหล่านี้กันต่อไป
ก่อนอื่น เราจะวิเคราะห์ข้อตกลงประเภท "คุณภาพของห่วงโซ่ที่ดีกว่า" และข้อแรกคือ "ข้อตกลงการทำลายแฮชไทน์ขั้นต่ำ" ในโปรโตคอลนี้ เมื่อใดก็ตามที่เสมอกัน โปรโตคอลกำหนดให้นักขุดทุกคนเลือกบล็อกที่มีแฮชน้อยที่สุด โดยไม่คำนึงว่าใครจะได้รับก่อน
วิธีที่ 2 เรียกว่า "โปรโตคอลการผูกไทเบรกแบบคาดเดาไม่ได้" โปรโตคอลระบุว่าเมื่อใดก็ตามที่มีการเสมอกัน ทุกคนจะใช้ฟังก์ชันสุ่มหลอกแบบกำหนดขึ้นไม่ได้เพื่อคำนวณลำดับของเชนที่เข้าร่วมทั้งหมด โดยไม่คำนึงว่าบล็อกใดจะได้รับก่อน เหตุผลเบื้องหลังโปรโตคอลที่กำหนดขึ้นโดยคาดเดาไม่ได้ก็คือ เนื่องจากผู้โจมตีไม่สามารถคาดเดาได้ว่าเขาจะชนะการแข่งขันบล็อกด้วยโอกาสมากกว่า 50% หรือไม่ จึงไม่ฉลาด (และดังนั้นจึงไม่ใช่ทางเลือก) ที่จะทำการโจมตีการขุดที่เห็นแก่ตัว
สำหรับโปรโตคอลต่อต้านการโจมตี ฉันจะเลือกโปรโตคอลจากวิธีการทางเทคนิคแต่ละวิธีเพื่อวิเคราะห์ สำหรับโปรโตคอล "รางวัลทั้งหมด" เรามาวิเคราะห์ห่วงโซ่ผลไม้กัน ใน Fruitchain มีการใช้ขั้นตอนการขุดแบบเดียวกันสำหรับสองผลิตภัณฑ์ที่แตกต่างกัน ถ้า k บิตแรกของค่าแฮชของบล็อกตัวเลือกมีค่าน้อยกว่าเกณฑ์ที่กำหนด จะถูกพิจารณาว่าเป็นบล็อก ถ้าค่าแฮช k บิตสุดท้ายของบล็อกตัวเลือกมีค่าน้อยกว่าเกณฑ์ที่กำหนด ดังนั้น ถูกตัดสินว่าเป็นผลไม้ ดังนั้นเมื่อคุณรันอัลกอริทึมแฮช คุณอาจได้รับบล็อกหรือผลไม้
โปรโตคอลเช่นเดียวกับฉันทามติของ Nakamoto เป็นไปตามหลักการของห่วงโซ่ที่ยาวที่สุดและแบ่งความสัมพันธ์ตามบล็อกแรกที่ได้รับ
สำหรับโปรโตคอลต่อต้านการโจมตีทั้งหมด เราใช้ฉันทามติของ Nakamoto เป็นกฎสำหรับการแก้ปัญหาการแยก ดังนั้น เมื่อเราวิเคราะห์ความต้านทานการโจมตีของพวกเขา พวกเขาอยู่ภายใต้กฎเดียวกัน
ผลไม้ฝังอยู่ในบล็อก คุณสามารถคิดว่าผลไม้เป็นธุรกรรมในฉันทามติของนากาโมโตะ ซึ่งฝังอยู่ในผลไม้
ผลไม้แต่ละชนิดมีบล็อกตัวชี้ ซึ่งเป็นบล็อกที่ใกล้ที่สุด และผลไม้ขุดจะไม่ถูกละเลย ตัวชี้ของบล็อกกล้วยในรูปคือกรณีดังกล่าว ถ้าบล็อกตัวชี้อยู่ในห่วงโซ่หลัก แสดงว่าผลไม้นั้นถูกต้อง หากบล็อกตัวชี้เป็นลูกกำพร้า เช่น มะเขือเทศบนแผนภาพ แสดงว่าผลไม้นั้นไม่ใช่ผลไม้ที่ถูกต้องอีกต่อไป
มีกฎเพิ่มเติมว่าช่วงเวลาบล็อกผลไม้ต้องน้อยกว่าเกณฑ์การหมดเวลาที่กำหนดไว้ล่วงหน้า ช่องว่างถูกกำหนดให้เป็นความแตกต่างของความสูงของบล็อกระหว่างบล็อกหลักและบล็อกตัวชี้
ตัวอย่างเช่น ช่วงเวลาของกล้วยคือ 2 เนื่องจากบล็อกหลักอยู่หลังบล็อกพอยน์เตอร์ 2 บล็อก ดังนั้นผลไม้ที่ถูกต้องจะได้รับรางวัลเต็ม ในขณะที่บล็อกไม่ได้อะไรเลย
สำหรับโปรโตคอลการลงโทษ เราเลือกโปรโตคอล DECOR เวอร์ชันแก้ไขเป็นกรณีเพื่ออธิบาย ในเวอร์ชันแก้ไขของเรา เราเรียกว่าโปรโตคอลการแบ่งรางวัล (RS) ซึ่งตามชื่อที่แนะนำ รางวัลจะถูกแบ่งเท่าๆ กันระหว่างบล็อกการแข่งขันทั้งหมดที่มีความสูงเท่ากัน โปรโตคอลนี้อนุญาตให้บล็อกอ้างถึงบล็อก orphan ก่อนหน้าเป็นบล็อก unless หากช่วงเวลาต่ำกว่าเกณฑ์การหมดเวลา บล็อก unless นั้นถูกต้อง (และจะได้รับรางวัลบางอย่างด้วย)
ซึ่งคล้ายกับคำจำกัดความของช่วงเวลาในระเบียบการแจกรางวัลและห่วงโซ่ผลไม้ ข้อแตกต่างคือในโปรโตคอลนี้ ช่วงเวลาถูกกำหนดให้เป็นความแตกต่างของความสูงระหว่างบล็อกหลักและบล็อกอันล่าง แทนที่จะเป็นความแตกต่างของความสูงระหว่างบล็อกหลักและบล็อกพอยน์เตอร์ ดังนั้นเราจึงไม่พิจารณาความสัมพันธ์ของบล็อก แต่พิจารณาเฉพาะความสูงของบล็อกเท่านั้น รางวัลบล็อกแต่ละบล็อกจะกระจายเท่า ๆ กันระหว่างบล็อกที่แข่งขันกันและบล็อกลุงที่มีความสูงเท่ากัน ตัวอย่างเช่น ในแผนภาพนี้ บล็อก B และ C แต่ละบล็อกจะได้รับรางวัลครึ่งหนึ่งของบล็อก ในขณะที่บล็อก A และ D จะได้รับรางวัลเต็มบล็อก
สุดท้ายคือลูกโซ่ Sub-chain ยังใช้ขั้นตอนการขุดแบบเดียวกัน แต่เป็นผลิตภัณฑ์ที่แตกต่างกันสองอย่าง กฎการสร้างบล็อกใน subchain นั้นเหมือนกับ Bitcoin หากแฮชของบล็อกตัวเลือกต่ำกว่าเกณฑ์ที่กำหนดบล็อกนั้นจะถูกตัดสินว่าถูกต้อง หากค่าแฮชของบล็อกตัวเลือกมากกว่าเกณฑ์บล็อกแต่น้อยกว่าเกณฑ์อื่น เราจะถือว่าบล็อกนั้นอ่อนแอ (บล็อกอ่อนแอ) บล็อกที่อ่อนแอจะรวมอยู่ในความยาวของห่วงโซ่และทำหน้าที่ยืนยันการทำธุรกรรม อย่างไรก็ตาม บล็อคที่อ่อนแอจะไม่ได้รับรางวัลบล็อคใดๆ บล็อกเท่านั้นที่ได้รับรางวัลบล็อก
เมตริกทั่วไปสำหรับการวัดความปลอดภัยของโปรโตคอล
ฉันตื่นเต้นมาก เพราะต่อไปเราจะตั้งค่าเมตริกทั่วไปเพื่อวัดความปลอดภัยของโปรโตคอล คุณอ้างว่านี่คือโปรโตคอลที่ปลอดภัยที่สุด หากคุณต้องการพิสูจน์ให้ฉันเห็น คุณต้องวัดว่าโปรโตคอลของคุณปลอดภัยเพียงใดจากขนาดของตัวบ่งชี้เหล่านี้
มีตัวบ่งชี้สี่ตัวในการศึกษานี้ มาวิเคราะห์กัน
เมตริกแรกที่เราเรียกว่า Chain Quality หมายถึงเปอร์เซ็นต์ขั้นต่ำของบล็อกของนักขุดที่ซื่อสัตย์ในเชนหลัก ในตัวอย่างนี้ คุณภาพของเชนคือสามในหก เนื่องจากมีบล็อกหกบล็อกในเชนหลัก ซึ่งสามบล็อกมาจากคนงานเหมืองที่ซื่อสัตย์
ประการที่สองเรียกว่า Incentive Compatibility วัดความต้านทานต่อการโจมตีการขุดที่เห็นแก่ตัวและกำหนดเป็นเปอร์เซ็นต์ขั้นต่ำของรางวัลการบล็อกสำหรับนักขุดที่ซื่อสัตย์
ในกรณีนี้ เนื่องจากบล็อกเชนหลักสามในหกบล็อกมาจากนักขุดที่ซื่อสัตย์ ความเข้ากันได้ของสิ่งจูงใจคือ 50% ในฉันทามติของ Nakamoto ตัวชี้วัดทั้งสองนี้ (หมายถึงคุณภาพของห่วงโซ่และความเข้ากันได้ของสิ่งจูงใจ) มีค่าเท่ากัน อย่างไรก็ตาม สำหรับโปรโตคอลอื่น เมตริกทั้งสองนี้ไม่เหมือนกัน คุณภาพของห่วงโซ่จะใช้ในการประเมินฝ่ายตรงข้ามของ Byzantine เท่านั้น (หรือที่เรียกว่าโหนดที่เป็นอันตราย) แต่ความเข้ากันได้ของสิ่งจูงใจจะคำนึงถึงรางวัลด้วย
ตัวบ่งชี้ที่สามคือตัวบ่งชี้ความต้านทานการโจมตีอีกตัวหนึ่งที่เรียกว่า "กำไรจากการโค่นล้ม" ซึ่งจะวัดประสิทธิภาพของการโจมตีต่อต้านการใช้จ่ายซ้ำซ้อน ถูกกำหนดเป็น "รางวัลบล็อกโดยเฉลี่ยที่สามารถได้รับต่อช่วงเวลาบล็อกบวกมูลค่าสูงสุดของรางวัลการใช้จ่ายสองเท่า"
ในกรณีนี้ สมมติว่าพบบล็อกทุกๆ 10 นาที หากมีทั้งหมด 8 บล็อก จะใช้เวลาทั้งหมด 80 นาที (ซึ่งผู้โจมตีมี 3 บล็อก) ในตัวอย่างนี้ โดยเฉลี่ยทุกๆ 10 นาที ผู้โจมตีจะได้รับรางวัลบล็อก 3/8 รางวัลการใช้จ่ายสองเท่าคือ 0 เนื่องจากรางวัลการใช้จ่ายสองเท่าต้องใช้หกบล็อกเพื่อแยกออกจากกันในแถว
เนื่องจากไม่มีรางวัลเต็มเปอร์เซ็นต์ในการโจมตีต่อต้านการใช้จ่ายซ้ำซ้อน ตัวบ่งชี้จึงถูกตั้งค่าเป็น "รับรางวัลการบล็อกสูงสุดต่อช่วงเวลาการบล็อกโดยเฉลี่ย" ในกราฟนี้ ไม่มีรางวัลการโจมตีแบบใช้จ่ายสองเท่า เนื่องจากคุณต้องแยกบล็อกอย่างน้อย 6 บล็อกติดต่อกันจึงจะได้รับรางวัลสองเท่า
เมตริกสุดท้ายเรียกว่าความไวต่อการเซ็นเซอร์ ซึ่งเป็นเปอร์เซ็นต์สูงสุดของรางวัลที่นักขุดที่ซื่อสัตย์เสียไปเนื่องจากการปฏิเสธคำขอเซ็นเซอร์ เพราะหากฉันปฏิเสธคำขอตรวจสอบ ผู้โจมตีจะเริ่มบล็อกบล็อกของฉัน เมตริกนี้วัดเปอร์เซ็นต์ของบล็อกของฉันที่สามารถถูกละเลยได้ ในกรณีนี้ มีบล็อกที่ซื่อสัตย์ 5 บล็อก โดย 2 ในนั้นไม่มีบล็อก ดังนั้นความไวในการเซ็นเซอร์จึงอยู่ที่ 2/5
ผลการประเมิน
ทีนี้มาดูผลการประเมินกัน ในการแบ่งปันนี้ ฉันได้วิเคราะห์ 5 โปรโตคอล มาดูคุณภาพของห่วงโซ่ตัวบ่งชี้แรกกัน
อันดับแรก เรากำหนดตัวแปร γ ซึ่งเป็นเปอร์เซ็นต์ของพลังการประมวลผลของนักขุดที่ซื่อสัตย์ในห่วงโซ่ของผู้โจมตีต่อพลังการประมวลผลของนักขุดที่ซื่อสัตย์ทั้งหมดในกรณีที่เสมอกัน
ถ้า γ เท่ากับศูนย์ ดังนั้นพลังการประมวลผลของนักขุดที่ซื่อสัตย์ทั้งหมดจะถูกใช้เพื่อขุดห่วงโซ่ของนักขุดที่ซื่อสัตย์ และไม่มีกำลังการประมวลผลของนักขุดที่ซื่อสัตย์ในห่วงโซ่ของผู้โจมตี ถ้า γ เท่ากับ 1 แฮชเรตของคนงานเหมืองที่ซื่อสัตย์ทั้งหมดจะขุดบนห่วงโซ่ของผู้โจมตี และจะไม่มีใครขุดบนห่วงโซ่ของคนงานเหมืองที่ซื่อสัตย์
นี่คือพารามิเตอร์ทั่วไปที่ใช้ในการประเมินฉันทามติของ Nakamoto ต่อไปนี้เป็น 5 กรณี ได้แก่ ฉันทามติของนากาโมโตะ โปรโตคอลการทำลายการผูกแฮชขั้นต่ำ (SHTB) และโปรโตคอลการผูกไทเบรกที่คาดเดาไม่ได้ (UDTB) ในกรณีของ γ = 0, 0.5, 1 ตามลำดับ ห่วงโซ่ใดมีคุณภาพดีที่สุด
ในบรรดาโปรโตคอลทั้งห้านี้ Minimal Hash Tie Breaker (SHTB) และ Unpredictable Deterministic Tie Breaker (UDTB) มุ่งเน้นไปที่วิธีการทำลายความสัมพันธ์เท่านั้น ดังนั้นคุณไม่สามารถทำได้ดีกว่าฉันทามติของนากาโมโตะในกรณีที่เสมอกันโดย γ = 0 เนื่องจากเมื่อ γ = 0 พลังการขุดทั้งหมดจะอยู่ในเชนที่ซื่อสัตย์ และไม่มีอะไรแย่ไปกว่าฉันทามติของนากาโมโตะที่ γ = 1 ซึ่งผู้โจมตีชนะทุกคู่
ดังนั้นในสามโปรโตคอลที่เหลือ (SHTB, UDTB, โปรโตคอล Nakamoto ที่มี γ = 0.5) โปรโตคอลใดมีประสิทธิภาพแย่ที่สุด มันคือแฮชไทน์ขั้นต่ำที่ทำลายโปรโตคอล ดังนั้น โปรโตคอลใดดีกว่าสำหรับสองโปรโตคอลที่เหลือ (UDTB, โปรโตคอล Nakamoto ที่มี γ = 0.5)
ฉันมาที่นี่เพื่อหาคำตอบ ฉันทามติของนากาโมโตะกับ γ = 0.5 ดีกว่า ทำไม ตัวอย่างเช่น ใน Unpredictable Deterministic Tie Breaking Protocol (UDTB) เมื่อผู้โจมตีพบบล็อก แต่คนงานเหมืองที่ซื่อสัตย์ทำการบรรจุบล็อกและออกอากาศก่อนผู้โจมตี จากนั้นจึงเป็นไปได้ที่ผู้โจมตีจะคำนวณฟังก์ชันสุ่มหลอกและรับรู้ ว่าถ้าเขาเผยแพร่บล็อกของเขา จะไม่มีใครทำเหมืองบนบล็อกของเขาต่อไป เพราะเขาแพ้เสมอกันในการแข่งขันบล็อก แล้วผู้โจมตีรายนี้จะทำอะไรได้บ้าง?
ตามฉันทามติของนากาโมโตะ ผู้โจมตีจะประสบความล้มเหลวเนื่องจากบล็อกแรกที่ได้รับนั้นฝ่าฝืนกฎการเสมอกัน และหากคุณไม่เผยแพร่บล็อกโดยเร็วที่สุด ก็จะไม่มีใครขุดบล็อกของคุณ แต่มันแตกต่างกันใน UDTB แม้ว่าบล็อกถัดไปจะถูกขุดออกไป ผู้โจมตียังสามารถขุดต่อไปในบล็อกนี้ ตราบเท่าที่ผู้โจมตีสามารถชนะสิทธิ์ในการสร้างบล็อกถัดไป ผู้โจมตีจะสามารถเผยแพร่บล็อกสองบล็อกได้ พร้อมกันหลังจากบล็อกของคนงานเหมืองที่ซื่อสัตย์
หากฟังก์ชันสุ่มหลอกนี้บ่งชี้ว่าผู้โจมตีชนะการแข่งขันการบล็อก ผู้โจมตีจะได้รับรางวัลการบล็อก เนื่องจาก UDTB อนุญาตให้มีพฤติกรรมการโจมตีแบบพิเศษที่เรียกว่า "หลังการประท้วง" ความปลอดภัยของ UDTB จะแย่กว่าฉันทามติของ Nakamoto ที่มี γ = 0.5
เหตุใดโปรโตคอลการผูกแฮชขั้นต่ำจึงมีความปลอดภัยต่ำ เนื่องจากเมื่อผู้โจมตีพบบล็อกและค่าแฮชนั้นน้อยมาก ผู้โจมตีจึงมีความเป็นไปได้ประมาณ 99% ที่เขาจะสามารถคว้าสิทธิ์ในการสร้างบล็อกได้ ไม่ว่าแฮชของผู้อื่นจะเป็นเท่าใดก็ตาม ไม่ว่าบล็อกไหนจะออกอากาศก่อน ฉันสามารถทำนายความน่าจะเป็นที่จะชนะการเสมอกันนี้ได้อย่างแม่นยำ สิ่งนี้ทำให้ผู้โจมตีสามารถเปิดการโจมตีบล็อกได้หากเขาโชคดีพอ
เมื่อนักขุดที่ซื่อสัตย์พบบล็อกถัดไป เนื่องจากแฮชของบล็อกของผู้โจมตีมีขนาดเล็กพอ เขาจึงมีโอกาสสูงที่จะได้บล็อกที่ถูกต้อง ดังนั้นเขาจึงสามารถเผยแพร่บล็อกและได้รับบล็อกที่ถูกต้อง ครั้งต่อไปที่ผู้โจมตีโชคไม่ดี เขาจะได้รับบล็อกที่มีแฮชที่ค่อนข้างใหญ่ และผู้โจมตีสามารถเผยแพร่บล็อกนี้และรับรางวัลโดยตรง
บทสรุปทั่วไปสำหรับโปรโตคอลคุณภาพห่วงโซ่ที่ดีขึ้น
ด้านล่างนี้คือข้อสรุปทั่วไปบางส่วนจากการวิจัยของเราเกี่ยวกับโปรโตคอลคุณภาพห่วงโซ่ที่ดีขึ้น
ไม่มีโปรโตคอลใดที่สามารถบรรลุคุณภาพของบล็อกเชนในอุดมคติได้ เมื่อพลังการประมวลผลของผู้โจมตี α > 1/4 ตราบใดที่พลังการประมวลผลของผู้โจมตีเกินกว่า 1/4 ของพลังการประมวลผลของเครือข่ายทั้งหมด รายได้ของผู้โจมตีอาจสูงกว่ารายได้ปกติที่คำนวณตามส่วนแบ่งพลังการประมวลผล
ตราบใดที่พลังการประมวลผลของผู้โจมตีเกินกว่า 1/4 ของพลังการประมวลผลของเครือข่ายทั้งหมด รายได้ของผู้โจมตีอาจสูงกว่ารายได้ปกติที่คำนวณตามส่วนแบ่งพลังการประมวลผล
สำหรับค่าใดๆ ของ α โดยที่ γ = 0 ไม่มีโปรโตคอลใดทำงานได้ดีกว่าฉันทามติของ Nakamoto ในแง่ของความปลอดภัย
บางทีสำหรับบางสถานการณ์ โปรโตคอลบางอย่างนั้นดีกว่าในด้านความปลอดภัยมากกว่าฉันทามติของ Nakamoto แต่โดยทั่วไปฉันทามติของ Nakamoto นั้นดีที่สุดในด้านความปลอดภัย
ทำไมถึงเป็นเช่นนั้น? เนื่องจากโปรโตคอลไม่สามารถแยกแยะระหว่างการบล็อกที่ตรงไปตรงมาและการบล็อกของผู้โจมตี
เหตุใดโปรโตคอลจึงไม่สามารถแยกความแตกต่างระหว่างบล็อกเหล่านี้ได้
นี่เป็นเพราะความไม่สมดุลของข้อมูล ผู้โจมตีดำเนินการตามข้อมูลที่มีอยู่ทั้งหมด ซึ่งหมายความว่าเขารู้ว่าเขาปล่อยบล็อกไปกี่บล็อก บล็อกที่เขาระงับไปกี่บล็อก เมื่อไหร่ที่ฉันจะปล่อยบล็อกเหล่านี้ ฯลฯ ผู้โจมตีรู้ทุกอย่าง อย่างไรก็ตาม นักขุดที่ซื่อสัตย์จะกระทำการบนพื้นฐานของข้อมูลสาธารณะที่จำกัดเท่านั้น
ทำไม
นี่เป็นเพราะ PoW มีสมมติฐานด้านความปลอดภัยที่อ่อนแอ พวกเขาพยายามทำงานแบบอะซิงโครนัส โดยกำหนดเงื่อนไขว่านักขุดทุกคนจะดำเนินการ/ดำเนินการกับข้อมูลสาธารณะที่จำกัดมากเท่านั้น
ตอนนี้เรามาวิเคราะห์การต่อต้านการโจมตีสำหรับฉันทามติของ Nakamoto, Fruit chain, โปรโตคอลการกระจายรางวัล (Reward-Splitting, RS) และ sub-chain ก่อนอื่นเลย ความเข้ากันได้ของสิ่งจูงใจ
ในหมู่พวกเขา ระเบียบการแจกรางวัล (การบังคับใช้) ทำงานได้ดีที่สุด เพราะการลงโทษเป็นวิธีที่ได้ผลที่สุดในการจูงใจพฤติกรรมที่ถูกต้องเสมอ ลูกโซ่ทำหน้าที่ได้แย่ที่สุด
เครือผลไม้ทำงานได้ดีขึ้นในบางครั้งและบางครั้งก็แย่กว่าฉันทามติของนากาโมโตะ Subchains อนุญาตให้ผู้โจมตีทำให้บล็อกที่ซื่อสัตย์เป็นโมฆะด้วยบล็อกที่อ่อนแอซึ่งไร้ค่า หากทุกอย่างมีค่า ผู้โจมตีอาจขัดขวางการบล็อกได้ แต่บล็อกที่อ่อนแอนั้นไร้ค่าโดยตัวมันเอง และผู้โจมตีสามารถยึดบล็อกที่อ่อนแอนี้ไว้ได้โดยไม่เสี่ยงต่อการสูญเสียรางวัลบล็อก เนื่องจากไม่มีความเสี่ยง ทำไมไม่ลองพฤติกรรมที่กล้าหาญมากขึ้นในการระงับการบล็อกดูล่ะ
ยิ่งบล็อกอ่อนแอมากเท่าไหร่ พฤติกรรมของโปรโตคอลก็จะยิ่งแย่ลงเท่านั้น บล็อกที่อ่อนแอมากขึ้นทำให้สิ่งต่าง ๆ แย่ลง กรณีที่ดีที่สุดคือไม่ใช้บล็อกที่อ่อนแอ
เมื่อค่าการหมดเวลาของห่วงโซ่ผลไม้มีค่าน้อย การทำงานจะแย่กว่าฉันทามติของ Nakamoto ผู้โจมตีสามารถใช้บล็อกที่ไร้ประโยชน์เพื่อทำให้ผลไม้ของเขาเป็นโมฆะ สิ่งนี้ก็มีปัญหาที่คล้ายกัน เนื่องจากบล็อกไม่มีรางวัลใด ๆ ในห่วงโซ่ผลไม้ ดังนั้นผู้โจมตีจึงไม่มีแรงจูงใจในการเผยแพร่บล็อก เนื่องจากไม่มีความเสี่ยงที่จะระงับบล็อก และผลที่ตามมาก็คือผู้โจมตีสามารถลอง พฤติกรรมที่กล้าหาญมากขึ้นในการระงับการบล็อก
ผลลัพธ์คือผู้โจมตีสามารถพยายามแสดงพฤติกรรมที่ก้าวร้าวมากขึ้น
มันจะดีกว่าเล็กน้อยถ้ามีผลไม้มากกว่านี้ มีปัญหา Newton-Pepys ที่มีชื่อเสียงซึ่งเป็นปัญหาความน่าจะเป็นกล่าวคือ
ก. 6 ลูกเต๋าปกติทอยอย่างอิสระ อย่างน้อย 1 6 ปรากฏขึ้น
ข. ลูกเต๋าปกติ 12 ลูกทอยอย่างอิสระโดยมีอย่างน้อย 2 6 วินาที
หากคุณทอยลูกเต๋า 6 ลูก ความน่าจะเป็นที่จะได้ 1 6 จะมากกว่าการทอยลูกเต๋า 12 ลูกแล้วได้ 2 6 วินาที
มีผลิตภัณฑ์การขุดสี่รายการในห่วงโซ่ผลไม้: ผลไม้ที่ซื่อสัตย์ บล็อกที่ซื่อสัตย์ ผลไม้โจมตี และบล็อกการโจมตี
เราสามารถนึกถึง "ผู้โจมตีมี 1 บล็อกการหมดเวลามากกว่าผู้ขุดที่ซื่อสัตย์" - เช่น ผู้โจมตีสามารถแยกผลไม้ได้สำเร็จ - เป็นเหตุการณ์ที่มีเงื่อนไข กิจกรรมนี้ไม่ขึ้นกับการสร้างผลไม้โดยสิ้นเชิง เนื่องจากจะพิจารณาเฉพาะส่วนที่เป็นผลไม้เท่านั้น เราสามารถถือว่ามันเป็นเงื่อนไขในปัญหาของ Newton-Pepy เนื่องจากมันเป็นอิสระต่อกัน เราจึงโยนมันทิ้งไปได้เลย แต่เมื่อเป็นไปตามเงื่อนไข หากมีผลไม้น้อยกว่า ความน่าจะเป็นของ "ผู้โจมตีมีผลไม้มากกว่า" นั้นต่ำมาก
ผลไม้มากขึ้นหมายถึงผลไม้โจมตีมากขึ้น เนื่องจากผู้โจมตีเป็นคนส่วนน้อย หากจำนวนผลไม้ทั้งหมดมีมากกว่า หมายความว่าสัดส่วนผลไม้ของผู้โจมตีทั้งหมดจะมากกว่าที่เป็นจริง เป็นการดีกว่าที่จะใช้การพนันเป็นการเปรียบเทียบที่นี่ เพราะเรามีผลไม้มากขึ้น ซึ่งหมายความว่าเมื่อผู้โจมตีมีผลไม้มากขึ้น เขาจะมีส่วนร่วมในการเล่นการพนันน้อยลง คนหนึ่งเต็มใจที่จะเล่นการพนันมากขึ้นเมื่อเขาไม่มีอะไรจะเสีย แต่เขาไม่ต้องการพนันหากมีโอกาสสูญเสียเงินทุนมากขึ้น ซึ่งหมายความว่าผลไม้ที่มากขึ้นมีส่วนช่วยในการสร้างแรงจูงใจที่เข้ากันได้เล็กน้อย
ต่อไป ในแนวต้านการโจมตี เราจะวิเคราะห์ "ผลกำไรที่ไม่ดี" ของการโจมตี ยิ่งดัชนีเล็กเท่าไรก็ยิ่งดี ดังที่แสดงในรูป โปรโตคอลการกระจายรางวัลดีกว่าฉันทามติของนากาโมโตะ ดีกว่าห่วงโซ่ผลไม้ และ ดีกว่าห่วงโซ่ย่อย
เราได้วิเคราะห์มาตรการที่น่าสนใจอีกอย่างหนึ่งที่เรียกว่า "ค่าหัวไม่ดี" เรากำหนดให้เป็นรางวัลสำหรับการใช้จ่ายสองเท่าขั้นต่ำเพื่อศึกษาอคติด้านสิ่งจูงใจ (กล่าวคือ เมื่อรางวัลสำหรับการโจมตีแบบจ่ายสองเท่ามากกว่าค่าหัวสำหรับการทำความชั่ว ผู้โจมตีก็มีแรงจูงใจที่จะทำความชั่ว) (ตารางที่มุมล่างขวาของภาพคือค่าหัวที่คำนวณโดยฉันทามติของ Nakamoto และโปรโตคอลการกระจายรางวัล เมื่อจำนวนการยืนยันการบล็อกคือ 3 หรือ 6, α (เมื่ออัตราส่วนพลังการคำนวณของผู้โจมตีคือ 0.1 ถึง 0.4)
จากการคำนวณ "ค่าหัวที่ชั่วร้าย" ของแต่ละโปรโตคอล จะพบว่าห่วงโซ่ผลไม้และห่วงโซ่ย่อยโดยทั่วไปสามารถถูกทำลายได้โดยไม่มีค่าใช้จ่าย และแม้แต่การใช้จ่ายสองเท่าโดยไม่มีรางวัลก็สามารถทำได้ เพราะไม่มีความเสี่ยง
เราจะเห็นว่าเมื่อจำนวนการยืนยันการทำธุรกรรมเพิ่มขึ้น สำหรับผู้โจมตีที่อ่อนแอ การเติบโตของค่าหัวที่ชั่วร้ายก็เพิ่มขึ้นเกือบเท่าทวีคูณ ซึ่งหมายความว่าการยืนยันการทำธุรกรรมมากขึ้นจะช่วยต่อต้านการใช้จ่ายซ้ำซ้อน แต่ผลกระทบจะไม่ชัดเจนนักสำหรับผู้โจมตีที่แข็งแกร่ง
สำหรับการต่อต้านการเซ็นเซอร์ เราคำนวณตัวเลขและอันดับทั้งหมดดังนี้:
สำหรับ α ขนาดเล็ก นั่นคือ เมื่อสัดส่วนของพลังการประมวลผลของผู้โจมตีต่ำ ห่วงโซ่ผลไม้จะดีที่สุด จากนั้นฉันทามติของนากาโมโตะ แล้วจึงตามด้วยโปรโตคอลการกระจายรางวัลและห่วงโซ่ย่อย
สำหรับ α ขนาดใหญ่ นั่นคือเมื่อสัดส่วนของพลังการประมวลผลของผู้โจมตีค่อนข้างสูง โปรโตคอลการกระจายรางวัลจะดีที่สุด รองลงมาคือห่วงโซ่ผลไม้ ฉันทามติของ Nakamoto และห่วงโซ่ย่อย
สิ่งที่เห็นได้ชัดคือสำหรับ Fruitchain ถ้าคุณต้องการทำให้บล็อกอื่นเป็นโมฆะ มันยากกว่าโปรโตคอลอื่นมาก เพราะพวกเขาได้รับรางวัลภายใต้เงื่อนไขหลายประการ แม้ว่าคุณจะเป็นบล็อกกำพร้าก็ตาม
เหตุใดโปรโตคอลการกระจายรางวัลจึงดีกว่าห่วงโซ่ผลไม้เมื่อ α มีขนาดใหญ่พอ นั่นคือเมื่อพลังการประมวลผลของผู้โจมตีค่อนข้างสูง เนื่องจากในห่วงโซ่ผลไม้ ช่วงเวลาถูกกำหนดให้เป็นความแตกต่างของความสูงของบล็อกระหว่างบล็อกหลักและบล็อกตัวชี้ ในขณะที่โปรโตคอลการกระจายรางวัล ช่วงเวลาถูกกำหนดให้เป็นความแตกต่างของความสูงของบล็อกระหว่างบล็อกหลักและบล็อกเอง
ดังนั้น ในห่วงโซ่ผลไม้ หากผู้โจมตีชนะในการแข่งขันการบล็อกระยะยาว รางวัลของผลไม้ที่ซื่อสัตย์จะถูกนำออกไป เนื่องจากบล็อกตัวชี้ของพวกเขาถูกแยกออกทั้งหมด นั่นคือถ้าคุณแยกพอยน์เตอร์ออกจากกัน เกมก็จะจบลงสำหรับพวกเขา อย่างไรก็ตาม ในระเบียบการแจกรางวัล บล็อกที่ซื่อสัตย์สองสามบล็อกสุดท้ายยังคงสามารถรับรางวัลได้บ้าง สำหรับนักขุดที่ซื่อสัตย์ที่จะสูญเสียรางวัลทั้งหมด การเลิกใช้พอยน์เตอร์ของพวกเขานั้นไม่เพียงพอ คุณต้องสร้างบล็อกติดต่อกันเป็นจำนวนมาก (สิ่งนี้จะเพิ่มสิ่งกีดขวางให้กับผู้โจมตี)
รูปภาพเหล่านี้แสดงให้เห็นถึงปัญหาเหล่านี้
ในห่วงโซ่ผลไม้ หากคุณแยกตัวชี้ออก คุณจะได้รับรางวัลทั้งหมดอย่างสบายใจ อย่างไรก็ตาม ในระเบียบการแจกรางวัล แม้ว่าคุณจะแยกบล็อกเหล่านี้เป็นเวลานานในการแข่งขันบล็อก บล็อกเหล่านี้จะยังคงชี้กลับไปที่ห่วงโซ่หลัก เนื่องจากไม่ได้คำนึงถึงความสัมพันธ์ที่สำคัญ การบล็อกนี้ยังคงใช้รางวัลการบล็อกของผู้โจมตีเพียงครึ่งเดียว ซึ่งทำให้สามารถต้านทานการโจมตีการเซ็นเซอร์ได้มากขึ้น (เนื่องจากนักขุดที่ซื่อสัตย์ยังสามารถรับรางวัลบางส่วนได้แม้ว่าพวกเขาจะถูกเซ็นเซอร์ก็ตาม)
บทสรุปทั่วไปสำหรับโปรโตคอลต่อต้านการโจมตี
เรามาพูดถึงข้อสรุปทั่วไปบางประการเกี่ยวกับโปรโตคอลต่อต้านการโจมตีในการวิจัย
การตั้งเวลายืนยันการบล็อกให้นานขึ้นและแบนด์วิธที่มากขึ้นจะช่วยเพิ่มความปลอดภัย
มีภาวะที่กลืนไม่เข้าคายไม่ออกซึ่งเป็นกลไกที่เราเรียกว่า "ให้รางวัลคนเลว ลงโทษคนดี" สิ่งนี้จะทำลายความเข้าใจของทุกคนเกี่ยวกับรางวัลโปรโตคอล เพราะแม้ว่าคุณจะ Fork ที่นี่ คุณก็ยังสามารถรับรางวัลบล็อคได้ และไม่มีความเสี่ยงที่จะ Fork ดังนั้นสิ่งนี้จึงกระตุ้นให้ผู้โจมตีแยกและเริ่มการโจมตีแบบใช้จ่ายซ้ำซ้อนแทน
ในโปรโตคอลการลงโทษ เนื่องจากผู้โจมตีที่เซ็นเซอร์ไม่สนใจรางวัลการบล็อกของตนเอง กฎการลงโทษของคุณจึงให้เครื่องมืออื่นแก่ผู้โจมตีในการรับนักขุดที่ซื่อสัตย์เพื่อละทิ้งการบล็อกรางวัล
และสำหรับระเบียบการให้รางวัลนำโชค หากคุณไม่ทำลายความไม่สมดุลของข้อมูล แสดงว่าโชคดีก็ไม่ได้หมายความว่าดี บางครั้งบล็อกที่โชคดีกลายเป็นบล็อกที่ไม่ดี ทำให้สิ่งต่างๆ แย่ลง
ข้อสรุปคือเพื่อจัดการกับการโจมตีทั้งหมด เราต้องไปให้ไกลกว่ารางวัลในกฎพื้นฐาน (กฎการให้รางวัลไม่สามารถแก้ปัญหาการโจมตีได้เป็นอย่างดี)
ทำอย่างไร? ฉันเสนอแนวคิดที่จะพูดคุยกับคุณ
เราไม่ควรออกแบบโปรโตคอลที่ซับซ้อนและยากเกินไปที่จะวิเคราะห์ เราต้องออกแบบโปรโตคอลที่ผู้ออกแบบสามารถวิเคราะห์ได้ ความเรียบง่ายเป็นสิ่งที่ดี ความซับซ้อนเป็นศัตรูของความปลอดภัย
การวิเคราะห์ความปลอดภัยที่มุ่งเป้าไปที่กลยุทธ์การโจมตีเพียงอย่างเดียวนั้นเป็นสิ่งที่อันตราย สำหรับโปรโตคอลจำนวนมาก นักออกแบบของพวกเขาได้จำลองว่าโปรโตคอลของพวกเขาสามารถต้านทานวิธีการโจมตีที่เฉพาะเจาะจงได้ แต่โปรโตคอลดังกล่าวได้สร้างแรงบันดาลใจให้ผู้โจมตีศึกษากลยุทธ์การโจมตีอื่นๆ การวิเคราะห์ความปลอดภัยมุ่งเป้าไปที่แรงจูงใจในการโจมตีเพียงครั้งเดียวก็เป็นอันตรายเช่นกัน
ผู้โจมตีอาจมุ่งเน้นไปที่ผลประโยชน์ระยะสั้น ผลประโยชน์ระยะยาว หรือทำร้ายผลประโยชน์ของผู้ขุดรายอื่น เพื่อต่อต้านการโจมตีหนึ่งครั้ง คุณอาจกระตุ้นให้ผู้โจมตีเริ่มการโจมตีรูปแบบอื่นตามเป้าหมายอื่น คุณต้องคำนึงถึงผู้โจมตีทั้งหมดที่มีแรงจูงใจต่างกันในโมเดลของคุณ
