การกักบล็อก: การโจมตีที่พูลมองไม่เห็นจาก share เดียว
นักขุดส่ง share จริง แต่ซ่อน share ที่จะเป็นบล็อกไว้ บทความนี้อธิบายว่าเสียหายเท่าไร ใครเป็นผู้จ่าย และจับได้อย่างไร
การโจมตีนี้คืออะไร
ทุก share ที่คุณส่งให้พูลคือคำตอบจริงที่ไม่ถึงเป้าหมายของบล็อก นานๆ ครั้งจะมีคำตอบที่ต่ำกว่าเป้าหมายของบล็อกด้วย และ share นั้นก็คือบล็อกทั้งบล็อก มันดูเหมือน share อื่นทุกอย่างจนกระทั่งพูลตรวจสอบมัน
การโจมตีแบบกักบล็อก (block withholding) คือนักขุดที่ทำงานอย่างซื่อตรง ส่ง share ปกติทุก share แต่แอบทิ้ง share เดียวที่จะกลายเป็นบล็อก พูลนับ share และจ่ายเงินให้ แต่บล็อกที่พูลควรได้รับไม่เคยมาถึง
ทำไม share เดียวจึงไม่เคยเปิดโปงมัน
นี่คือสิ่งที่ทำให้การโจมตีนี้น่าสนใจ ไม่ใช่แค่การเอาเปรียบ ไม่มีอะไรเกี่ยวกับผู้โจมตีที่ดูผิดปกติใน share ใด share หนึ่งเลย ฮาร์ดแวร์เป็นของจริง แฮชเรทเป็นของจริง share ถูกต้องและมาถึงในอัตราที่ถูกต้อง พูลไม่สามารถตรวจ share เดียวแล้วเห็นอะไรได้เลย
สิ่งที่หายไปคือความไม่มี และความไม่มีจะมองเห็นได้ก็ต่อเมื่อเวลาผ่านไป นักขุดที่มีสัดส่วนแฮชเรทของพูลเท่าหนึ่งควรพบบล็อกในสัดส่วนประมาณเท่านั้น ในหนึ่งชั่วโมง สิ่งนี้ไม่บอกอะไรเลย เพราะการพบบล็อกเป็นกระบวนการสุ่ม และช่วงที่เงียบก็เป็นเรื่องปกติ แต่ในช่วงเวลาที่ยาวพอ มันบอกได้มาก
ความเสียหายคืออะไร และใครเป็นคนจ่ายจริง
พูลเสียรางวัลบล็อกที่ควรได้ แต่พูลไม่ใช่ที่ที่ความเสียหายตกอยู่จริงๆ และนี่คือส่วนที่ควรเข้าใจถ้าคุณขุดกับพูลใดก็ตาม
ภายใต้ระบบแบบสัดส่วน (proportional) รอบจะดำเนินต่อไปจนกว่าจะมีคนอื่นพบบล็อก ทุกคนในรอบส่งงานให้รอบที่ใช้เวลานานกว่าที่ควร ทุกคนจึงได้น้อยลงเล็กน้อยต่อหน่วยงาน ความเสียหายถูกกระจายไปให้นักขุดที่ซื่อตรง
ภายใต้ระบบจ่ายต่อ share ผู้ให้บริการเสียหายหนักกว่า เพราะพูลจ่ายเงินสำหรับทุก share จากกระเป๋าตัวเองไปแล้ว และพึ่งพาให้บล็อกมาถึง การโจมตีต่อเนื่องต่อพูลแบบจ่ายต่อ share จึงดูดเงินจากผู้ให้บริการโดยตรง และในอดีตนี่คือกรณีที่คนกังวลมากที่สุด
ทำไมจึงมีคนทำแบบนี้
ผู้โจมตีทิ้งรางวัลบล็อกไปด้วย เมื่อมองแวบแรกจึงเป็นการทำร้ายตัวเองล้วนๆ มันสมเหตุสมผลก็ต่อเมื่อผู้โจมตีได้ประโยชน์ในที่ที่พูลมองไม่เห็น
แรงจูงใจทั่วไปคือการแข่งขัน ผู้ให้บริการที่รันพูลของตัวเองสามารถเช่าหรือชี้แฮชเรทไปที่คู่แข่ง กดผลลัพธ์ของคู่แข่งไว้ และทำให้พูลของตัวเองดูโชคดีกว่าเมื่อเทียบกัน ผู้โจมตีจ่ายค่าก่อวินาศกรรมนั้นด้วย share ที่ยังได้รับเงินอยู่
มีอีกรูปแบบที่แนบเนียนกว่า คือผู้โจมตีเก็บบล็อกไว้แทนที่จะทิ้ง ขุดต่อบนบล็อกนั้นอย่างลับๆ แล้วส่งภายหลังในจังหวะที่ตัวเองได้เปรียบ วิธีนี้ทำได้ยากกว่า และต้องมีสัดส่วนแฮชเรทสูงจึงจะคุ้มที่จะลอง
การตรวจจับทำได้อย่างไรจริงๆ
การตรวจจับเป็นเชิงสถิติ และต้องเป็นแบบนั้น เพราะไม่มีสัญญาณอื่นให้ใช้ การวัดอธิบายได้ง่าย: เทียบจำนวนบล็อกที่ผู้ร่วมขุดคนหนึ่งพบ กับจำนวนบล็อกที่จำนวน share ของเขาบอกว่าควรพบ ในช่วงเวลาที่ยาวพอให้โชคเฉลี่ยออกไป
ช่วงเวลาคือส่วนที่ยาก ถ้าสั้นเกินไป โชคร้ายธรรมดาก็ดูเหมือนการโจมตี ซึ่งหมายถึงการกล่าวหานักขุดที่ซื่อตรงอยู่ตลอด ถ้ายาวเกินไป ผู้โจมตีตัวจริงก็ทำการได้สักพักก่อนที่ตัวเลขจะบอกอะไร ไม่มีวิธีฉลาดที่จะเลี่ยงการแลกเปลี่ยนนี้ได้ มันเป็นคุณสมบัติของความสุ่ม ไม่ใช่ของซอฟต์แวร์
นี่คือเหตุผลที่ตัวตรวจจับที่จริงจังจะส่งคำถามให้คนพิจารณา แทนที่จะลงมือเอง การแบนอัตโนมัติที่ขับเคลื่อนด้วยสถิติจะแบนคนที่แค่โชคร้ายในที่สุด และการทำให้นักขุดที่ชอบธรรมต้องออฟไลน์เป็นผลลัพธ์ที่แย่กว่าตัวการโจมตีเอง
ความหมายสำหรับคุณถ้าคุณเป็นนักขุดที่ซื่อตรง
แทบไม่มีอะไรเลย และนั่นคือเหตุผลที่ต้องพูดออกมาตรงๆ
share ของคุณถูกนับและจ่ายเงินเหมือนเดิมไม่ว่ากรณีใด การโชคร้ายไม่ใช่ความผิดและเป็นความผิดไม่ได้ เพราะในช่วงเวลาสั้นๆ นักขุดส่วนใหญ่โชคร้าย ช่วงหลายรอบที่คุณส่งงานไปมากแต่พูลไม่พบอะไรเลยคือความแปรปรวนตามปกติ และตัวเลขโชคในสถิติของพูลมีไว้เพื่อให้คุณเห็นว่ามันปกติแค่ไหน
สิ่งเดียวที่ควรรู้คือ นี่เป็นเหตุผลที่พูลสนใจว่าใครชี้แฮชเรทมาหาตน และเป็นเหตุผลที่พูลที่เผยแพร่บล็อกและโชคของตนอย่างตรงไปตรงมาจึงน่าไว้ใจกว่าพูลที่ไม่ทำ ทุกอย่างที่ต้องใช้ในการตรวจสอบพูลอยู่ในหน้า “บล็อก”