14 ASICBoost

แปลโดย : Claude 3 Opus (Pro)

ในวันพุธที่ 5 เมษายน 2017 อีกหนึ่งระเบิดข่าวถูกจุดชนวน คราวนี้โดยพวก small block มันมาในรูปของอีเมลถึง Bitcoin developer mailing list จาก Gregory Maxwell เราจะไม่ลงรายละเอียดมากนักที่นี่ เพราะมันเป็นเรื่องทางเทคนิคสูง แรงผลักดันหลักที่อยู่เบื้องหลังข้อกล่าวหาของ Gregory คือเหตุผลที่ Bitmain และ Jihan บอกว่าต่อต้าน SegWit จริง ๆ แล้วเป็นคำโกหก Bitmain อาจมีแผนลับ: บริษัทค้นพบการปรับปรุงการขุดลับ ทางลัดในการพิสูจน์งาน ซึ่งจะใช้ไม่ได้หาก block มีธุรกรรม SegWit ดังนั้น เหตุผลที่ต่อต้าน SegWit จึงเป็นเรื่องการเงิน เพื่อปกป้องผลกำไรของ Bitmain มากกว่าเหตุผลที่บอกว่าเป็นเรื่องความซับซ้อนหรือเพื่อรักษาอำนาจต่อรองเพื่อให้ได้ hardfork หากเป็นความจริงที่ว่า Bitmain ไม่ซื่อสัตย์ขนาดนี้ ก็อาจโต้แย้งได้ว่า Bitmain เป็นผู้กระทำที่ประสงค์ร้ายเมื่อเกี่ยวข้องกับโปรโตคอล Bitcoin

อีเมลของ Gregory ให้ไว้ด้านล่าง

เมื่อเดือนก่อนผมกำลังอธิบายการโจมตี Bitcoin's SHA2 hashcash ซึ่งถูกใช้ประโยชน์โดย ASICBOOST และขั้นตอนต่าง ๆ ที่อาจใช้เพื่อปิดกั้นมันในเครือข่ายหากมันกลายเป็นปัญหา

ขณะที่การพูดคุยส่วนใหญ่เกี่ยวกับ ASICBOOST มุ่งเน้นไปที่วิธีการเปิดเผยในการใช้มัน แต่ก็มีวิธีการแอบแฝงในการใช้มันด้วย

ตอนที่ผมอธิบายหนึ่งในแนวทางในการยับยั้ง covert ASICBOOST ผมตระหนักว่าคำพูดของผมก็กำลังอธิบายโครงสร้างการผูกมัด SegWit อยู่ด้วย

ผู้เขียนข้อเสนอ SegWit พยายามอย่างเป็นพิเศษที่จะไม่เข้ากันไม่ได้กับระบบการขุดใด ๆ และโดยเฉพาะอย่างยิ่ง เปลี่ยนการออกแบบในจุดหนึ่งเพื่อรองรับชิปขุดที่มีที่อยู่จ่ายเงินบังคับ

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

ความไม่เข้ากันจะอธิบายได้มากว่าทำไมพฤติกรรมของฝ่ายบางฝ่ายในระบบนิเวศการขุดถึงยากจะอธิบาย ดังนั้นผมจึงเริ่มมองหาหลักฐานสนับสนุน การทำวิศวกรรมย้อนกลับของชิปขุดเฉพาะได้แสดงให้เห็นอย่างชัดเจนว่า ASICBOOST ถูกใช้งานในฮาร์ดแวร์

บนพื้นฐานนั้น ผมขอเสนอร่าง BIP ต่อไปนี้เพื่ออภิปราย ข้อเสนอนี้ไม่ได้ป้องกันการโจมตีโดยทั่วไป แต่จะยับยั้งรูปแบบแอบแฝงซึ่งเข้ากันไม่ได้กับการปรับปรุงโปรโตคอลบิตคอยน์เท่านั้น

