ทำอย่างไรจึงจะยุติธรรมและมีประสิทธิภาพโดยไม่ต้องใช้หลักฐานการทำงาน
คำนำ
คำนำ
ชื่อเรื่องรอง
ความงามของ POW
Pow เป็นอัลกอริธึมฉันทามติที่เรียบง่ายและสง่างาม แต่ละโหนดจะไขปริศนาการเข้ารหัสอย่างง่าย และหาคำตอบได้จากการเดาอย่างรวดเร็ว และใครก็ตามที่เดาได้ถูกต้องก่อนจะได้รับเลือกให้สร้างบล็อกถัดไป
มันง่ายมาก
อัลกอริธึมง่ายๆ นี้ยังให้การสุ่มที่แท้จริง - สำหรับข้อเสนอบล็อกที่ยุติธรรมและกระจายอำนาจ ความล่าช้าบางอย่าง - เพื่อให้แน่ใจว่ามีเวลาเพียงพอในการออกอากาศ ลดความน่าจะเป็นของการส้อม การจำนองทางเศรษฐกิจ - — โดยการลงทุนในฮาร์ดแวร์และไฟฟ้าเพื่อให้นักขุดมี มีส่วนได้เสียในการทำงานอย่างสุจริต
ชื่อเรื่องรอง
คำอธิบายภาพ

สายการประกอบต้นทำงานเคียงข้างกัน
ปัญหาสำคัญเกี่ยวกับกลไก PoW ที่เรียบง่ายและสง่างามคือปัญหาหนักๆ ของกลไกนี้สามารถประมวลผลแบบขนานในระดับสูงได้ ปริศนาเหล่านี้มักจะเป็นฟังก์ชันแฮช โดยที่โหนดเพียงแค่สร้างสตริงแบบสุ่ม แฮชพวกมัน และดูว่าแฮชผลลัพธ์นั้นตรงกับเกณฑ์ที่กำหนดหรือไม่ หากคุณเป็นเพียงผู้เล่น (เช่น เครื่องจักร เธรด) สมมติว่าคุณสามารถเดาคำตอบได้อย่างถูกต้องหลังจากผ่านไป N วินาทีโดยเฉลี่ย แต่ถ้าคุณเป็นผู้เล่นร้อยคน เวลาเฉลี่ยที่คุณต้องเดาคำตอบที่ถูกต้องคือ N/100 วินาที เพราะคุณสามารถแจกจ่ายงานได้อย่างง่ายดาย ตัวอย่างเช่น หากมีคำตอบที่เป็นไปได้ทั้งหมด M คุณสามารถจัดให้ผู้เล่น 1 ทดสอบคำตอบ 1 เพื่อตอบ M/100 จากนั้นจัดให้ผู้เล่น 2 ทดสอบคำตอบ M/100 เพื่อตอบ M/200 เป็นต้น
นักขุดที่ทำงานในระบบบล็อกเชน PoW มักจะซื้อคอมพิวเตอร์เพื่อวัตถุประสงค์พิเศษหรือวงจรรวมเฉพาะแอปพลิเคชัน (ASIC) จำนวนมาก และเรียกใช้โปรแกรมเพื่อประสานงานการแบ่งงานของ ASIC เหล่านี้เพื่อคาดเดาคำตอบ ดังนั้นความเร็วเฉลี่ยที่ ซึ่งพวกเขาเดาคำตอบที่ถูกต้องได้เร็วกว่า เมื่อเวลาผ่านไป นักขุดหลายคนตัดสินใจที่จะรวมทีมกันเพื่อแบ่งปันงานของกลุ่ม ASIC ของพวกเขา ดังนั้นกลุ่มการขุด
สำหรับเครือข่ายอย่าง Bitcoin หากนักขุดเดาคำตอบเร็วเกินไป จะมีชุดของอัลกอริทึมภายในที่สามารถเพิ่มความยากในการเดาคำตอบ และสุดท้ายก็รักษาเวลาในการสร้างบล็อกที่ความเร็วเฉลี่ยประมาณ 10 นาที ดังนั้น ยิ่งนักขุดเดาได้เร็วเท่าไหร่ ปริศนาก็ยิ่งยากขึ้นเท่านั้น ซึ่งกระตุ้นให้นักขุดเร่งความเร็วหรือสร้าง ASICs มากขึ้นผ่าน ASIC
เครื่องขุดกำลังเร็วขึ้นและมีจำนวนมากขึ้น ใช้พลังงานมากขึ้นเรื่อย ๆ จนกระทั่งการใช้พลังงานในการบำรุงรักษาเครือข่ายนั้นสูงจนน่าขัน
ชื่อเรื่องรอง
เป้าหมายการออกแบบ: เวลาแฝงแบบสุ่ม
ดังนั้น หากเราต้องการออกแบบระบบที่ไม่สิ้นเปลืองทรัพยากรเท่า PoW แต่สามารถเกิดความล่าช้าแบบสุ่มได้ในเวลาเดียวกัน เราจำเป็นต้องบรรลุเป้าหมายการออกแบบดังต่อไปนี้:
การสุ่มอย่างแท้จริงเพื่อให้เกิดความเป็นธรรมและการกระจายอำนาจ
ไม่สามารถลดเวลาแฝงด้วยการขนานเพื่อลดการใช้พลังงาน
มาดูวิธีเพิ่มประสิทธิภาพกัน:
คำอธิบายภาพ

