ข้ามไปยังเนื้อหา

Proof of History: ลำดับที่บันทึก Tick, Slot และขอบเขตของฉันทามติ

Proof of History คือนาฬิกาเชนแฮชแบบลำดับของ Solana ซึ่งทำให้ตรวจสอบลำดับที่ผู้ผลิตบล็อกบันทึกและจำนวนการคำนวณได้ แต่ไม่ได้พิสูจน์เวลาจริง ความเป็นธรรมของลำดับธุรกรรม การเลือกฟอร์ก หรือ finality โดยลำพัง

อัปเดต

จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

คำตอบโดยตรง

Proof of History หรือ PoH คือนาฬิกาเชิงเข้ารหัสและโครงสร้างข้อมูลสำหรับจัดลำดับบัญชีแยกประเภทของ Solana ผู้ผลิตบล็อกคำนวณฟังก์ชันแฮชซ้ำ โดยแต่ละเอาต์พุตขึ้นกับเอาต์พุตก่อนหน้า บันทึกจำนวนและสถานะเป็นระยะ และผสมข้อมูลจากธุรกรรมเข้าไปในเชน วาลิเดเตอร์สามารถคำนวณการเปลี่ยนผ่านเหล่านั้นใหม่และยืนยันลำดับที่เชนนั้นบันทึกไว้ได้

PoH ไม่ใช่อัลกอริทึมฉันทามติที่ทำงานได้โดยลำพัง มันไม่ได้เลือกฟอร์กมาตรฐาน สร้างข้อตกลงแบบถ่วงน้ำหนักด้วยสเตก ทำให้บล็อกมี finality หรือพิสูจน์ว่าธุรกรรมถึงเครือข่าย ณ เวลาจริงใดเวลาหนึ่ง Solana ใช้นาฬิกานี้ร่วมกับตารางผู้นำ การประมวลผลธุรกรรม การลงคะแนนของวาลิเดเตอร์ การเลือกฟอร์ก และ lockout แบบ Tower BFT ฟอร์กสองฟอร์กอาจมีลำดับ PoH ที่ถูกต้องภายในทั้งคู่ได้ ส่วนกฎฉันทามติเป็นตัวตัดสินว่าเครือข่ายยอมรับประวัติใด

ขอบเขตของหลักฐานนี้จำกัด หาก Entry ผูกข้อมูล d หลังสถานะ h2 ก็จะคำนวณสถานะถัดไป h3 = H(h2 || d) ไม่ได้หากไม่มีข้อมูลนั้น หลักฐานจึงแสดงว่าผู้สร้างรู้ d ก่อนคำนวณ h3 และตรึงตำแหน่งของ d เทียบกับเอาต์พุตภายหลัง แต่ไม่แสดงว่าวาลิเดเตอร์แต่ละรายได้รับ d เมื่อใด ผู้นำเรียงตามลำดับที่ได้รับหรือไม่ d สะท้อนเหตุการณ์ภายนอกจริงหรือไม่ หรือ Entry นั้นกลายเป็นส่วนหนึ่งของประวัติมาตรฐานหรือไม่

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

