คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
การประยุกต์ใช้และการวิเคราะห์หลักการของ VRF ในบล็อกเชน
BFTF技术社区联盟
特邀专栏作者
2018-08-02 03:05
บทความนี้มีประมาณ 4417 คำ การอ่านทั้งหมดใช้เวลาประมาณ 7 นาที
หลักการพื้นฐานของ VRF คืออะไร? วิธีการใช้ VRF เพื่อให้ได้ฉันทามติ? สามารถใช้ VRF ในสถานการณ์อื่นใ

หวางฉี

ผู้ร่วมก่อตั้งและ CTO ของ Tarax Network

วิศวกรฟูลสแต็กอาวุโสที่สำเร็จการศึกษาระดับปริญญาโทด้านวิทยาการคอมพิวเตอร์ แนวทางการวิจัยหลักของเขาคือระบบกระจายและเครือข่าย P2P ที่จัดระเบียบตัวเอง

คำอธิบายภาพ


เขามีส่วนร่วมในการวิจัยทางเทคนิคเกี่ยวกับการแบ่งปันข้อมูลแบบกระจายอย่างต่อเนื่องในกลุ่มวิทยาศาสตร์อัจฉริยะของสถาบันเทคโนโลยีคอมพิวเตอร์ สถาบันวิทยาศาสตร์จีน สถาบันวิจัยโซนี่ไชน่า ไป่ตู้ และตูเตียว


การแบ่งปันที่ฉันนำมาให้คุณในวันนี้เรียกว่า "แอปพลิเคชันและหลักการวิเคราะห์ VRF ในบล็อกเชน" ซึ่งเกิดจากเครือข่ายสาธารณะที่เรียกว่า Tarax Network ที่ทีมของเรากำลังดำเนินการอยู่ เพื่อประโยชน์ในการวางตำแหน่งฉาก เราต้องการหาวิธีบรรลุฉันทามติโดยใช้พลังงานต่ำ ดังนั้นไม่ต้องพิจารณา POW และการคิด POS เป็นเรื่องง่าย จากนั้นให้พิจารณาว่าไม่ว่าจะเป็น POW หรือ POS พวกเขาต้องการสุ่มค้นหาโหนดที่ไม่สามารถคาดเดาได้เพื่อจัดแพคเกจบล็อก และทำให้เครือข่ายทั้งหมดรู้จักบล็อกนี้