ผมหวังว่าแม้แต่พวกเราที่ชอบที่จะปิดกั้น ASICBOOST อย่างสมบูรณ์ จะมารวมตัวกันเพื่อสนับสนุนมาตรการป้องกันที่แยกความกังวลโดยยับยั้งการใช้งานแอบแฝงที่อาจปิดกั้นการปรับปรุงโปรโตคอล [103]

ASICBoost เป็นวิธีการลดปริมาณงานที่นักขุดต้องทำเมื่อพยายามแฮชสำหรับ proof of work (PoW) ของ Bitcoin SHA256 ซึ่งเป็นอัลกอริทึมแฮชที่ใช้สำหรับ PoW ของ Bitcoin จะแบ่ง block header ออกเป็นชิ้นขนาด 64 ไบต์ก่อนการคำนวณจะเกิดขึ้น Bitcoin block header มีขนาด 80 ไบต์ และดังนั้นจึงถูกแบ่งระหว่างสองชิ้น -- ชิ้นที่ 1 และชิ้นที่ 2 ASICBoost ทำให้ค่าของหนึ่งในชิ้นเหล่านี้เหมือนเดิมในหลายๆ ครั้งของความพยายามแฮช ดังนั้นนักขุดจึงต้องทำงานเพียงบางส่วนสำหรับชิ้นนี้ ในหลายๆ ความพยายามแฮช ส่งผลให้เกิดประสิทธิภาพที่เพิ่มขึ้นอย่างมากอาจประมาณ 20 เปอร์เซ็นต์ บทความที่อธิบายระบบนี้ได้รับการตีพิมพ์ครั้งแรกในเดือนมีนาคม 2016 โดย Timo Hanke [104]

มีสองวิธีในการทำสิ่งนี้: อย่างเปิดเผย โดยการเล่นกับพื้นที่ version bits ใน Bitcoin block header ในชิ้นที่ 1 เพื่อสร้างเอนโทรปีในขณะที่ชิ้นที่ 2 ยังคงอยู่กับที่สำหรับความพยายามแฮชหลายครั้ง; หรืออย่างแอบแฝง Covert ASICBoost นั้นซับซ้อนกว่ามาก และเกี่ยวข้องกับการเล่นกับธุรกรรม Bitcoin เพื่อหาการชนกันในสี่ไบต์สุดท้ายใน Merkle root ของธุรกรรม Merkle root ถูกแบ่งข้ามทั้งสองชิ้น โดยมีสี่ไบต์สุดท้ายอยู่ในชิ้นที่ 2 ดังนั้นวิธีแอบแฝงนี้จึงทำให้ชิ้นที่ 2 อยู่กับที่สำหรับความพยายามแฮชหลายครั้ง การจัดการแอบแฝงแบบนี้สามารถเกิดขึ้นได้โดยการเล่นกับลำดับของธุรกรรมในบล็อก การอัปเกรด SegWit กำหนดให้นักขุดต้องยืนยันโครงสร้างธุรกรรมที่อื่นในบล็อก ทำให้การจัดการประเภทนี้แทบเป็นไปไม่ได้ ดังนั้น SegWit จึงป้องกัน covert ASICBoost โดยไม่ได้ตั้งใจ