วิธีวิเคราะห์ Proof of History

  1. แก้ไขบริบทของเครือข่ายและซอฟต์แวร์ บันทึกเครือข่าย, แฮชต้นกำเนิด, สล็อต, ยุค, Agave หรือเวอร์ชันไคลเอ็นต์อื่น และการสังเกต เวลา. อ่านค่าที่ใช้งานอยู่ เช่น hashes_per_tick, ticks_per_slot และ ns_per_slot อย่านำเข้าค่าคงที่จากบทความเก่าหรือคลัสเตอร์อื่น
  2. สร้างเชนแฮชใหม่ เริ่มจากสถานะก่อนหน้าที่เชื่อถือได้ แล้วตรวจสอบ num_hashes, แฮชผลลัพธ์ และรายการธุรกรรมของแต่ละ Entry ใน Agave รหัสของ Entry ขึ้นกับ Entry ก่อนหน้า และเมื่อมีธุรกรรมก็ขึ้นกับแฮชที่ได้จากลายเซ็นของธุรกรรมเหล่านั้น
  3. ตรวจสอบ Tick และตำแหน่ง Slot ตรวจสอบ Tick Entry จำนวนแฮชที่คาดไว้ Tick height และ Tick height สูงสุดตามกฎของ Bank และ Recorder โดย Recorder ใช้ ticks_per_slot ที่กำหนดไว้เพื่อแมป Tick height ไปยัง Slot ซึ่งเป็นช่วงของโปรโตคอล ไม่ใช่หลักฐานอิสระจากนาฬิกาภายนอก
  4. แยกแยะความแตกต่างจากการมาถึง ความมุ่งมั่นพิสูจน์ให้เห็นว่าอินพุตเป็นที่รู้จักไม่ช้ากว่าการแทรกลงในลำดับนั้น หากต้องการอ้างสิทธิ์ขอบเขตล่าง ให้ระบุการอ้างอิงกลับที่ลงนามแล้วในสถานะ PoH ก่อนหน้า ขอบเขตทั้งสองไม่ได้พิสูจน์ลำดับที่เห็นครั้งแรกทั่วโลก ความเป็นธรรมของ mempool หรือการประทับเวลา UTC ที่เชื่อถือได้
  5. แยกการสร้างจากการตรวจสอบ วัดการผลิตตามลำดับบนเชนการขึ้นต่อกันเดียว จากนั้นวัดการเล่นซ้ำโดยใช้ขอบเขตของเซ็กเมนต์ที่ได้รับการตรวจสอบสิทธิ์และคอร์ที่มีอยู่ รายงานแฮชทั้งหมด เวลาแฝงของเส้นทางวิกฤต งานตรวจสอบโดยรวม และสมมติฐานเกี่ยวกับขอบเขตข้อมูล แทนที่จะบอกว่าเพียงการตรวจสอบนั้น “รวดเร็ว”
  6. ติดตามเส้นทางที่เป็นเอกฉันท์ ระบุผู้นำตามกำหนดการ สถานะธนาคาร การโหวต การล็อกเอาต์ กฎตัวเลือกทางแยก สถานะที่รูตหรือสรุปแล้ว และระดับความมุ่งมั่น เชน PoH ที่ถูกต้องยังคงเป็นของทางแยกที่สูญเสียไป และเครื่องนับที่ดูยาวขึ้นเพียงอย่างเดียวก็ไม่ใช่ใบรับรองที่เป็นเอกฉันท์
  7. เน้นความขัดแย้งกับกรณีปฏิบัติการและการดำเนินการ การสอบถามผู้นำการทดสอบ การละเว้นธุรกรรมและการเรียงลำดับใหม่ ข้ามช่อง พาร์ติชัน ฮาร์ดแวร์ที่เร็วกว่าหรือปรับเทียบไม่ถูกต้อง เครื่องหมายที่ไม่ถูกต้อง การนับ, การเล่นซ้ำล่าช้า, ความไม่พร้อมใช้งานของบัญชีแยกประเภท, ความแตกต่างของไคลเอนต์ และตัวดำเนินการหรือการควบคุมโครงสร้างพื้นฐานที่สัมพันธ์กัน

ผลลัพธ์การตรวจสอบควรแยกความแตกต่างการอ้างสิทธิ์สี่ประการ: ความถูกต้องของลำดับ เวลาโปรโตคอลที่กำหนดค่า สถานะฉันทามติ และเวลาภายนอก ระบุว่าข้อมูลแฮชและบัญชีแยกประเภทเริ่มต้นใดที่เชื่อถือได้ ซึ่งแฮชถูกคำนวณใหม่ มีการตรวจสอบหลักฐานการลงคะแนนเสียงหรือข้อผูกพันใดบ้าง และการสังเกตใดที่มาจากนาฬิกาท้องถิ่นหรือบริการของบุคคลที่สาม

ตัวอย่างการทำงาน

1. การแทรกข้อมูลแก้ไขตำแหน่งที่บันทึกไว้

พิจารณา h1 = H(h0) จากนั้นพิจารณา h2 = H(h1) ผู้ผลิตแทรกข้อผูกพันที่ได้รับจากธุรกรรม d และคำนวณ h3 = H(h2 || d) ตามด้วย h4 = H(h3) ใครก็ตามที่เล่นซ้ำการดำเนินการเดียวกันสามารถตรวจสอบได้ว่าเชนที่บันทึกไว้ส่ง d ระหว่าง h2 และ h3 และ h4 ขึ้นอยู่กับผลลัพธ์

