HodlX Guest Post ส่งโพสต์ของคุณ
ความปลอดภัยของธุรกรรมในบล็อกเชนคือ มักจะเชื่อมต่อกัน กับปัญหาของ block-finality.
ผู้รับธุรกรรมต้องแน่ใจว่าธุรกรรมจะไม่ถูกย้อนกลับและผู้ส่งไม่สามารถใช้จ่ายซ้ำซ้อนได้ ในกรณีของสกุลเงินคำสั่งการสิ้นสุดจะถูก จำกัด โดยกฎหมายโดยการทำให้สกุลเงินนั้นมีการประมูลตามกฎหมาย ในการออกแบบตาม PoW (หลักฐานการทำงาน) บล็อกจะไม่สิ้นสุด.
Satoshi Nakamoto ได้แสดงให้เห็นว่าความน่าจะเป็นของส้อมสั้นที่เกิดขึ้นเองโดยมีความยาว N>6 บล็อกมีความสำคัญเล็กน้อยดังนั้นจึงสามารถอ้างได้ว่า Bitcoin มีโอกาสสิ้นสุดที่น่าจะเป็น อย่างไรก็ตามนักวิจัยมี แสดง block-finality นั้นเป็นผลทางเศรษฐกิจที่แท้จริง: ธุรกรรมจะสิ้นสุดเมื่อใดก็ตามที่ต้นทุนที่จำเป็นสำหรับการกลับรายการนั้นมากกว่าผลกำไรที่อาจเกิดขึ้นจากการโจมตีด้วยการใช้จ่ายซ้ำซ้อน.
บางครั้งผู้เชี่ยวชาญด้านบล็อกเชนอ้างว่าบล็อกเชนบางตัวที่ใช้ PoS (หลักฐานการเดิมพัน) ไม่มีปัญหาเรื่องการปิดกั้นเนื่องจากการบล็อกในนั้นเป็น “ขั้นสุดท้ายทันที” คำกล่าวอ้างนี้เป็นเท็จ Forking เป็นปัญหาที่หลีกเลี่ยงไม่ได้ของ blockchain ไม่ว่าจะเลือกกฎฉันทามติใดก็ตาม.
ตัวอย่างที่ดีคือล่าสุด เรื่องราว ด้วย Steem blockchain ชุมชนเครือข่ายได้แบ่งออกเป็นสองค่ายที่ไม่เป็นมิตรซึ่งกันและกัน แม้จะมีกฎที่เป็นเอกฉันท์ blockchain ก็ถูกแยกออก แต่ละกลุ่มรักษาส้อมของตัวเองและบล็อกยอดคงเหลือในกระเป๋าสตางค์ของฝ่ายตรงข้าม เห็นได้ชัดว่าส้อมที่ปฏิบัติตามกฎของโปรโตคอลดั้งเดิมได้สูญเสียการดวลไปแล้วเนื่องจากมูลค่าตลาดของมันน้อยกว่ามูลค่าตลาดของส้อม ดังนั้นเราจึงสามารถสรุปได้ว่าการสิ้นสุดใน PoS blockchain มีปัจจัยหนุนทางเศรษฐกิจคล้ายกับ PoW blockchain ผู้พัฒนา Ethereum 2.0 แบ่งปัน วิสัยทัศน์เดียวกัน.
อย่างไรก็ตามพวกเขาอ้างว่ากลไกอย่างเจ็บแสบของโปรโตคอล Casper ไม่เพียง แต่ป้องกันการโจมตีที่ไม่มีเดิมพันเท่านั้น แต่ยังทำให้การโจมตีแบบใช้จ่ายสองครั้งมีราคาแพงกว่า อย่างไรก็ตามตรรกะของโปรโตคอลที่ซับซ้อนเปิดประตูสู่การโจมตีแบบใช้จ่ายสองเท่าที่ซับซ้อนยิ่งขึ้น.
การโจมตีแบบใช้จ่ายสองเท่าที่ง่ายขึ้น
รูปแบบที่ง่ายที่สุดของการโจมตีแบบใช้จ่ายสองเท่าบน PoS blockchain สำหรับผู้โจมตีที่เป็นอันตรายคือการล็อคเงินเดิมพันเป็นสองเท่าของเงินที่ผู้เข้าร่วมที่ซื่อสัตย์มี หากนักแสดงที่เป็นอันตราย B ประสบความสำเร็จในการทำสิ่งนี้ในเครือข่ายที่คล้ายกับ Ethereum 2.0 ก็มีแนวโน้มว่าภายในคณะกรรมการแบ่งชิ้นส่วนนั้นเขาจะได้รับเงินเดิมพันมากเป็นสองเท่าเมื่อมีผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์ ดังนั้นนักแสดงที่ประสงค์ร้ายจะควบคุม⅔ของการโหวตในคณะกรรมการแบ่งส่วน ใน Ethereum 2.0 จำนวนการโหวตนี้เพียงพอที่จะ “สรุป” การบล็อกได้ สมมติว่าเขาต้องการใช้เหรียญจำนวนสองเท่าในชิ้นส่วนนั้น เขาประกาศธุรกรรมที่ B ส่งเหรียญให้กับผู้ใช้ A. ธุรกรรมนี้เข้าสู่บล็อกที่ลงนามโดยผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์ B เพิ่มส่วนหนึ่งของคะแนนเสียงของเขาเพื่อให้บล็อกได้รับการเลือกตั้ง.
ในการลงมติตาม PoS นั้นของการโหวตในคณะกรรมการจะต้องได้รับการยืนยันเพื่อที่จะ “สรุป” การบล็อก ตามสมมติฐานของเราคะแนนเสียงครึ่งหนึ่งของผู้โจมตีคือ⅓ของคะแนนเสียงในคณะกรรมการ ร่วมกับผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์จะรวมกันเป็น⅔ นั่นคือเกณฑ์ที่จำเป็นในการ “สรุป” การบล็อก ดังนั้น A ได้เรียนรู้ว่าธุรกรรมได้รับการ “สรุป” และเผยแพร่สินค้าให้กับ B จากนั้น B จะคืนค่าธุรกรรมโดยสร้างส้อมและตรวจสอบความถูกต้องโดยใช้คะแนนเสียงทั้งหมดของเขาในคณะกรรมการ ตามโปรโตคอล Casper ครึ่งหนึ่งของสัดส่วนการถือหุ้น B ในชาร์ดที่ใช้ในส้อมทั้งสองควรเฉือน ผู้ออกแบบโปรโตคอล Casper อ้างว่านี่เป็นต้นทุนของการโจมตี.
ในสถานการณ์ที่เรียบง่ายนี้ผู้โจมตีจะสูญเสียเงินเดิมพันครึ่งหนึ่งในชิ้นส่วน นอกจากนี้จำนวนเงินนี้ยังเท่ากับเงินเดิมพันของผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์ในส่วนนี้ สมมติว่ามีเศษ N ในเครือข่าย จากนั้นผู้โจมตีจะสูญเสีย 1 / 2N ของสัดส่วนการถือหุ้นรวมของเขาหรือ 1 / N ของผู้มีส่วนได้ส่วนเสียทั้งหมดของผู้มีส่วนได้ส่วนเสียที่ซื่อสัตย์ ดังนั้นยิ่งมีเศษมากขึ้นในเครือข่ายการโจมตีแบบใช้จ่ายสองเท่าของผู้โจมตีก็จะถูกลง หากใครพิจารณาว่าค่านี้เป็นตัวชี้วัดความปลอดภัยของเครือข่ายความปลอดภัยจะลดลงตามปัจจัยของ N โปรดสังเกตว่านี่ไม่ใช่คุณสมบัติที่ยืนยันว่าเป็นโซลูชันที่เป็นไปได้ของ Scalability Trilemma อย่างไรก็ตามผู้พัฒนา Ethereum 2.0 อ้างว่าค่าใช้จ่ายในการโจมตีครั้งนี้สูงมากจนปัจจัย 1 / N ไม่มีผลต่อการโจมตี.
การโจมตีแบบใช้จ่ายสองครั้งที่ซับซ้อน
สถานการณ์การโจมตีที่อธิบายไว้ในส่วนก่อนหน้านี้ไม่ซ้ำกัน นักแสดงที่ประสงค์ร้ายสามารถทำการโจมตีด้วยการใช้จ่ายซ้ำซ้อนที่ซับซ้อนยิ่งขึ้น ผู้เขียนโปรโตคอลแคสเปอร์อ้างว่าส่วนหนึ่งของการเดิมพันของผู้โจมตีมักจะถูกเฉือนเสมอ เป็นเช่นนั้นจริงหรือ? คำตอบคือ“ ไม่” ทุกสิ่งที่เกิดขึ้นในเครือข่ายจะถูกบันทึกลงในบล็อคเชน หากบล็อกเชนไม่มีบันทึกการกระทำที่เป็นอันตรายเราจะกล่าวหาคนอื่นว่ามีส่วนร่วมในพฤติกรรมที่เป็นอันตรายได้อย่างไร?
ในเวอร์ชันถัดไปของการโจมตีสองครั้งนักแสดงที่ประสงค์ร้ายจะป้องกันไม่ให้เงินเดิมพันของเขาลดลง เพื่อที่จะตัดทอนส่วนได้ส่วนเสียโหนดที่ซื่อสัตย์ควรรวมถึงบันทึกตามลำดับบนห่วงโซ่เฉพาะที่ใช้ในการประสานงานกับผู้มีส่วนได้ส่วนเสีย เรียกว่าห่วงโซ่ Beacon หากเครือข่าย Beacon เป็นไปตามฉันทามติ PoS ที่ไม่ได้รับอนุญาตจำเป็นต้องมี⅔ของการลงคะแนนของผู้ตรวจสอบความถูกต้องเพื่อรวมบันทึกไว้ในบล็อกเชน ดังนั้นตราบใดที่นักแสดงที่ประสงค์ร้ายควบคุม⅓ของคณะกรรมการห่วงโซ่บีคอนเขาก็สามารถหลีกเลี่ยงการฟาดฟันได้ หากเขาป้องกันอย่างเจ็บแสบจนถึงเวลาที่เงินเดิมพันของเขาถูกปลดล็อคการโจมตีของเขาก็แทบจะเป็นอิสระ คำถามคือเขาควรล็อคสเตคไว้นานแค่ไหน?
ในข้อกำหนดปัจจุบันของ Ethereum 2.0 เงินเดิมพันจะถูกล็อคเป็นเวลาครึ่งปี อย่างไรก็ตามผู้โจมตีสามารถเริ่มการโจมตีของเขาได้เมื่อสิ้นสุดช่วงล็อกสเตค การแก้ไขที่เป็นไปได้คือการกำหนดช่วงเวลาก่อนการเปิดตัวซึ่งในช่วงเวลานั้นจะไม่สามารถเลือกเดิมพันให้เป็นคณะกรรมการแบ่งส่วนได้จากนั้นจึงถูกนำไปใช้ในการโจมตีแบบใช้จ่ายซ้ำซ้อน อย่างไรก็ตามมาตรการรับมือนี้จะช่วยลดต้นทุนในการวางเดิมพัน ในช่วงเวลานี้ผู้มีส่วนได้ส่วนเสียที่ได้รับผลกระทบทั้งหมดควรได้รับเงินชดเชยสำหรับเงินที่ถูกล็อคไว้ อย่างไรก็ตามเงินเหล่านี้ถูก“ ปิดใช้งาน” ดังนั้นจึงไม่เข้าร่วมในการตรวจสอบการบล็อก ยิ่งไปกว่านั้นนักแสดงที่ประสงค์ร้ายสามารถใช้การแก้ไขนี้เพื่อประโยชน์ของเขาได้เนื่องจากเขาสามารถเลือกเวลาสำหรับการโจมตีได้อย่างรอบคอบ เขาสามารถล็อคเงินเดิมพันของเขาได้พร้อมกันเพื่อให้เงินเดิมพันของเขา“ เปิดใช้งาน” และ“ ปิดการใช้งาน” พร้อมกัน ในทางตรงกันข้ามผู้มีส่วนได้ส่วนเสียที่ซื่อสัตย์มักจะมีส่วนได้เสียที่ถูกปิดการใช้งานดังนั้นจึงถูกแยกออกจากกระบวนการตรวจสอบความถูกต้อง ดังนั้นการได้รับคะแนนเสียงในคณะกรรมการจึงง่ายยิ่งขึ้น.
อาจมีคนโต้แย้งว่าในการโจมตีเวอร์ชันนี้โหนดที่ซื่อสัตย์สามารถสังเกตได้ว่า⅓ของสเตคที่คณะกรรมการห่วงโซ่บีคอนถูกใช้เพื่อตอบสนองการโจมตี พวกเขาสามารถดำเนินการที่ไม่ได้ระบุไว้ในโปรโตคอล Casper เพื่อลงโทษผู้โจมตี ตัวเลือกแรกคือการพยายามล็อคเงินให้มากขึ้นในการเดิมพัน อย่างที่สองคือการเริ่มส้อมใหม่ ตัวเลือกแรกไม่ใช่กรณีที่เป็นไปได้เนื่องจากผู้โจมตีสามารถทำการ “เซ็นเซอร์” ได้
เขาสามารถใช้คะแนนเสียงของเขาในคณะกรรมการห่วงโซ่ Beacon เพื่อป้องกันการจัดสรรเงินเดิมพันใหม่ ดังนั้นเขาสามารถถือ⅔ของคะแนนเสียงในคณะกรรมการแบ่งส่วนได้นานเท่าที่เขาต้องการ ตัวเลือกที่สองสามารถทำงานได้อย่างไรก็ตามเป็นการละเมิดโปรโตคอลเครือข่ายที่ผู้เข้าร่วมยอมรับตั้งแต่แรกเริ่ม หากผู้สังเกตการณ์อิสระพยายามค้นหาว่าเกิดอะไรขึ้นในเครือข่ายโดยพิจารณาจากข้อมูลที่บันทึกไว้ในบล็อกเชนเขาจะไม่สามารถแยกแยะผู้ประสงค์ร้ายออกจากผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์ได้.
ก่อนที่เราจะยุติการสนทนานี้ลองพิจารณาเวอร์ชันแก้ไขของการโจมตีครั้งล่าสุด เวอร์ชันใหม่นี้เป็นการผสมผสานระหว่างการโจมตีระยะไกลและการโจมตีแบบไม่มีเดิมพัน อีกครั้งที่นักแสดงผู้ประสงค์ร้ายใช้เงินเดิมพันส่วนหนึ่งเพื่อคีบเศษชิ้นส่วน อย่างไรก็ตามในกรณีนี้เขาจะไม่เปิดเผยห่วงโซ่ใหม่ให้กับโหนดที่ซื่อสัตย์ จากนั้นเขาก็รอจนกว่าสเตคที่ถูกบุกรุกของเขาจะถูกปลดล็อค ตอนนี้เขาขายหุ้นที่ถูกบุกรุกให้กับผู้เข้าร่วมที่ประมาทหยุดห่วงโซ่ชิ้นส่วนที่ซื่อสัตย์โดยใช้การโหวตของเขาในคณะกรรมการจากนั้นเปิดเผยส้อมของเขาให้กับผู้เข้าร่วมคนอื่น ๆ ตามโปรโตคอลควรละทิ้งห่วงโซ่ที่ดูแลโดยผู้ตรวจสอบความถูกต้องที่ซื่อสัตย์ ดังนั้นการโจมตีเวอร์ชันแก้ไขจึงประสบความสำเร็จ สังเกตว่าเสาเข็มที่ใช้คีบโซ่ขาย ดังนั้นนักแสดงที่ประสงค์ร้ายจึงหลีกเลี่ยงการฟาดฟันอีกครั้ง ยิ่งไปกว่านั้นในการโจมตีเวอร์ชันนี้เงินเดิมพันของเขาบนห่วงโซ่ Beacon ไม่ได้ถูกบุกรุก.
อาจมีคนแนะนำให้แก้ไขการโจมตีเวอร์ชันแก้ไขโดยอาศัยจุดตรวจ ตามการแก้ไขนี้โซ่มีบล็อกจุดตรวจที่ “ไม่สามารถย้อนกลับได้” อย่างไรก็ตามการแก้ไขนี้ยังเป็นที่ถกเถียงกันอยู่เนื่องจากแนวคิดของ “จุดตรวจ” ใช้ไม่ได้ในการตั้งค่าบล็อกเชน อย่างที่เราทราบกันดีว่าบล็อกใน blockchain นั้นไม่เคยสรุปได้อย่างสมบูรณ์ Forking เป็นคุณสมบัติตามธรรมชาติของ blockchain และ Forking ใด ๆ ก็จะมี“ จุดตรวจสอบขั้นสุดท้ายที่สมบูรณ์” เป็นของตัวเอง ดังนั้นการใช้แนวคิดของ “ด่าน” จึงมักจะสับสนและทำให้เข้าใจผิด หากโหนดต้องพึ่งพาด่านก็ต้องพึ่งพา“ ผู้ให้บริการจุดตรวจ” ต้องมีการแนะนำองค์ประกอบของความไว้วางใจในเครือข่ายที่ไม่น่าเชื่อถือที่ถูกกล่าวหา.
ข้อสรุปของเราคือผู้โจมตีที่จัดสรรพลังจำนวนมากในรูปแบบของการเดิมพันสามารถเปิดการโจมตีทำลายล้างในเครือข่ายได้ในขณะที่หลีกเลี่ยงกลไกที่เจ็บแสบ รูปแบบการโจมตีนี้คล้ายกับการโจมตี 51% ที่อาจดำเนินการในบล็อกเชนตาม PoW.
Vinod Manoharan เป็นผู้ประกอบการด้านเทคโนโลยีและเป็นผู้ก่อตั้งและซีอีโอของ Jax Multiversal Holdings, บริษัท โฮลดิ้งที่มีผลงานรวมถึง บริษัท เกมออนไลน์เกตเวย์การชำระเงินและ บริษัท เทคโนโลยีบล็อกเชน Manoharan ยังเป็นผู้ก่อตั้ง JAX.Network, การเริ่มต้นเทคโนโลยีในยูเครนที่มุ่งเน้นไปที่เทคโนโลยี Blockchain และโดยเฉพาะอย่างยิ่งการแก้ปัญหา Blockchain Scalability Trilemma ที่น่าอับอาย.
เขียนร่วมกับ Iurii Shyshatskyi หัวหน้าเจ้าหน้าที่วิทยาศาสตร์ของ JAX.Network.
ภาพเด่น: Shutterstock / Lopyryev Artem / Kuklos