ยังมีความไม่แน่นอนอยู่มากเกี่ยวกับข้ออ้างของ Gregory ที่ว่า "การทำวิศวกรรมย้อนกลับของชิปขุดเฉพาะได้แสดงให้เห็นอย่างชัดเจนว่า ASICBoost ถูกใช้ในฮาร์ดแวร์" ในขณะที่ small blocker ส่วนใหญ่ดูเหมือนจะเชื่อข้อกล่าวหา แต่ก็ไม่ชัดเจนสำหรับผมว่ามีหลักฐานเพียงพอที่จะสนับสนุนข้อกล่าวหาหรือไม่ บางที small blocker มั่นใจมากว่า SegWit เป็นความคิดที่ดี และไม่มีเหตุผลที่ดีที่ Bitmain จะคัดค้าน จนพวกเขาสรุปอย่างไม่เหมาะสมว่าเจตนาของ Bitmain ต้องเป็นไปในทางเลวร้าย ข้อกล่าวหานี้เข้ากันได้ดีมากกับเรื่องราว อธิบายพฤติกรรมของ Bitmain และด้วยเหตุนี้ small blocker ส่วนใหญ่จึงเชื่อเช่นนั้น แน่นอนว่า คำอธิบายอีกอย่างสำหรับพฤติกรรมของ Jihan ซึ่งดูเหมือนจะเป็นไปได้มากเช่นกัน คือเขาเป็น large blocker สุดโต่ง ที่สัมผัสกับเรื่องราวฝั่ง large block นี่ก็เป็นคำอธิบายที่สมเหตุสมผลสำหรับการคัดค้าน SegWit ของเขาเช่นกัน

สองวันหลังจากมีการกล่าวหา Bitmain ออกมาปฏิเสธยาวเหยียด:

Bitmain ได้ทดสอบ ASICBOOST บน Testnet แต่ไม่เคยใช้ ASICBOOST บน mainnet ตามที่ Gregory Maxwell บอกเป็นนัยในข้อเสนอ เราขอหลักฐานที่ชัดเจนจากผู้ที่อ้างว่าสิ่งนี้เป็นเท็จ เพราะการอ้างเรื่องไร้สาระแบบนั้นเป็นพิษต่อพื้นที่ Bitcoin

...

Bitmain ถือสิทธิบัตร ASICBOOST ในจีน เราสามารถใช้มันในฟาร์มขุดของเราเองในจีนได้อย่างถูกกฎหมายเพื่อทำกำไรจากมันและขายสัญญาขุดบนคลาวด์ให้กับสาธารณชน ... อุปกรณ์ขุด Bitcoin เสื่อมค่าอย่างรวดเร็ว Bitmain ได้แนะนำรุ่นเครื่องขุดที่มีประสิทธิภาพมากขึ้นอยู่เสมอสำหรับทุกคน ดังนั้นข้อความที่ว่าการใช้งาน ASICBOOST ซึ่งสามารถทำให้มีความแตกต่างในประสิทธิภาพการใช้พลังงาน 20% เป็นการพัฒนาในแง่ลบอย่างหนึ่งสำหรับโมเดลธุรกิจของ Bitmain จึงเป็นเรื่องเท็จ

...

SegWit ไม่ได้ทำงานในการผลิตเพราะเงื่อนไขที่ทำให้ชัดเจนในข้อตกลงฮ่องกงยังไม่ได้รับการตอบสนอง

...

ข้อเสนอล่าสุดของ Gregory Maxwell แนะนำให้เปลี่ยนการชนของ 2^32 เป็น 2^64 เพื่อทำให้ ASICBOOST ทำได้ยากขึ้น ผลที่ได้คือความสูญเสียสำหรับเจ้าของสิทธิบัตรและโปรโตคอล Bitcoin เจ้าของสิทธิบัตรจะไม่ได้อะไรเลยและโปรโตคอล Bitcoin จะกลายเป็นเรื่องที่ซับซ้อนยิ่งขึ้น

...

ชุมชน Bitcoin ได้รับความโชคร้ายครั้งใหญ่เมื่อ Maxwell เป็นผู้นำ (sic) ในการทำรัฐประหารต่อ Gavin Andresen และเอาสิทธิ์การคอมมิทบน Github ของเขาออกไป ตอนนี้เราในฐานะชุมชนมีหน้าที่ต้องหาวิธีหากลุ่มนักพัฒนาหลักชุดใหม่ที่ไม่ยุ่งกับการโจมตีหนึ่งในนักลงทุนรายใหญ่ของบิตคอยน์ (Ver), หนึ่งในเว็บเทรดที่ใหญ่ที่สุด (Coinbase), และผู้ผลิตอุปกรณ์ขุดที่ใหญ่ที่สุด (Bitmain) [105]