คำสั่งขอบเขตบนแคบ: ผู้ผลิตรู้จัก d ก่อนที่จะประมวลผล h3 หากธุรกรรมที่ลงนามนั้นอ้างอิงถึง h1 ผู้ตรวจสอบยังสามารถแสดงว่าธุรกรรมนั้นเกิดขึ้นหลังจากทราบสถานะก่อนหน้านั้น โดยขึ้นอยู่กับการตรวจสอบลายเซ็นและแหล่งที่มา หากไม่มีการอ้างอิงด้านหลังดังกล่าว PoH เพียงอย่างเดียวจะไม่ให้ขอบเขตล่าง ไม่มีกรณีใดที่จะพิสูจน์ได้ว่าโหนดอื่นได้รับธุรกรรมครั้งแรกเมื่อใด

2. การเล่นซ้ำกลุ่มจะช่วยลดเวลาแฝง ไม่ใช่งานรวม

สมมติว่าช่วงเวลาที่บันทึกไว้มี 1,000,000 แฮช และจุดตรวจสอบที่ได้รับการรับรองความถูกต้องแบ่งออกเป็น 10 ส่วนของ 100,000 แฮช ด้วยคอร์ที่เพียงพอ สามารถเล่นซ้ำสิบเซ็กเมนต์ได้พร้อมกัน ดังนั้นเวลาแฝงในการตรวจสอบนาฬิกาแขวนอาจเข้าใกล้ระยะเวลาของเซ็กเมนต์หนึ่งบวกกับโอเวอร์เฮด

วาลิเดเตอร์โดยรวมยังต้องคำนวณแฮช 1,000,000 ครั้ง จุดตรวจทำให้มีสถานะเริ่มต้นอิสระ แต่ไม่ได้เปลี่ยนเชนให้เป็น proof แบบกระชับ ประสิทธิภาพขึ้นกับฮาร์ดแวร์ การจัดตาราง การเคลื่อนย้ายหน่วยความจำ และความน่าเชื่อถือของขอบเขต จึงไม่ควรเรียกการเล่นซ้ำ PoH แบบขนานว่าเป็นอัลกอริทึมตรวจสอบที่มีประสิทธิภาพของ VDF ทุกแบบโดยอัตโนมัติ

3. เลขคณิตแบบขีดและสล็อตขึ้นอยู่กับการกำหนดค่า

สมมติการกำหนดค่าที่แสดงด้วย hashes_per_tick = 100,000 และ ticks_per_slot = 8 ช่องที่แฮชแบบเต็มจะมีแฮช 100,000 * 8 = 800,000 โดยมีขอบเขตการทำเครื่องหมายหลังจากแต่ละช่วงเวลาที่กำหนดค่าไว้ การเปลี่ยนพารามิเตอร์ตัวใดตัวหนึ่งจะเปลี่ยนการแมป ตัวอย่างนี้ไม่ใช่ค่าคงที่ mainnet ปัจจุบัน

Agave ยังสนับสนุนกรณีโปรโตคอลที่พฤติกรรมการนับแฮชแสดงด้วยการกำหนดค่า แทนที่จะใช้การคูณแบบง่ายนี้ ผู้ตรวจสอบควรได้รับฟิลด์จริงของธนาคารและตรวจสอบรายการตามกฎของลูกค้า การแปลงช่องหรือการนับเป็นวินาทียังต้องอาศัยการปรับเทียบระยะเวลาเป้าหมายและการดำเนินการที่สังเกตเพิ่มเติม ไม่ใช่แค่การตรวจสอบด้วยการเข้ารหัส

4. ลำดับที่บันทึกไว้ไม่ใช่ลำดับการมาถึงหรือขั้นสุดท้าย

สมมติว่าธุรกรรม A เข้าถึงผู้นำก่อนธุรกรรม B แต่ผู้นำบันทึก B ใกล้นับ 300,000 และ A ใกล้นับ 450,000 PoH ที่ถูกต้องพิสูจน์ว่า B นำหน้า A ในลำดับที่สร้างขึ้นนั้น ไม่ได้พิสูจน์ว่า B มาถึงก่อน ว่าการสั่งซื้อนั้นยุติธรรม หรือผู้นำคนอื่นปฏิบัติตามคำสั่งเดียวกัน