เสียงสีขาวเป็นแหล่งกำเนิดของการสุ่มที่เกิดขึ้นตามธรรมชาติ
การสุ่มที่แท้จริงเป็นคำถามเชิงปรัชญามากกว่า เมื่อเราพูดว่า "สุ่ม" ความหมายจริงๆ ก็คือ "คาดเดาไม่ได้" หากผลลัพธ์ของกลไกของเราไม่สามารถคาดเดาได้โดยผู้เข้าร่วมในเครือข่าย เราจะถือว่าผลลัพธ์นั้นเป็นแบบสุ่มและยุติธรรม
ฟังก์ชันการเข้ารหัสจำนวนมากดูเหมือนจะสร้างเอาต์พุตแบบสุ่ม เช่น ฟังก์ชันแฮชและกลไกลายเซ็น อย่างไรก็ตาม สิ่งเหล่านี้ไม่ได้ออกแบบมาโดยเฉพาะเพื่อสร้างผลลัพธ์ที่คาดเดาไม่ได้ และผู้สังเกตการณ์สามารถอนุมานรูปแบบที่ได้รับจากตัวอย่างจำนวนมากเพียงพอ
ในปี 1999 บทความของ Micali, Rabin และ Vadhan ได้รับการตีพิมพ์โดยอธิบายถึงฟังก์ชันสุ่มที่ตรวจสอบได้ (VRF) ซึ่งได้รับการออกแบบมาโดยเฉพาะเพื่อสร้างผลลัพธ์ที่คาดเดาไม่ได้สูง ต่อมา ศาสตราจารย์มิกาลีได้ก่อตั้งโครงการ Algorand หลังจากนั้น Sergey Gorbunov ซึ่งเป็นสมาชิกหลักของโครงการได้เขียนบทความที่มีรายละเอียดและเข้าใจได้มากขึ้น หากคุณสนใจการรักษาทางเทคนิคเพิ่มเติมของ VRF คุณสามารถดูบทความและเอกสารด้านบนได้
ในสถาปัตยกรรมบล็อก DAG ของ Taraxa VRF จัดเตรียมการสุ่มสำหรับการหน่วงเวลาแบบสุ่ม ผลลัพธ์ของ VRF คือ:
ระดับบล็อก DAG (L): เมื่อผู้เสนอบรรจุบล็อก "ระดับ" ที่นี่คือความยาวของโซ่สมอ + 1 ดังนั้น หากคุณเป็นผู้เสนอ คุณจะคำนวณโซ่สมอปัจจุบัน L และค้นหาบล็อกสุดท้ายบนขอบเขตที่คุณจะสร้างตัวชี้ผี (ตัวชี้) ดังนั้นระดับบล็อกที่คุณเสนอคือ L+1 ควรสังเกตว่าคำจำกัดความในที่นี้เป็นแนวคิดที่แตกต่างจากคำว่า "ความลึก" ที่มักกล่าวถึง
แฮชบล็อก (P) ของบล็อกช่วงเวลาล่าสุด: นี่คือบล็อกที่เสร็จสมบูรณ์ล่าสุดในบล็อก DAG ซึ่งสามารถได้รับการยืนยันขั้นสุดท้ายจริงผ่านกระบวนการ PBFT แบบขนาน (รายละเอียดในบทความถัดไป) เมื่อพิจารณาว่าผู้ยื่นคำร้องยังไม่ได้รับช่วงเวลา (P) ที่ยืนยันล่าสุดบนขอบเขต โปรโตคอลจะมีเกณฑ์ที่ยอมรับได้ นั่นคือ แฮชบล็อกก่อนหน้าของบล็อกรอบระยะเวลาล่าสุดก็ยอมรับได้เช่นกัน
คีย์ VRF ลับของผู้เสนอบล็อก (SK): จำเป็นสำหรับการสร้างฟังก์ชัน VRF ซึ่งแตกต่างจากกลไกลายเซ็นธุรกรรม ซึ่งสร้างขึ้นเป็นพิเศษสำหรับแต่ละโหนดเพื่อสร้าง VRF
เอาต์พุตของฟังก์ชัน VRF แบ่งออกเป็นสองส่วน:
v เป็นค่าสุ่มหลอกที่ใช้กำหนดความยาวของการหน่วงเวลา
p เป็นหลักฐานที่โหนดอื่นสามารถใช้เพื่อตรวจสอบว่า VRF ได้รับการดำเนินการอย่างตรงไปตรงมาและถูกต้อง สามารถถือเป็นลายเซ็นได้ และด้วยรหัสสาธารณะ VRF ของผู้เสนอ โหนดอื่น ๆ สามารถกำหนดความถูกต้องของการคำนวณได้อย่างง่ายดาย
ในที่สุด เราสามารถเขียนสมการง่ายๆ ได้ดังนี้
VRF(L, P, SK) → (v, p)
■ ฟังก์ชั่นการสร้างความยากลำบากที่ล่าช้า
ก่อนที่เอาต์พุตของ VRF (ความยากในการหน่วงเวลาหรือความยาวการหน่วงเวลา) จะถูกแปลงเป็นความล่าช้า เราจะต้องทำให้มันเป็นการกระจายที่แน่นอน ลักษณะการกระจายคร่าวๆดังนี้
ต้องมีการหน่วงเวลาขั้นต่ำเนื่องจากเราไม่สามารถสร้างบล็อกได้ทันทีโดยไม่มีเวลาสำหรับการออกอากาศเครือข่ายที่เหมาะสม
จำเป็นต้องมีความล่าช้าสูงสุด เนื่องจากเราไม่ต้องการให้เครือข่ายทั้งหมดแออัด และไม่ต้องการให้เกิดการบล็อกเป็นเวลานาน
ผู้เสนอบางคนทำงานได้เร็ว ในขณะที่ผู้เสนอที่เหลือนั้นช้า ซึ่งเกี่ยวข้องกับจำนวนผู้เสนอที่มีคุณสมบัติเหมาะสมและเส้นผ่านศูนย์กลางของเครือข่ายทั้งหมด (นั่นคือ เวลาที่ต้องใช้สำหรับบล็อกในการเข้าถึงโหนดที่เสนอส่วนใหญ่)
คำอธิบายภาพ