จากนั้นในเรื่องของการเลือกแบบสุ่ม VRF เป็นวิธีที่ตรงที่สุดในการจับฉลากตามการเลือกแบบสุ่มที่ตรวจสอบได้

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

      แต่ขอแก้ปัญหาไปทีละข้อก่อน นอกเสียจากเนื้อหาของเกม เรามาศึกษา VRF กันก่อนดีกว่า

      เราพิจารณาสิ่งนี้ด้วยคำถามสองข้อ:

      1. ฟังก์ชันสุ่มที่ตรวจสอบได้คืออะไร


      2. โครงร่างลูกโซ่ปัจจุบันบางรูปแบบใช้ฟังก์ชันสุ่มที่ตรวจสอบได้ได้อย่างไร


        ฟังก์ชันสุ่มที่ตรวจสอบได้คืออะไรฟังก์ชันสุ่มที่ตรวจสอบได้สามารถดูเป็นออราเคิลแบบสุ่ม

      ซึ่งหมายความว่าฉันสามารถรับเอาต์พุตตัวเลขสุ่มผ่านอินพุตใดก็ได้:

      1. สำหรับอินพุตที่แตกต่างกัน ค่าเอาต์พุตจะสุ่มและกระจายอย่างสม่ำเสมอภายในช่วงค่า

        2. สำหรับ Input เดียวกัน Output ที่ได้จะต้องเหมือนกัน


        อย่างไรก็ตาม ฟังก์ชันสุ่มที่ตรวจสอบได้มีการพิสูจน์ความรู้เป็นศูนย์แบบไม่โต้ตอบมากกว่าการสุ่มแบบออราเคิล ซึ่งสามารถใช้ตรวจสอบความถูกต้องของเอาต์พุตตัวเลขสุ่ม ซึ่งบ่งชี้ว่าตัวเลขสุ่มนั้นถูกสร้างขึ้นโดยใครบางคน




      ฟังก์ชันสุ่มที่ตรวจสอบได้ ประกอบด้วยสี่ฟังก์ชัน

      1. สร้างคีย์และสร้างคู่คีย์สาธารณะ-คีย์ส่วนตัว ซึ่งจะไม่กล่าวถึงในรายละเอียดในภายหลัง

      2. สร้างเอาต์พุตตัวเลขสุ่ม

      3. การพิสูจน์ความรู้ทางคอมพิวเตอร์เป็นศูนย์

        4. ตรวจสอบผลลัพธ์ของตัวเลขสุ่ม
        กระบวนการสร้างตัวเลขสุ่มและการพิสูจน์จะดำเนินการในเครื่อง และอินพุตเป็นคีย์ส่วนตัวและค่า ผลลัพธ์คือตัวเลขสุ่มและการพิสูจน์ความรู้เป็นศูนย์


        เราจะสุ่มเลือกจุดผ่านฟังก์ชันทั้งสี่นี้ได้อย่างไร

        ข้อความ


        ฟังก์ชันสุ่มที่ตรวจสอบได้

        วิธีที่ง่ายที่สุด หลังจากที่เราสร้างค่าตัวเลขสุ่มผ่าน VRF ด้านบนแล้ว เราสามารถตั้งค่าเกณฑ์ที่รู้จักโดยเครือข่ายทั้งหมดเพื่อระบุว่าเลือกหรือไม่ ตัวอย่างเช่น เราทุกคนเห็นพ้องต้องกันว่าค่า 100 คือเกณฑ์ สมมติว่าฉันสุ่ม ได้ 101 ในรอบหนึ่ง จากนั้นฉันได้รับอนุญาตให้ดำเนินการขั้นต่อไป
        อย่างไรก็ตาม วิธีที่ง่ายที่สุดนี้ไม่มีทางป้องกันการโจมตีของซีบิลได้ ดังนั้น รูปแบบลอตเตอรี่ VRF ในปัจจุบันส่วนใหญ่จะจัดสรรคะแนนเสียงตามสิทธิ์และความสนใจ จากนั้นจึงออกแบบอัลกอริทึมลอตเตอรี
        มาดูวิธีแก้ปัญหาที่พบบ่อยที่สุดตอนนี้ ซึ่งก็คือการคำนวณผลลัพธ์ของลอตเตอรีผ่านการแจกแจงแบบทวินามก่อนอื่น เราได้สร้างค่าผ่านคีย์ส่วนตัว ค่านี้จริง ๆ แล้วถือเป็นจำนวนเต็มบวกขนาดใหญ่ สมมติว่าเป็น 256 บิต ช่วงค่าควรอยู่ระหว่าง 0 ถึง 2 ถึงกำลัง 256 ที่สอดคล้องกับมัน
        หารด้วย 2 ยกกำลัง 256 เพื่อให้ได้ค่าระหว่าง 0 ถึง 1
        ใส่ค่านี้ในการแจกแจงแบบสะสมของการแจกแจงแบบทวินามเพื่อเปรียบเทียบ และคุณจะได้ค่าที่สอดคล้องกัน (ดูรายละเอียดใน PPT)
        หากค่านี้มากกว่าศูนย์ จะเท่ากับการจับสลากที่สามารถดำเนินการขั้นตอนต่อไปได้

      เผยแพร่ค่านี้พร้อมกับผลรวมที่สร้างโดย VRF ก่อนหน้าไปยังผู้อื่น และผู้ใช้ที่ได้รับรายอื่นสามารถตรวจสอบได้ว่าเงื่อนไขสองข้อต่อไปนี้เป็นจริงหรือไม่:

      1. ตรวจสอบความถูกต้องหรือไม่

        2. ใช้ฟังก์ชันการแจกแจงแบบทวินามเพื่อหาว่า j' เท่ากับ j หรือไม่
        สมมติว่าเงื่อนไขทั้งสองเป็นจริงแสดงว่าผลลอตเตอรี่นั้นถูกต้องและน่าเชื่อถือ

        จนถึงขณะนี้ กระบวนการตั้งแต่การสร้างลอตเตอรีไปจนถึงการตรวจสอบเสร็จสมบูรณ์แล้ว

        จากคำอธิบายของกระบวนการข้างต้น ไม่ใช่เรื่องยากที่จะเห็นว่ากลไกลอตเตอรีที่ใช้ VRF มีข้อดีหลายประการ:

        1. ประการแรก กระบวนการลอตเตอรีไม่จำเป็นต้องสื่อสารกับผู้อื่น และสามารถรับผลการจับสลากได้โดยตรงจากเครื่อง และทุกคนจะรู้จักอินพุต x และค่าเอาต์พุตสำหรับ x เดียวกันจะคงที่ ดังนั้น ไม่สามารถผ่านหลายครั้งลองเปลี่ยนผลสลากกินแบ่ง

        2. หลังจากที่โหนดได้รับข้อมูลลอตเตอรีจากโหนดอื่น โหนดจะสามารถใช้ใบรับรองที่แนบมาเพื่อพิสูจน์ความถูกต้องของหมายเลขสุ่มเพื่อให้แน่ใจว่าเจ้าของคีย์ส่วนตัวคำนวณจริง ดังนั้นจึงไม่สามารถปลอมแปลงผลลอตเตอรี่ได้


        3. ส่วนใหญ่จะใช้ VRF เพื่อให้ได้ตัวเลขสุ่มหลอก ส่วนของลอตเตอรี่มีหน้าที่หลักในการแจกแจงแบบทวินาม โดยการสร้างพารามิเตอร์ของการแจกแจงแบบทวินาม เราสามารถควบคุมสิทธิ์ในการชนะที่ต้องการได้รับหมายเลขได้อย่างง่ายดาย ถูกปรับให้เข้ากับสถานการณ์ต่าง ๆ ที่ต้องใช้ลอตเตอรี


        หลังจากพูดคุยเกี่ยวกับอัลกอริทึมลอตเตอรีตาม VRF แล้ว เรามาดูกันว่าอัลกอริทึมลอตเตอรีนี้นำมาซึ่งฉันทามติของบล็อกเชนอย่างไร

        การเปลี่ยนแปลงที่นำมาโดยลอตเตอรี VRF เป็นฉันทามติ

        เริ่มจากตัวอย่างที่เฉพาะเจาะจงกันก่อน
        Ouroboros เป็นอัลกอริธึมฉันทามติของ Cardano มันน่าสนใจมาก ในตอนแรก มันเสนอแผนกระบวนการฉันทามติแต่แผนนี้มีความปลอดภัยที่พิสูจน์ได้ จากนั้นจะค่อยๆเพิ่มรายละเอียดการใช้งานในการอัปเดตเวอร์ชันกระดาษและในแผนการใช้งานเฉพาะ

        จนถึงตอนนี้ เวอร์ชันทางทฤษฎีของเขาได้ทำซ้ำแล้ว 3 เวอร์ชัน ได้แก่ Ouroboros, Praos และ Genesis ในเวอร์ชันที่สองของ Praos ส่วนหนึ่งของ VRF ได้รับการแนะนำในฐานะการแยกโหนดข้อเสนอบล็อก

        ขั้นแรก เรามาพูดสั้น ๆ เกี่ยวกับกระบวนการฉันทามติของ Ouroboros:
        ก่อนเริ่มแต่ละยุค ในรอบสุดท้ายของยุค เมล็ดสุ่มและผู้ถือ Stake จำนวนหนึ่งจะถูกกำหนดเป็นโหนดที่เข้าร่วมของรอบนี้ ตามเมล็ดสุ่ม ผู้นำสล็อตของสล็อตทั้งหมดในนี้ จะได้รับรอบ และบรรจุตามลำดับ
        ในรอบที่แล้ว การส่งเมล็ดพันธุ์แบบสุ่มถูกสร้างขึ้นโดยโครงการ PVSS แบบโต้ตอบ ยกตัวอย่างให้เห็นภาพง่ายๆ ก็คล้ายๆ กับ คน 2 คน ที่ไม่สามารถเดาหมัดผ่านการสื่อสารแบบ Real-time ได้ ถ้าคนใดคนหนึ่งได้รับผลการชกของอีกคนหนึ่งก็ออกหมัดชัวร์ ชนะได้ เพื่อไม่ให้เป็นการ พอใช้ทีแรกเราก็ใช้ไพ่แทนหมัดของเรา แล้วก็ปิดมัน ทุกคนไม่รู้ว่าหมัดคืออะไร แต่รับรองได้ว่าทุกคนเลือกหมัดขึ้น โดยจะประกาศผลในภายหลัง



        หลังจากสร้าง Random Seed แล้ว อัลกอริทึม Follow the Satoshi จะถูกใช้เพื่อรับผู้นำช่องของแต่ละช่อง การติดตาม Satoshi ถือได้ว่าเป็นเครื่องออราเคิลแบบสุ่ม ซึ่งสามารถใช้ Random Seed และมูลค่าส่วนของผู้ถือหุ้นแต่ละรายเพื่อให้ แต่ละโหนดจะสุ่มกำหนดผู้มีส่วนได้ส่วนเสียให้เป็นผู้นำสล็อต และแต่ละโหนดจะทราบผลลัพธ์นี้ก่อนที่จะเริ่มยุคนี้ และพวกเขาสามารถคำนวณได้ด้วยตัวเองแล้วจะมีปัญหาคือ

        ฉันสามารถทราบโหนดบรรจุภัณฑ์ของบล็อกหนึ่งๆ ได้ล่วงหน้า ดังนั้นผู้โจมตีจึงสามารถโจมตีโหนดบรรจุภัณฑ์ล่วงหน้าเพื่อให้บรรลุวัตถุประสงค์ของการโจมตีได้

        ต่อมาใน Praos ซึ่งเป็นเวอร์ชันที่สองของ Ouroboros ได้แนะนำ VRF เพื่อแทนที่แผน Follow the Satoshi หลังจากที่เราเพิ่งเรียนรู้เกี่ยวกับกระบวนการและลักษณะของลอตเตอรี VRF เราสามารถรู้ได้ว่าหลังจากการแนะนำ VRF ทุกๆ โหนดเป็นผู้นำสล็อตของรอบสล็อตเท่านั้นที่รู้จัก หลังจากที่เขาเผยแพร่ โหนดอื่นสามารถตรวจสอบว่าเขามีบทบาทนี้จริง ๆ หรือไม่ เพื่อหลีกเลี่ยงการโจมตีที่กล่าวถึงข้างต้น
        แต่สิ่งนี้ก็นำมาซึ่งปัญหาใหม่ ๆ ดังที่กล่าวไว้ข้างต้น Follow the Satoshi สามารถกำหนดผู้นำสล็อตแบบสุ่มให้กับแต่ละสล็อตได้ แต่ VRF ซึ่งเป็นวิธีการจับสลากตามความน่าจะเป็นไม่สามารถแน่ใจเกี่ยวกับจุดนี้ได้ นอกจากนี้ยังอาจเกิดขึ้นที่สล็อตบางรอบไม่ดึงผู้นำสล็อตหรือดึงผู้นำสล็อตออกมาหลายคน ดังนั้นใน Praos จึงมีการเพิ่มโซลูชันเพิ่มเติมเพื่อจัดการกับสถานการณ์นี้
        เมื่อเปรียบเทียบโซลูชันทั้งสอง VRF จะแนะนำสถานการณ์ที่ผิดปกติสองสถานการณ์นอกเหนือจากการอัปเกรดความปลอดภัยที่คาดเดาไม่ได้ของผู้นำสล็อต แต่ความผิดปกติทั้งสองนี้เป็นปัญหาใหม่ที่นำเสนอโดย VRF หรือไม่ ลองคิดดู

        ในความเป็นจริง ไม่ว่าจะเป็นโซลูชัน Follow the Satoshi หรือ VRF ปัญหานี้จะต้องได้รับการแก้ไข เพราะแม้ว่าฉันจะรับประกันได้ว่าแต่ละสล็อตมีผู้นำสล็อต ฉันก็ไม่สามารถรับประกันได้ว่าผู้นำสล็อตจะสามารถพิมพ์แพ็กเก็ตในสล็อตนี้ได้หรือไม่ วิธีการตรวจสอบ fork เป็นปัญหาที่ต้องพิจารณาตราบเท่าที่ยังเป็น chain สมมติว่า slot leader ถูกโจมตี และการบรรจุซ้ำจำนวนมากใน slot ของตัวเองจะทำให้เกิดปัญหา fork เช่นกัน


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

        แนวคิดโดยทั่วไปคือการใช้ฟังก์ชันสุ่มที่ตรวจสอบได้เพื่อจับฉลากเพื่อลดจำนวนโหนดฉันทามติที่เข้าร่วมหรือบทบาทบางอย่าง

        1. Algorand จะเลือกผู้แบ่งบรรจุก่อน และหลังจากเลือกผู้แบ่งบรรจุแล้ว คณะกรรมการจะถูกเลือก และคณะกรรมการจะใช้ BA* เพื่อเลือกบล็อค

        2. ใน Dfinity ขีดจำกัดจะเพิ่มขึ้นตามเงินฝาก และลดจำนวนโหนดที่เข้าร่วม จากนั้นจึงเลือกผู้บรรจุหีบห่อ หลังจากเลือกผู้บรรจุหีบห่อแล้ว ทนายความจะถูกเลือก และน้ำหนักบล็อกจะถูกจัดเรียงเพื่อเลือกบล็อก

        ข้อความ


        ข้อความ


        ปัญหาบางอย่าง


         

        หลังจากแบ่งปัน VRF และแอปพลิเคชันปัจจุบันบางส่วนแล้ว มีคำถามหลายข้อที่เราต้องพิจารณาร่วมกัน:


      • 1. จำเป็นต้องใช้ VRF ในการจับสลากหรือไม่?

      • มันเปรียบเทียบกับ oracles แบบสุ่มได้อย่างไร?

      • เปรียบเทียบกับรูปแบบการเข้ารหัสแบบอสมมาตรซึ่งมีกระบวนการคล้ายกันอย่างไร


      • 2. มีสถานการณ์การใช้งานอื่น ๆ หรือไม่?

      • ขอบคุณทุกคน.


      • ขอบคุณทุกคน.



        คำอธิบายภาพ

        https://github.com/pinqy520/vrf.js 

        ปัจจุบันใช้ในการดำเนินการตามอัลกอริทึมฉันทามติของ Tarax


        อ้างอิง—————————————————————————————————————————————————————

      • Verifiable Random Functions [1999]

      • Ouroboros: A provably secure proof-of-stake blockchain protocol [2017] Algorand: 

      • Scaling Byzantine Agreements for Cryptocurrencies [2017]

      • Ouroboros Praos: An adaptively-secure, semi-synchronous proof-of- stake blockchain [2018]

      • https://github.com/iost-official/Documents/blob/master/ Technical_White_Paper/EN/Tech_white_paper_EN.md

      • https://tools.ietf.org/html/draft-irtf-cfrg-vrf-02

      • https://github.com/Realiserad/fts-tree 

      • https://www.cs.bu.edu/~goldbe/projects/vrf




      • คำอธิบายภาพ

        https://v.qq.com/x/page/e0735yg5l7t.html

        Blockchain Funds-Technology Federation 


        ผู้ร่วมจัดงาน BFTF:

        คำอธิบายภาพ

      ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
      กลุ่มสมาชิก
      https://t.me/Odaily_News
      กลุ่มสนทนา
      https://t.me/Odaily_CryptoPunk
      บัญชีทางการ
      https://twitter.com/OdailyChina
      กลุ่มสนทนา
      https://t.me/Odaily_CryptoPunk
      สรุปโดย AI
      กลับไปด้านบน
      หลักการพื้นฐานของ VRF คืออะไร? วิธีการใช้ VRF เพื่อให้ได้ฉันทามติ? สามารถใช้ VRF ในสถานการณ์อื่นใ
      ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
      ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
      IOS
      Android