ตอนนี้ สมมติว่าพาร์ติชันสร้างทางแยก X และทางแยก Y ซึ่งแต่ละอันมีลำดับที่ถูกต้อง การตรวจสอบความถูกต้องของ PoH สามารถปฏิเสธรายการที่มีรูปแบบไม่ถูกต้องบน fork ใด ๆ แต่ไม่ได้เลือก X หรือ Y กำหนดการของผู้นำ การลงคะแนนเสียงแบบถ่วงน้ำหนักหุ้น การล็อกเอาต์ การเลือกฟอร์ก และระดับความมุ่งมั่นที่ร้องขอจะกำหนดผลลัพธ์ที่เป็นเอกฉันท์ แอปพลิเคชันจะต้องไม่ทดแทนการนับ PoH สำหรับการยืนยันหรือหลักฐานขั้นสุดท้าย

ความเสี่ยงและความล้มเหลวในการตรวจสอบ

ข้อผิดพลาดด้านการเข้ารหัสและการกำหนดเวลา

  • การเรียก PoH นาฬิกาแขวนที่เชื่อถือได้หรือการอ้างสิทธิ์จำนวนแฮชจะพิสูจน์การประทับเวลา UTC อย่างอิสระ
  • การกล่าวว่าการรวมธุรกรรมพิสูจน์เวลาการรับทั่วทั้งเครือข่าย ลำดับที่เห็นครั้งแรก หรือความจริงของข้อมูลภายนอก
  • สมมติว่าการสร้างตามลำดับจะป้องกันไม่ให้ผู้ผลิตระงับ ละเว้น หรือเลือกเวลาที่จะแทรกข้อมูลที่ทราบ
  • การรักษาความต้านทานการชนกันเพียงอย่างเดียวเป็นขอบเขตที่สมบูรณ์กับความเร็วของฮาร์ดแวร์ การเคลื่อนตัวของการสอบเทียบ หรือความแปรปรวนในการใช้งาน
  • อธิบายการเล่นซ้ำเซ็กเมนต์คู่ขนานว่าเป็นการทำงานเป็นศูนย์หรือเป็นการพิสูจน์โดยย่อโดยไม่นับแฮชรวม
  • การเรียก PoH อย่างเป็นทางการ VDF โดยไม่ต้องระบุโครงสร้าง อินเทอร์เฟซการพิสูจน์ และสมมติฐานการตรวจสอบที่ถูกเปรียบเทียบ
  • การเชื่อถือขอบเขตจุดตรวจสอบ แฮชรุ่นก่อน หรือเซ็กเมนต์บัญชีแยกประเภทที่ดาวน์โหลดโดยไม่มี กำลังตรวจสอบแหล่งที่มา

ข้อผิดพลาดฉันทามติและโปรโตคอล

  • การเรียกฉันทามติ PoH, Proof of Stake, Tower BFT, การเลือกตั้งผู้นำ, การเลือกทางแยก และขั้นสุดท้ายเป็นกลไกเดียวกัน
  • สมมติว่าลำดับที่ถูกต้องซึ่งมีจำนวนสูงสุดจะต้องเป็นแบบบัญญัติโดยไม่ต้องตรวจสอบคะแนนโหวตและตัวเลือกทางแยก state.
  • การรักษารายการที่เล่นซ้ำในเครื่องตามที่ได้รับการยืนยัน รูท หรือสรุปโดยไม่ต้องตรวจสอบซีแมนทิกส์ความมุ่งมั่นที่ร้องขอ
  • การใช้ค่าประวัติ hashes_per_tick, ticks_per_slot หรือระยะเวลาของสล็อตเป็นค่าคงที่ปัจจุบันสากล
  • ไม่สนใจช่องที่ข้าม การหมุนเวียนผู้นำ พาร์ติชัน ความคลุมเครือและความแตกต่างของเวอร์ชันไคลเอนต์เมื่อสร้างลำดับใหม่
  • การเปรียบเทียบการนับจากทางแยกที่ไม่เกี่ยวข้องหรือสถานะเริ่มต้นราวกับว่าพวกมันอยู่ในลำดับการตรวจสอบสิทธิ์เดียว
  • สมมติว่าการบล็อกแฮชล่าสุดของธุรกรรมเป็นเพียงการประทับเวลานาฬิกาแขวนแทนที่จะเป็นบริบทความถูกต้องของโปรโตคอล