ฟังก์ชั่นการสร้าง
ให้ฟังก์ชันประเภทเป็น S เราจะได้สูตรดังนี้
S(v) = d
โดยที่ d คือค่าสัมประสิทธิ์ความยากของด่านต่อไป
■ เวลาแฝงของฟังก์ชันหน่วงเวลาที่ตรวจสอบได้
โทเค็นเป็นเหมือนบัตรรถบัส ซึ่งสามารถสร้างการถ่ายโอนมูลค่าได้ด้วยตัวเอง และห่วงโซ่พันธมิตรไม่มีการถ่ายโอนมูลค่าแบบเนทีฟ ประเทศกำลังปราบปรามแผนการปิรามิด แต่จริง ๆ แล้วยังมีโทเค็นที่มีค่าอีกมากมาย เมื่ออุตสาหกรรมพัฒนาและสาธารณชนรับรู้ในระดับหนึ่ง ห่วงโซ่สาธารณะคุณภาพสูงสามารถหลีกเลี่ยงสถานการณ์ที่เหมาะกับทุกขนาด . ถึงเวลานี้อาจมีความร่วมมือระหว่างเครือข่ายพันธมิตรและเครือข่ายสาธารณะมากขึ้น

ทำงานหนักคนเดียวไม่มีใครสู้เคียงข้าง =(
ตามที่กล่าวไว้ในตอนต้นของบทความนี้ PoW นั้นดี แต่การประมวลผลแบบขนานเป็นตัวการของ "การตกเป็นเหยื่อ" ดังนั้นจึงเกิด Verifiable Delay Functions (VDF) ซึ่งได้รับการออกแบบมาโดยเฉพาะเพื่อจำลองเวลาแฝงที่ไม่สามารถเร่งความเร็วได้ด้วยการประมวลผลแบบขนาน
ฟังก์ชันสามารถจัดประเภทเป็น VDF ได้อย่างเคร่งครัด หากตรงตามเกณฑ์ง่ายๆ สองข้อต่อไปนี้:
ต้องเป็นไปตามลำดับในกรณีนี้ ไม่มีใครสามารถเร่งความเร็วการคำนวณของฟังก์ชัน VDF ผ่านกระบวนการหลายขนานได้ ซึ่งแตกต่างจาก PoW
ต้องตรวจสอบได้ง่ายผู้สังเกตการณ์สามารถตรวจสอบ (นั่นคือ เวลาที่ใช้ในการตรวจสอบนั้นสั้นกว่าเวลาในการคำนวณฟังก์ชันมาก) เพื่อยืนยันว่าการคำนวณ VDF นั้นถูกต้องและเกิดการหน่วงเวลาที่เหมาะสม ซึ่งคล้ายกับ PoW
Boneh และคณะ, Pietrzak และ Wesolowski และคณะ VDF ที่เสนอทั้งหมดเป็นไปตามเกณฑ์เหล่านี้โดยเฉพาะอย่างยิ่ง Pietrzak และ Wesolowski ต่างเสนอวิธีการที่คล้ายคลึงกันอย่างมากโดยอิงตามหลักการของกำลังสองซ้ำ ๆ ในกลุ่มที่ไม่ทราบลำดับ ซึ่งมีผลกับการประมวลผลแบบขนาน
ลองทดสอบฟังก์ชันเหล่านี้ในระดับที่สูงขึ้น เพราะคณิตศาสตร์นั้นซับซ้อนมาก
VDF เหล่านี้ถูกสร้างขึ้นเพื่อทำการคำนวณกำลังสองซ้ำๆ ซึ่งไม่สามารถประมวลผลแบบขนานได้ เนื่องจากการวนซ้ำแต่ละครั้งต้องการอินพุตจากการวนซ้ำครั้งก่อน และไม่มีข้อมูลเกี่ยวกับการวนซ้ำในอนาคตในการวนซ้ำใดๆ ก็ตาม กล่าวอีกนัยหนึ่ง คุณจะไม่ทราบคำตอบจนกว่าคุณจะทำตามขั้นตอนการวนซ้ำทั้งหมด เพื่อให้มั่นใจว่าฟังก์ชันเป็นไปตามลำดับ
สิ่งที่ทำให้ตรวจสอบ VDF ได้ง่ายคือคุณสามารถสร้างการพิสูจน์ด้วยชุดค่าผสมเชิงเส้นแบบสุ่มของอินพุตขั้นกลาง VDF และเอาต์พุตขั้นสุดท้าย การคำนวณชุดค่าผสมเชิงเส้นที่จำกัดเหล่านี้ทำได้ง่ายเพราะใช้ขั้นตอนน้อยกว่าการคำนวณ VDF ทั้งหมด การเปรียบเทียบอย่างง่ายคือความแตกต่างระหว่างการคำนวณค่าทั้งหมดในเส้นโค้งทั้งหมด (การคำนวณ VDF ทั้งหมด) และการเลือกลูกศรเพื่อผลักดันไปข้างหน้าสองสามก้าว (พิสูจน์ประสิทธิภาพของ VDF) เวลาที่ลูกศรใช้เพื่อก้าวไปสองสามก้าวนั้นน้อยกว่าการคำนวณอย่างเห็นได้ชัด สิ่งนี้ทำให้มั่นใจได้ว่าฟังก์ชั่นนั้นสามารถตรวจสอบได้ง่าย
ใน Taraxa เราตั้งค่ารายการอินพุตต่อไปนี้ใน VDF:
Parent Hash (gP) หรือพาเรนต์บล็อกจุดบล็อกที่สร้างขึ้นใหม่ของคุณผ่านตัวชี้ผี
แฮชของธุรกรรมทั้งหมด (Tx) แฮชของธุรกรรมทั้งหมดที่คุณวางแผนที่จะรวมไว้ในบล็อก ดังนั้นคุณจึงไม่สามารถคำนวณ VDF ล่วงหน้าได้
d ปัจจัยความยากของขั้นตอนก่อนหน้า
ดังนั้น ก่อนที่โหนดจะเสนอบล็อก การคำนวณฟังก์ชัน VDF จะมีลักษณะดังนี้:
VDF(gP, Tx, d) = z
ในทางปฏิบัติ เพื่อให้แน่ใจว่าการตรวจสอบเอาต์พุต z ไม่ใช่แบบโต้ตอบ ผู้เสนอโหนดจำเป็นต้องแทรกการพิสูจน์ระดับกลาง เช่นเดียวกับเอาต์พุตสุดท้ายในบล็อกข้อเสนอ
คำอธิบายภาพ

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