สิ่งแรกที่ต้องสังเกตคือ แม้จะปฏิเสธ แต่ Bitmain ก็ดูเหมือนจะยอมรับว่าได้ใช้สิ่งที่คาดว่าจะเป็น covert ASICBoost บน testnet และดังนั้นมันก็อาจใช้งานในฮาร์ดแวร์ของพวกเขา ก่อนการปฏิเสธนี้ ผมไม่แน่ใจเกี่ยวกับความแม่นยำของข้อกล่าวหา เรื่องตลกคือ ในความคิดของผม ลักษณะของการปฏิเสธนี้ทำให้ความน่าจะเป็นที่ข้อกล่าวหาเป็นจริงเพิ่มขึ้นอย่างมาก Bitmain ยังอ้างต่อไปว่าพวกเขาเป็นเจ้าของสิทธิบัตร ASICBoost ในจีนและสามารถใช้ได้อย่างถูกกฎหมายหากพวกเขาต้องการ ก่อนจะปกป้องเทคโนโลยีนี้ว่าเป็นการปรับปรุงการขุดอย่างถูกต้อง นโยบายการสื่อสารที่มีประสิทธิภาพกว่ามากคือการปฏิเสธอย่างง่ายและชัดเจน แทนที่จะปกป้อง ASICBoost ในสถานการณ์สมมติที่ Bitmain กำลังใช้มัน ดังนั้นการปฏิเสธจึงทำให้จุดยืนของ Bitmain อ่อนแอลง และถูก small blocker อ้างถึงเป็นหลักฐานของพฤติกรรมที่ประสงค์ร้าย แม้ว่า Bitmain จะไม่ได้ใช้ covert ASICBoost ในปัจจุบัน แต่พวกเขาก็อาจตั้งใจจะใช้ และดังนั้นเจตนารมณ์ของข้อกล่าวหาของ Gregory ดูเหมือนจะถูกต้องพอสมควร: Bitmain ไม่ซื่อสัตย์ในการคัดค้าน SegWit มันอาจเกี่ยวกับเรื่องเงินทั้งหมด

อย่างไรก็ตาม คำอธิบายที่ง่ายกว่าก็เป็นไปได้ บางที Bitmain แค่ไม่เก่งในการสื่อสารเป็นภาษาอังกฤษ และนี่อาจเป็นเหตุผลที่การปฏิเสธอ่อนแอมาก และยังมีวัฒนธรรมการโต้เถียงในทุกประเด็นในสงครามนี้ด้วย บางที Bitmain ต้องการบอกว่าพวกเขาไม่ได้ทำ covert ASICBoost แต่ถึงแม้ทำอยู่ แล้วไงล่ะ? ไม่ใช่เรื่องเป็นไปไม่ได้ที่ Bitmain ต้องการชี้ประเด็นนี้ แม้ว่าบริษัทจะไม่ได้ทำ ASICBoost ก็ตาม การปฏิเสธยังย้ำถึงจุดยืนของ Bitmain ในสงครามขนาด block ด้วยว่าพวกเขาจะไม่รัน SegWit เพราะเงื่อนไขในข้อตกลงฮ่องกงยังไม่บรรลุ แน่นอนว่าสำหรับพวก small block ไม่เคยตั้งใจให้เป็น quid pro quo

เป็นที่น่าทึ่งที่ Gavin ยังคงปกป้อง Bitmain โดยมีข้อสมมติว่าบริษัทกำลังดำเนินการ covert ASICBoost โดยอ้างว่ามันเป็นการปรับปรุงการขุดที่ถูกต้องซึ่งใช้ซอฟต์แวร์ Bitcoin