ข้อผิดพลาดในการดำเนินการ ประสิทธิภาพ และการควบคุม

  • การสร้างแฮชการเปรียบเทียบเพียงอย่างเดียว โดยไม่สนใจการดำเนินการ การตรวจสอบลายเซ็น เล่นซ้ำ แบนด์วิธ และพื้นที่เก็บข้อมูล
  • การเทียบเคียงความขนานของเซกเมนต์ทางทฤษฎีกับการตรวจสอบความถูกต้องของตัวตรวจสอบความถูกต้องที่สังเกตได้ภายใต้ CPU, I/O และการช่วงชิงหน่วยความจำ
  • ไม่สนใจความล้มเหลวในการตรวจสอบความถูกต้องของTick เครื่องบันทึกหยุดทำงาน การธนาคารล่าช้า ช่องว่างบัญชีแยกประเภท ความน่าเชื่อถือของสแน็ปช็อต และสถานะที่เสียหาย
  • การนับข้อมูลประจำตัวของวาลิเดเตอร์เป็นอิสระเมื่อ ไคลเอนต์ โฮสติ้ง เครือข่าย โครงสร้างพื้นฐานผู้นำ หรือการควบคุมมีการแชร์
  • สมมติว่าฮาร์ดแวร์ที่เร็วกว่าจะลบเวลาแฝงของเครือข่าย การสูญเสียแพ็กเก็ต การเซ็นเซอร์ การปฏิเสธการให้บริการ หรือความเสี่ยงในการกระจุกตัวของสเตก
  • การนำเสนอระยะเวลาสล็อตเป้าหมาย การประมาณการปริมาณงาน หรือเกณฑ์มาตรฐานเก่าเพื่อเป็นการรับประกันระดับบริการ

ความเข้าใจผิดที่พบบ่อย

  • PoH คืออัลกอริธึมฉันทามติที่สมบูรณ์ของ Solana PoH ให้ลำดับการบันทึกที่ตรวจสอบได้ การลงคะแนนของวาลิเดเตอร์ การล็อกเอาต์ ตัวเลือกทางแยก และกฎฉันทามติอื่น ๆ จะตัดสินประวัติที่ตามมาโดยเครือข่าย
  • PoH พิสูจน์เวลาจริงในโลกแห่งความเป็นจริงของทุกธุรกรรม พิสูจน์การพึ่งพาและการนับภายในลำดับการตรวจสอบสิทธิ์ การทำแผนที่ลำดับนั้นกับเวลาพลเรือนจำเป็นต้องมีการกำหนดค่าและการสังเกตจากภายนอก
  • PoH รับประกันการเรียงลำดับธุรกรรมที่ยุติธรรม ผู้นำสามารถเลือก หน่วงเวลา จัดลำดับใหม่ หรือละเว้นอินพุตภายในข้อจำกัดของโปรโตคอลและทรัพยากร PoH ทำให้ลำดับที่บันทึกไว้เป็นผลลัพธ์สามารถตรวจสอบได้
  • PoH เป็นการขุดแบบพิสูจน์การทำงานด้วยชื่ออื่น ทั้งคู่ใช้การแฮช แต่บทบาทหลักของ PoH คือการนาฬิกาตามลำดับ ไม่ใช่การแข่งขันคู่ขนานแบบเปิดซึ่งงานที่ชนะเลือก chain.
  • ลำดับ PoH ที่ถูกต้องใด ๆ ถือเป็นที่สิ้นสุด ฟอร์กที่แข่งขันกันอาจแต่ละรายการใช้ได้ภายใน; การยืนยันและการสรุปผลจำเป็นต้องมีหลักฐานที่เป็นเอกฉันท์ของเครือข่าย

หัวข้อที่เกี่ยวข้อง

แหล่งที่มา

การนำทาง

ค้นหาในวิกิ...