ไม่โอเคที่ Ethereum จะเปลี่ยนกฎเพื่อยกเลิกการขโมย แต่โอเคที่ Bitcoin จะเปลี่ยนกฎเพื่อป้องกันการปรับปรุง? [106]

อย่างไรก็ตาม Gavin ดูเหมือนจะพลาดประเด็น ประเด็นไม่ใช่ว่า covert ASICBoost นั้นไม่ถูกต้อง แต่การคัดค้าน SegWit ของ Bitmain นั้นตั้งอยู่บนความไม่ซื่อสัตย์ และในสงครามขนาด block ฝ่ายหลักฝ่ายหนึ่งถูกผลักดันด้วยเจตนาที่ไม่ซื่อสัตย์ หาก Bitmain ยอมรับและคัดค้าน SegWit อย่างเปิดเผยด้วยเหตุผลนี้ มันก็คงเป็นเรื่องราวที่ต่างออกไป

ในช่วงเวลาใกล้เคียงกับเรื่องอื้อฉาว ASICBoost พวก large blocker หลายคนเสนอ extension block เป็นไอเดียทางเลือกแทน SegWit ซึ่งเป็นวิธีเพิ่มขีดจำกัดขนาด block ผ่าน softfork ข้อเสนอนี้ทำโดย Andrew Lee บนบล็อกของ Purse.io ซึ่งเป็นบริษัทที่เกี่ยวข้องกับฝ่าย large block [107] แผนนี้ได้รับการสนับสนุนโดย Roger Ver [108] และ Bitmain ก็ดูเหมือนจะสนับสนุนไอเดียนี้ด้วย [109] extension block ถูกเสนอครั้งแรกโดย Johnson Lau ผู้ร่วมเขียน SegWit ในปี 2013 อย่างไรก็ตามไอเดียนี้ค่อนข้างถูกละทิ้งไปเพราะประสบการณ์ในการส่งเหรียญจาก extension block ไปยัง main chain นั้นไม่ราบรื่น ในทางกลับกัน กับ SegWit กระบวนการนี้ค่อนข้างตรงไปตรงมา

สิ่งที่น่าทึ่งคือพวก large blocker ดูเหมือนจะเห็นด้วยกับข้อเสนอที่มีข้อด้อยหลายอย่างของ SegWit ในแง่ที่ว่ามันซับซ้อนมากและไม่ใช่การเพิ่มขีดจำกัดขนาด block อย่างง่าย อย่างไรก็ตาม สิ่งที่ดูเหมือนจะสำคัญสำหรับพวกเขาคือไอเดียนี้ไม่ได้พัฒนาโดย Bitcoin Core ตอนนี้ การพัฒนาไอเดียของตัวเองและรู้สึกเป็นอิสระจาก Bitcoin Core ดูเหมือนจะเป็นประเด็นที่สำคัญที่สุดสำหรับพวก large blocker ไม่ใช่การเพิ่มขีดจำกัดขนาด block เอง

extension block เป็นวิธีที่จะได้การเพิ่มขีดจำกัดขนาด block ผ่าน softfork และยังคงความสามารถในการทำ covert ASICBoost สำหรับพวก small blocker ข้อเสนอนี้จึงเป็นหลักฐานเพิ่มเติมของความผิดของ Bitmain พวก small blocker ยังกล่าวหา Bitmain ว่าให้ทุนสนับสนุนการผลักดัน extension block ล่าสุดนี้ด้วย [110] ซึ่งอีกครั้งเป็นหลักฐานของความผิดของ Bitmain เกี่ยวกับ ASICBoost เหมือนกับที่พวก large blocker ไม่อยากรับอะไรที่ Bitcoin Core ใช้ พวก small blocker ก็ดูเหมือนจะมีอคติในลักษณะเดียวกัน และการที่ข้อเสนอ extension block นี้ได้รับการส่งเสริมและสนับสนุนทางการเงินโดย Bitmain ทำให้พวกเขาคัดค้านมัน

สิทธิบัตร ASICBoost ถือเป็นภัยคุกคามสำคัญต่อ Bitcoin มีความเป็นไปได้ที่หน่วยงานขุดแห่งหนึ่งสามารถได้สิทธิบัตรมา อ้างสิทธิ์ในการใช้เทคโนโลยีแต่เพียงผู้เดียว แล้วครอบงำอุตสาหกรรมการขุดเนื่องจากความได้เปรียบที่เทคโนโลยีนี้ให้ได้ เพื่อช่วยบรรเทาความกังวลนี้ มี Bitcoiner หลายคนที่ว่ากันว่าได้ซื้อสิทธิบัตรในราคาค่อนข้างสูง แล้วในเดือนมีนาคม 2018 ก็นำสิทธิบัตรไปใส่ในกลุ่มสิทธิบัตรเพื่อป้องกัน เพื่อที่สิทธิบัตรจะไม่สามารถถูกใช้ได้เลย เว้นแต่จะใช้เพื่อป้องกันสิทธิบัตรอื่นๆ [111] ตั้งแต่ประมาณเดือนเมษายน 2018 block บน Bitcoin blockchain เริ่มบ่งชี้ถึงการใช้ overt ASICboost [112] overt ASICBoost นั้นง่ายกว่าและมีประสิทธิภาพมากกว่ารูปแบบ covert และยังหลีกเลี่ยงปัญหาความเข้ากันไม่ได้กับ SegWit ในเดือนพฤศจิกายน 2018 Bitmain ได้นำ overt ASICBoost มาใช้ในเฟิร์มแวร์ และจนถึงปัจจุบัน block Bitcoin มากกว่า 70% ถูกขุดโดยใช้ overt ASICBoost ส่วนสิทธิบัตรนั้น ไม่เคยมีความชัดเจนว่าใครซื้อสิทธิบัตรกันแน่ และไม่สามารถสืบย้อนการเป็นเจ้าของจากผู้ประดิษฐ์ไปยังผู้ที่คาดว่าจะนำสิทธิบัตรไปใส่ในคำมั่นสัญญาสิทธิบัตรเพื่อป้องกันได้โดยง่าย ดังนั้น สิ่งที่เกิดขึ้นจริงที่นี่จึงค่อนข้างมืดมน

แม้แต่วันนี้ ผมก็ยังไม่แน่ใจอย่างแท้จริงว่า Bitmain ใช้ covert ASICBoost บน mainnet หรือไม่ ความเห็นเกี่ยวกับประเด็นนี้ค่อนข้างผสมผสานในหมู่ผู้เชี่ยวชาญ ผมคิดว่าโอกาสน่าจะอยู่ที่ราว 50:50

ข้อกล่าวหาเรื่อง ASICBoost ดูเหมือนจะมีผลกระทบน้อยมากต่อชุมชน large blocker โดยทั่วไปแล้ว พวกเขาไม่เข้าใจข้อกล่าวหาและปฏิเสธว่าเป็นการโฆษณาชวนเชื่อและคำโกหกของ Bitcoin Core เพิ่มเติม ข้อกล่าวหาก็ส่งผลเพียงเล็กน้อยในการโน้มน้าวผู้คนให้เข้าร่วมฝ่าย small block ส่วนใหญ่เนื่องจากความซับซ้อนของข้อกล่าวหา อย่างไรก็ตาม มันแน่นอนว่ามีผลกระทบอย่างมากในการทำให้ความคิดเห็นของ small blocker หลายคนแข็งกร้าวขึ้น ซึ่งตอนนี้ถือว่าสถานการณ์เร่งด่วนกว่ามาก ในกรณีนี้ ข้อขัดแย้งเรื่อง ASICBoost มีบทบาทสำคัญและใหญ่หลวงในความขัดแย้ง พวก small blocker ตอนนี้ดูเหมือนจะมุ่งมั่นที่จะลงมือทำอะไรบางอย่าง

Last updated