
ผู้เขียน: BlockPunk
คำนำ
คำนำ
ในทวีปตะวันออกเมื่อ 4,000 ปีที่แล้ว หมอผีค่อย ๆ หยิบกระดองเต่าออกมาจากเถ้าถ่านของกองไฟ รอยแตกสุ่มบนกระดองเต่าจะเป็นตัวกำหนดจังหวะการออกล่าครั้งต่อไปของเผ่า พลเมืองดีเด่น 500 คนจะถูกสุ่มเลือกให้เข้าร่วม การอภิปรายเกี่ยวกับกิจการของรัฐบาลในนครรัฐ ในตะวันออกกลางเมื่อ 2,000 ปีที่แล้ว พ่อค้านั่งรอบโต๊ะพนัน ดูลูกเต๋าสี่ด้านที่ทอยบนโต๊ะอย่างกระวนกระวายใจ และผลสุดท้ายจะเป็นตัวกำหนดที่มาของโชคลาภก้อนโต .
ในประวัติศาสตร์มนุษย์นับพันปี เราได้ค้นหาตัวเลขสุ่มที่เชื่อถือได้อย่างต่อเนื่องและใช้ตัวเลขสุ่มในทุกด้านของชีวิต ระบบลอตเตอรีของประชาธิปไตยและสาธารณรัฐ การส่งข้อมูลทางทหารในช่วงสงคราม การคำนวณแบบจำลองการผลิต และการอ้างอิงที่เชื่อถือได้เมื่อเล่นการพนันและความบันเทิง
ชื่อระดับแรก
ตัวเลขสุ่มจริง
ในแง่ของเทคโนโลยีที่เรียบง่ายของบรรพบุรุษของเรา มนุษย์ได้สร้างวิธีการมากมายในการสร้างตัวเลขสุ่ม แต่ความสุ่มและคาดเดาไม่ได้ของตัวเลขสุ่มเหล่านี้ไม่สูงไปกว่าวิธีการเผากระดองเต่า
คำอธิบายภาพ

รูปภาพของ "ตารางสุ่มนับล้าน" มาจากอินเทอร์เน็ต
คำอธิบายภาพ

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

คอมพิวเตอร์ ENIAC | รูปภาพจากอินเทอร์เน็ต
อัลกอริทึมนี้เป็นดังนี้: ขั้นแรกให้รับค่าสุ่มที่สั้นมาก เช่น จำนวนมิลลิวินาทีในขณะที่ดำเนินการ เป็น "เมล็ด" ของอัลกอริทึมนี้ จากนั้นยกกำลังสองของ "เมล็ด" ส่งออกส่วนตรงกลางของผลลัพธ์กำลังสอง แล้วใช้เป็น "เมล็ด" ทำซ้ำการดำเนินการข้างต้น หลังจากทำซ้ำหลายครั้งจะได้ "ตัวเลขสุ่ม"
สิ่งนี้เรียกว่าวิธีการกำลังสอง และเป็นเพียงหนึ่งในอัลกอริธึมจำนวนสุ่มหลอกจำนวนนับไม่ถ้วนที่แสดงผลลำดับที่ขึ้นอยู่กับการสุ่มของเมล็ดเริ่มต้นเท่านั้น เนื่องจากความแน่นอนของเครื่อง Seed เดียวกันสามารถคำนวณหมายเลขสุ่มเดียวกันได้
จำนวนหลักของเมล็ดเป็นตัวกำหนดความสุ่มของตัวเลขสุ่ม เมื่อคุณตั้งค่า seed สองหลักเพื่อสร้างตัวเลขสุ่ม 10 หลัก คุณจะได้รับตัวเลขสุ่มที่มีอยู่สูงสุด 100 ตัวก่อนที่ฟังก์ชันจะสร้างวงจรซ้ำ โดยธรรมชาติแล้ว ตัวเลขสุ่ม 10 หลักควรมีความเป็นไปได้หนึ่งหมื่นล้านครั้ง ลำดับความสำคัญที่แตกต่างกันอย่างมากระหว่างทั้งสองคือความแตกต่างระหว่างตัวเลขสุ่มจริงและเท็จ
รูปภาพมาจากอินเทอร์เน็ต

รูปภาพมาจากอินเทอร์เน็ต
ตัวเลขสุ่มหลอกมีวงจรปกติ และความเข้มข้นของคะแนนจะแสดงเป็นเส้น
แน่นอน ตัวเลขสุ่มแบบนี้ก็เพียงพอแล้ว เราจะต้องแนะนำแนวคิดที่สำคัญมากในวิทยาการคอมพิวเตอร์ ขอบเขตของเวลา นั่นคือ ระยะเวลาที่ตัวเลขสุ่มนี้ปลอดภัยและไม่เกิดซ้ำ เช่นเดียวกับที่เราใช้รหัสล็อครถ เรารู้ว่ารหัสผ่านที่ถูกต้องต้องรวมกันเป็น 10,000 ชุด แต่ต้องใช้เวลาหลายวันในการลองแต่ละรหัส ถือว่าปลอดภัยภายในขอบเขตเวลานี้ และเช่นเดียวกันกับตัวเลขสุ่มหลอก .
สตริงสุ่มที่เราพิมพ์บนแป้นพิมพ์ขณะหลับตามีกฎที่ต้องปฏิบัติตามจริง ๆ นี่คือเค้าโครงแป้นพิมพ์ของ QWER หลังจากวิเคราะห์แล้วความเป็นไปได้ในการถอดรหัสตัวเลขสุ่มจะสูงมาก
ชื่อระดับแรก
ทำไม Blockchain ต้องการตัวเลขสุ่ม
ในอินเทอร์เน็ตแบบดั้งเดิม ตัวเลขสุ่มเป็นพื้นฐานของการเข้ารหัสและการรักษาความปลอดภัยความเป็นส่วนตัว การแบ่งปันคีย์สุ่ม การสื่อสารส่วนตัวที่เข้ารหัสสามารถดำเนินการระหว่างสองโหนดได้ ในบล็อกเชน การส่งคีย์ส่วนตัวจะใช้คุณสมบัติ ในขณะเดียวกัน ตัวเลขสุ่ม ยังใช้กันอย่างแพร่หลายในการสื่อสารแบบหลายโหนดภายใต้แบนด์วิธที่จำกัด สามารถใช้ Random Number เพื่อกำหนดลำดับการส่งข้อมูลที่เหมาะสมเพื่อประสานงานโหนดหลายฝ่าย บน Blockchain คือการใช้ Consensus Algorithm ตามตัวเลขสุ่มเพื่อประสานงาน ตัวยืนยันธุรกรรมทำให้แน่ใจว่าทุกคนอัปเดตข้อความของบางโหนดภายในระยะเวลาหนึ่งเท่านั้น เพื่อให้ได้รับฉันทามติเมื่อจำนวนข้อความเครือข่ายมีจำกัด
สรุป
สรุป
- กำหนดสิทธิ์ในการสร้างบล็อกอย่างยุติธรรมและรักษาฉันทามติที่สอดคล้องกัน ภายใต้กลไก PoW และ PoS บางอย่าง จะมีการใช้ตัวเลขสุ่มเพื่อเลือกผู้ผลิตบล็อกหรือผู้ผลิตบล็อก รวมถึงลำดับของการผลิตบล็อกแบบวงกลมภายใต้กลไก DPoS ซึ่งกำหนดโดยตัวเลขสุ่มเช่นกัน 
- การสร้างคีย์ส่วนตัว ในปัจจุบัน ตราบใดที่คีย์ส่วนตัวถูกสร้างขึ้นโดยวิธีการสุ่มตัวเลขที่กำหนดโดยกระเป๋าเงินแต่ละใบ จะมีความเสี่ยงด้านความปลอดภัยสูง 
- แหล่งที่มาของตัวเลขสุ่มสำหรับแอปพลิเคชันบนเครือข่าย รับรองความยุติธรรมและความยุติธรรมของแอปพลิเคชัน เช่น การพนัน เกม การจับฉลาก การแจกจ่าย การสำรวจ ฯลฯ ซึ่งง่ายต่อการถูกแฮ็ก 
- ชื่อระดับแรก 
ความยากของการสุ่มหมายเลขบนเครือข่าย
แม้ว่าบล็อกเชนยังคงใช้เทคโนโลยีอินเทอร์เน็ตในอดีต แต่ก็มีความแตกต่างอย่างมากในส่วนของการสร้างตัวเลขสุ่ม
วิธีการสร้างตัวเลขสุ่มแบบดั้งเดิมเป็นแบบรวมศูนย์และตัวเลขสุ่มที่สร้างขึ้นจะเกี่ยวข้องกับค่าสถานะและสถานะทางกายภาพของเครื่องเฉพาะ อย่างไรก็ตาม ตัวเลขสุ่มที่ได้จากอัลกอริธึมตัวเลขสุ่มเดียวกันบนโหนดต่างๆ จะแตกต่างกัน และยังเป็น เป็นไปไม่ได้ที่จะตรวจสอบตัวเลขสุ่มแต่ละรายการ ดังนั้นวิธีการดั้งเดิมจึงไม่สามารถสร้างการสุ่มที่สอดคล้องกัน ซึ่งไม่สอดคล้องกับบล็อกเชน
ชื่อเรื่องรอง
หลักการของตัวเลขสุ่มบนเครือข่าย
1. คาดเดาไม่ได้
เนื่องจากหมายเลขสุ่มกำหนดความเป็นธรรมของเลเยอร์โปรโตคอลทั้งหมดรวมถึงเลเยอร์ด้านบนทั้งหมด หากสามารถทำนายหมายเลขสุ่มได้ล่วงหน้า ก็จะสามารถรอโอกาสที่จะเปิดการโจมตีได้ แน่นอน ความไม่แน่นอนนี้มีขอบเขตของเวลา โดยทั่วไป เวลาของ blockchain จะใช้เป็นขอบเขตและความยากในการทำนายจะเพิ่มขึ้นโดยการควบคุมความยากของการคำนวณหรือการตั้งค่าการรอ สรุปมีสองตัวเลือก:
- รับประกันว่าหมายเลขสุ่มจะถูกจัดลำดับจากเวลาบล็อก (VRF/VDF) 
- รับประกันความยากของการสุ่มตัวเลขและปรับความยากตามสถานการณ์ (แฮชชนกัน) 
2. อย่าเข้าไปยุ่ง
ตัวเลขสุ่มจะกำหนดการยืนยันฉันทามติของบล็อก (ในระบบที่ไม่ทนทานต่อข้อผิดพลาดของไบแซนไทน์) ดังนั้น หากคุณสามารถแทรกแซงการเกิดขึ้นของตัวเลขสุ่มได้ คุณจะสามารถควบคุมทิศทางในอนาคตของบล็อกเชนได้โดยอ้อมโดยไม่ต้องควบคุมโหนด/ พลังการประมวลผลเกินขีดจำกัดสูงสุด แม้ว่าสัญญาณรบกวนอาจมีขนาดเล็ก แต่การสะสมของสัญญาณรบกวนหลายจุดอาจนำไปสู่ปัญหาที่ร้ายแรงกว่า ("การโจมตีแบบขยายสัญญาณ") มีสองวิธีแก้ปัญหา:
- ตรวจสอบให้แน่ใจว่าการสร้างตัวเลขสุ่มไม่ใช่แบบโต้ตอบ (รูปแบบลายเซ็นเกณฑ์) หรือคำนวณทั้งหมดตามสถานะของโหนดเอง (การชนกันของแฮช) 
- ตั้งค่าความล่าช้าในการสร้างตัวเลขสุ่ม คุณต้องรอเป็นเวลานานสำหรับการคำนวณที่ซับซ้อนเพื่อให้ได้ตัวเลขสุ่ม เพื่อให้ผู้รบกวนไม่สามารถคาดเดาผลกระทบของตนเองได้ 
3. ตรวจสอบได้
ชื่อเรื่องรอง
วิธีแก้ปัญหาบางอย่างที่ไม่เป็นไปตามหลักการข้างต้น
เพื่อแก้ปัญหาความยากของตัวเลขสุ่มบนบล็อกเชน โซลูชันจำนวนมากได้รับการผลิตขึ้นเอง ต่อไปนี้เป็นการแนะนำโดยย่อเกี่ยวกับโซลูชันต่อไปนี้ที่ไม่เป็นไปตามหลักการ 3 ข้อข้างต้น แม้ว่าแต่ละวิธีจะมีตรรกะที่สอดคล้องกันในตนเองและความปลอดภัยบางอย่าง ขณะนี้ยังมีปัญหาในขั้นตอนและยังสามารถใช้งานได้ในสถานที่ที่ข้อกำหนดด้านความปลอดภัยไม่สูงนัก สิ่งนี้ไม่เฉพาะเจาะจงสำหรับโครงการใดโครงการหนึ่ง แต่ชี้ให้เห็นถึงปัญหาที่มีกระบวนทัศน์ที่คล้ายคลึงกัน
1. ใช้ตัวเลขสุ่มจริงแบบออฟไลน์
แทนที่จะคำนวณตัวเลขสุ่มบนเครือข่าย ให้ใช้ตัวเลขสุ่มจริงที่ได้มาจากปรากฏการณ์ทางกายภาพ เช่น สัญญาณรบกวนในบรรยากาศ สัญญาณไฟฟ้า และอาศัยชิปเซ็ตที่มีวงจรที่มีสัญญาณรบกวนทางความร้อน แต่สำหรับ blockchain ส่วน off-chain จะมองไม่เห็นและไม่น่าเชื่อถือโดยปริยาย การได้มาซึ่งตัวเลขสุ่มจาก chain จะต้องให้บุคคลที่สามอัพโหลดไปยัง chain ซึ่งไม่เพียงแต่ละเมิดเจตนารมณ์ของการกระจายอำนาจของ blockchain เท่านั้น ไม่สามารถตรวจสอบได้อย่างสมบูรณ์ และมีความเสี่ยงที่จะถูกแก้ไขและคาดการณ์ล่วงหน้า แม้ว่าจะมีการใช้เครื่อง oracle เพื่อให้ได้ตัวเลขสุ่มแบบ off-chain ในลักษณะที่กระจายอำนาจ แต่ก็ยังมีการแทรกแซงทางกายภาพของมนุษย์ ดังนั้นรูปแบบนี้จึงไม่พึงปรารถนาอย่างยิ่ง
2. ใช้ข้อมูลของบล็อกปัจจุบันเป็นแหล่งสุ่ม
Dapps การพนันจำนวนมากบนเครือข่ายใช้เพื่ออ้างอิงถึงค่ารูทแฮชของบล็อกล่าสุดโดยตรงว่าเป็นเมล็ดพันธุ์แบบสุ่มของสัญญา จากนั้นจึงสร้างตัวเลขแบบสุ่ม แม้ว่าการแนะนำสั้น ๆ จะขึ้นอยู่กับการรับประกันพลังการประมวลผลบนเครือข่าย แต่ตัวเลขสุ่มที่สร้างขึ้นด้วยวิธีนี้ดูเหมือนจะน่าเชื่อถือเพียงพอ แต่จำเป็นต้องพิจารณาความปลอดภัยหลายมิติ ประการแรก ข้อมูลในบล็อกมีความโปร่งใส โหนดทั้งหมดสามารถรับข้อมูลได้ และผู้โจมตีสามารถใช้ข้อมูลนี้เพื่อโจมตีสัญญาได้ อุปสรรคเดียวคืออัลกอริทึมตัวเลขสุ่มที่ไม่ใช่โอเพ่นซอร์ส ประเด็นที่สองคือ หลังจากที่ผู้ผลิตบล็อกมีคุณสมบัติในการผลิตบล็อกแล้ว เขาสามารถลองเปลี่ยนลำดับของธุรกรรมที่ทำแพ็กเกจและพยายามทำแพ็กเกจธุรกรรมต่างๆ เพื่อสร้างมูลค่าแฮชรูทที่เป็นประโยชน์สูงสุดสำหรับเขา ซึ่งจะเป็นการเพิ่มโอกาสในการชนะ ซึ่งเป็นประโยชน์ต่อผู้เข้าร่วมรายอื่นอย่างไม่เป็นธรรม
3. สร้างตัวเลขสุ่มด้วยความช่วยเหลือขององค์กรที่กระจายอยู่
ชื่อระดับแรก
สามประเภทของโปรแกรม
ชื่อเรื่องรอง
การชนกันของแฮช
ในระบบ PoW ไคลเอ็นต์ของเครื่องขุดมีตัวสร้างตัวเลขสุ่มตามสถานะของโหนด ซึ่งสามารถส่งออกลำดับของตัวเลขสุ่มแล้วคำนวณค่าแฮช เมื่อค่าแฮชที่สร้างขึ้นอยู่ในช่วงขนาดที่ระบุ เพื่อให้มีคุณสมบัติในการสร้างบล็อก โหนดอื่นจะได้รับค่าสุ่มนี้และคำนวณค่าแฮชหนึ่งครั้งสำหรับการตรวจสอบ ดังนั้นการตรวจสอบจึงง่ายมาก
ดังนั้น ตัวเลขสุ่มนี้ต้องประสบกับเหตุการณ์สุ่มนับแสนล้านครั้งก่อนที่จะมีโอกาสได้หมายเลขสุ่มที่ตรงตามความต้องการ ดังนั้น ระดับการสุ่มจึงสูงมาก แทบเป็นไปไม่ได้เลยที่จะทำนายจำนวนสุ่มนี้หลายบล็อก ล่วงหน้า เนื่องจากตัวเลขสุ่มถูกส่งออกอย่างสมบูรณ์ตามสถานะของโหนดเอง หมายเลขสุ่มนี้จะไม่รบกวนผู้โจมตีรายอื่น การปรับความยากทันที (ปรับช่วงขนาดของค่าแฮช ) และจะไม่ถูกละเมิดภายใน ขอบเขตเวลาความปลอดภัย
ข้อได้เปรียบ:
ข้อได้เปรียบ:
- การสุ่มที่แข็งแกร่งที่สุด หมายเลขความปลอดภัย เหมาะมากสำหรับการขับเคลื่อนเลเยอร์ฉันทามติ 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- ความซ้ำซ้อนในการคำนวณ การใช้การคำนวณจำนวนมาก การสิ้นเปลืองทรัพยากร 
- ใช้งานยากที่ชั้นแอปพลิเคชัน 
- ไม่ซ้ำกัน สามารถมีตัวเลขสุ่มหลายตัวที่ตรงตามข้อกำหนดได้ในเวลาเดียวกัน ซึ่งอาจนำไปสู่การบล็อกทางแยก 
- ชื่อเรื่องรอง 
ฟังก์ชันสุ่มที่ตรวจสอบได้ (VRF)
อัลกอริทึม VRF (Verifiable Random Function) ถูกเสนอโดยศาสตราจารย์โมคาลีในปี 2542 เนื่องจากการรักษาความปลอดภัยและประสิทธิภาพที่ดีกว่า จึงถูกนำมาใช้ในโครงการบล็อกเชนมากขึ้นเรื่อยๆ เพื่อเพิ่มประสิทธิภาพกระบวนการฉันทามติ ทำให้ส่วนตัวเลขสุ่มของฉันทามติครอบครอง การคำนวณ ทรัพยากรลดลงและทรัพยากรมากขึ้นถูกครอบครองโดยการยืนยันธุรกรรมและการดำเนินการตามสัญญา

ตั้งค่ารูปด้านบนเพื่ออธิบายขั้นตอนการสร้างโดยย่อ:
0. สร้างคู่คีย์สาธารณะและส่วนตัวสำหรับลายเซ็นหมายเลขสุ่มโดยเฉพาะ
1. รับเมล็ดพันธุ์แบบสุ่มที่เพียงพอ ซึ่งสามารถใช้ผลลัพธ์ของรอบที่แล้วได้โดยตรงและรวมกับตัวแปรต่างๆ เช่น ความสูงของบล็อกและเวลา
2. ใช้คีย์ส่วนตัวของตัวเลขสุ่มเพื่อลงชื่อ (เข้าร่วมในการสร้างตัวเลขสุ่ม) หรือลงชื่อก่อนแล้วจึงรวมกัน
3. สร้างข้อมูลสรุปแฮชของค่าที่ลงนามเพื่อรับหมายเลขสุ่มล่าสุด
4. ตรวจสอบว่าหมายเลขสุ่มอยู่ในช่วงที่กฎหมายกำหนดหรือไม่ และตัดสินว่าลอตเตอรีเข้าสู่กลุ่มการผลิตแบบบล็อกสำเร็จหรือไม่ (บางโครงการไม่จำเป็นต้องใช้ขั้นตอนนี้)
5. ตามอินพุตของคีย์สาธารณะและรอบ ฯลฯ การพิสูจน์จะถูกคำนวณ และผู้ตรวจสอบจะใช้ฟังก์ชันเพื่อตรวจสอบหลังจากได้รับหมายเลขสุ่ม
ดังนั้นตัวเลขสุ่มที่สร้างขึ้นด้วยวิธีนี้โหนดสามารถตรวจสอบได้ง่ายว่าเป็นไปตามอัลกอริทึมหรือไม่"Verifiable"เสร็จสิ้น และหลังจากอัลกอริธึมที่ซับซ้อนเพียงพอ ควบคู่ไปกับกระบวนการย่อยแฮช จะได้ผลลัพธ์ที่กระจายแบบสุ่มอย่างเพียงพอ และรับประกันว่า "สุ่ม"
VRF ส่วนใหญ่ใช้ร่วมกับกลไก PoS เพื่อสุ่มเลือกผู้ผลิตบล็อก (กลุ่ม) และกำหนดการเลือกบล็อกที่สอดคล้องกันโดยตรงในแต่ละโครงการ กระบวนการสร้างหมายเลขสุ่มสามารถรันออกจากสายโซ่ของโหนดได้อย่างสมบูรณ์ และยังสามารถรันบนสายโซ่ทั้งหมดได้อีกด้วย
ข้อได้เปรียบ:
ข้อได้เปรียบ:
- ความต้องการพลังงานในการคำนวณต่ำ ประสิทธิภาพสูงในการสร้างตัวเลขสุ่ม 
- สร้างตัวเลขสุ่มที่ไม่ซ้ำใครและกำหนดขึ้นได้ ซึ่งไม่มีแนวโน้มที่จะแยกไปสองทาง 
- การยืนยันอาจล่าช้ากว่าการสร้างตัวเลขสุ่ม ซึ่งเหมาะสำหรับการเลือกตั้งลับ 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- มีขั้นตอนการตรวจสอบหลายขั้นตอน และต้องมีการตรวจสอบหลายครั้งภายใต้การเลือกตั้งลับ 
- ความสม่ำเสมอของการแจกแจงตัวเลขสุ่มไม่ดีเนื่องจากคำนวณตามคีย์คุณลักษณะ 
- การใช้แบนด์วิธสูงและดีเลย์นาน ซึ่งทำให้โหนดที่เลือกอย่างลับๆ สามารถยืนยันซึ่งกันและกันได้ และโครงการ BLS ก็ไม่ใช่ปัญหาใหญ่ 
Algorand
แต่ละโหนดได้รับเมล็ดพันธุ์แบบสุ่มจากบล็อกการยืนยันรอบก่อนหน้า ตั้งเวลารอบ ฯลฯ เรียกใช้ฟังก์ชัน VRF แยกจากกันภายใต้ห่วงโซ่ จากนั้นดำเนินการสรุปแฮชกับผลลัพธ์ และโหนดจะเปรียบเทียบผลลัพธ์กับแฮช ช่วงค่าในเครือข่าย (ค่อนข้างคล้ายกับการเปรียบเทียบแฮช PoW) สมาชิกภายในช่วงมีสิทธิ์เข้าร่วมในการตรวจสอบและบล็อกการสร้าง
เนื่องจาก VRF ทำงานที่ขอบเขตของเครือข่าย ซึ่งก็คือส่วนของโหนดเชน จึงไม่รู้จักทั้งเครือข่ายที่โหนดถูกดึง และโหนดที่เลือกจะไม่รู้ว่าโหนดใดถูกเลือกเช่นกัน และจำเป็นต้องสุ่มตัวเลขและพิสูจน์ ถูกส่งหากันและรวบรวมการตรวจสอบเพื่อตัดสินตัวตนของโหนดอื่น ๆ ดังนั้นกระบวนการนี้จึงเรียกว่า "การเลือกตั้งลับ"
สำหรับการเลือกบล็อกนั้นจะพิจารณาจาก "คุณสมบัติ" ของจำนวนสุ่มของโหนดที่ผลิตบล็อก ขณะเดียวกัน โหนดจำเป็นต้องลงคะแนนสำหรับบล็อกอื่น ๆ กระบวนการนี้เป็นข้อผิดพลาดของไบแซนไทน์ที่ปรับปรุงแล้ว - โปรโตคอลที่อดทนและการลงคะแนนต้องใช้สองรอบ แต่ละรอบต้องมี "การเลือกตั้งลับ"
ข้อได้เปรียบ:
ข้อได้เปรียบ:
- "การเลือกตั้งลับ" เป็นไปไม่ได้ที่จะรู้โหนดที่เลือกทั้งหมดในครั้งแรก ดังนั้นจึงเป็นไปไม่ได้ที่จะสมรู้ร่วมคิดหรือโจมตีที่จุดที่กำหนดไว้ล่วงหน้า 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- โหนดที่เลือกใช้เวลานานในการยืนยันตัวตนของกันและกันและสำรวจเครือข่ายทั้งหมด อัตราการใช้ Bandwidth สูงเกินไป ซึ่งทำให้คนทั่วไปไม่สามารถมีส่วนร่วมในฉันทามติและส่งผลต่อระดับของการกระจายอำนาจ 
- เนื่องจากขนาดของกลุ่มการตรวจสอบถูกกระจายตามช่วงความน่าจะเป็น จึงไม่สามารถเลือกโหนดได้เพียงพอเมื่อขนาดเครือข่ายมีขนาดเล็ก และเมื่อขนาดเครือข่ายใหญ่ กลุ่มการตรวจสอบจะใหญ่เกินไปและประสิทธิภาพต่ำเกินไป 
ชื่อเรื่องรอง
DFINITY
ครั้งแรกที่โหนดให้คำมั่นว่าจะเข้าร่วมเครือข่าย โหนดจะสร้าง "คีย์ตัวเลขสุ่ม" แบบสุ่มสำหรับแต่ละโหนดโดยเฉพาะตามโปรโตคอลการสร้างคีย์แบบกระจาย
ข้อตกลงคีย์แบบกระจายนี้จะสร้างคู่คีย์ทั้งหมดที่ตรงตามข้อกำหนด และตามขนาดของกลุ่มคณะกรรมการที่ระบุโดยระบบ คู่คีย์ทั้งหมดจะถูกแบ่งและแจกจ่ายไปยังโหนดในกลุ่ม โหนดได้รับรหัสการลงนามส่วนตัว แต่ไม่มีใครรู้ว่ารหัสหลักคืออะไร
การจัดสรรกลุ่มเป็นแบบสุ่ม และโหนดสามารถอยู่ในหลายกลุ่มพร้อมกันได้ แต่สมาชิกของกลุ่มได้รับการแก้ไขและทราบล่วงหน้า ซึ่งแตกต่างจาก "การเลือกตั้งลับ" ของ Algorand - DFINITY คือ "ลำดับความสำคัญ" Algorand คือ "หลัง"
กระบวนการสร้างหมายเลขสุ่มของ DFINITY เป็นแบบออนไลน์ทั้งหมด และคุณไม่สามารถควบคุมกระบวนการสุ่มหมายเลขได้ หมายเลขสุ่มของรอบที่แล้วจะเลือกกลุ่มคณะกรรมการสำหรับรอบนี้จากหลายกลุ่ม และกระบวนการทั้งหมดจะเปิดขึ้น กลุ่มคณะกรรมการจะปฏิบัติตามภาระหน้าที่ในการสร้างบล็อกและการรับรองเอกสาร ในระหว่างกระบวนการรับรอง โหนดจะยังคงมองหาบล็อกที่มี "น้ำหนัก" สูงสุด "น้ำหนัก" นี้จะถูกกำหนดโดยหมายเลขสุ่มของรอบที่แล้วเช่นกัน เมื่อ พบบล็อกก็จะใช้ "คีย์สุ่ม" ลงนามและออกอากาศ

และมีโปรแกรมที่รันอยู่บนสายโซ่ที่เรียกว่า Random Number Beacon ซึ่งจะคอยรับข้อมูล Signature ของรอบปัจจุบันอย่างต่อเนื่อง เมื่อ Signature ของ Block เกิน 50% ของจำนวน Node ในกลุ่มการตรวจสอบก็จะส่ง การรวมลายเซ็นเพื่อสร้างตัวเลขสุ่มที่ได้รับการยืนยันโดยเฉพาะ การปรากฎตัวของหมายเลขสุ่มนี้ถือเป็นการสิ้นสุดฉันทามติในรอบนี้ และจะดำเนินการคัดเลือกผู้เข้าร่วมสำหรับฉันทามติรอบต่อไป
ข้อได้เปรียบ:
ข้อได้เปรียบ:
- ในขั้นตอนของการสร้างตัวเลขแบบสุ่มและสอดคล้องกัน โหนดไม่จำเป็นต้องโต้ตอบ โหนดเหล่านี้จะถูกดำเนินการโดยอัตโนมัติ ไม่จำเป็นต้องมีความทนทานต่อความผิดพลาดของไบแซนไทน์ ประสิทธิภาพสูง และการใช้แบนด์วิธต่ำ 
- กระบวนการสร้างตัวเลขสุ่มใช้งานไม่ได้และไม่โต้ตอบ ดังนั้นจึงไม่สามารถมีอิทธิพลได้ และตัวเลขสุ่มมีความยุติธรรมมากกว่า 
- กลุ่มเกณฑ์ได้รับการกำหนดและไม่เปลี่ยนแปลงตามฉันทามติ ซึ่งโดยธรรมชาติแล้วเหมาะสำหรับการแบ่งย่อย ดังนั้นความสามารถในการปรับขนาดจึงดีมาก 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- หลัง สมาชิกในทีมได้รับการพิจารณาก่อนฉันทามติ อาจมีความเป็นไปได้ของการสมรู้ร่วมคิด 
- ขับเคลื่อนด้วยตัวเลขสุ่ม แม้ว่าโหนดที่ทำงานร่วมกันจะไม่สามารถควบคุมบล็อกเชนได้ แต่ก็สามารถหยุดระบบไม่ให้ปิดได้ 
- พื้นฐานทางวิชาการของอัลกอริทึม BLS นั้นเพียงพอ แต่ยังขาดการนำไปใช้งานทางวิศวกรรมและไม่มีกรณีโอเพ่นซอร์ส 
Cardano
โครงการนี้เป็นการดำเนินการครั้งแรกของอัลกอริธึม Ouroboros ที่มีชื่อเสียง เฟสฉันทามติถูกวนรอบตามยุค มีหลายช่องในแต่ละรอบ และแต่ละช่องจะสร้างบล็อก หากสามารถข้ามช่องได้หากมีสิ่งผิดปกติ และใครควรสร้างบล็อกสำหรับแต่ละช่อง ต้องใช้เมล็ดตัวเลขสุ่มที่กำหนดโดยบล็อกกำเนิดของรอบนี้ สิทธิ์จำนองของโหนดที่มีสิทธิ์เข้าร่วมในฉันทามติ คีย์สาธารณะของโหนด และรายการช่อง (ดัชนี) และ ข้อมูลอื่น ๆ รวบรวมคีย์สาธารณะที่ประกาศโดยโหนดและคำนวณผลลัพธ์สุดท้าย ตัวเลขกำหนดว่าโหนดใด (ตัวนำช่อง) สามารถสร้างบล็อกได้
ดังนั้น กุญแจสำคัญของ Cardano คือ ในแต่ละยุค บล็อกต้นกำเนิดจะมีหมายเลขสุ่มที่กำหนดผู้ผลิตบล็อก อันที่จริง ในโหนดภายใต้เครื่องสถานะนี้ การสร้างบล็อก ของยุคนี้ถูกกำหนดไว้แล้วในตอนต้นของ การสร้างบล็อกต้นทาง ใครคือผู้ชนะ อัลกอริทึมการเลือกนี้จำเป็นต้องได้รับการคำนวณระยะหนึ่ง กระบวนการคำนวณตัวสร้างบล็อกสามารถถือเป็นกระบวนการหลังการตรวจสอบของ VRF ดังนั้น Cardano จึงถือเป็น "ความลับ การเลือกตั้ง".
กุญแจสำคัญอยู่ที่การสร้างตัวเลขสุ่มในบล็อกการกำเนิด ซึ่งจำเป็นต้องสุ่มมากพอที่โหนดจะจดจำได้ Cardano ใช้ขั้นตอนการเปิดเผยความลับเพื่อให้แต่ละโหนดอัปโหลดหมายเลขสุ่มของตนเองที่สร้างขึ้นจากสถานะของเครื่อง หลังจากเปิดเผยความลับแล้ว หมายเลขสุ่มเหล่านี้จะถูกรวมเข้าด้วยกันเพื่อสร้างสตริงสุ่ม นี่คือกระบวนการสร้างตัวเลขสุ่ม
กระบวนการเปิดเผยความลับมีความซับซ้อนมากขึ้น ขั้นแรก ก่อนขั้นตอนการสร้างบล็อกสล็อต โหนดทั้งหมดที่เลือกตาม Equity (ตามขนาดการจำนอง) จะคำนวณสตริงแบบสุ่มอย่างลับๆ จากนั้นทำการเข้ารหัสที่ซับซ้อนบนสตริงนี้ และ ข้อความเข้ารหัสที่เข้ารหัสจะถูกส่งไปยังเครือข่ายทั้งหมด (การไม่แพร่ภาพถือเป็นการละเว้นในยุคต่อไป) และสัญญาว่าจะอธิบายความลับ จากนั้น ในกระบวนการสร้างบล็อกสล็อต โหนดจะเปิดเผยข้อมูลเปิด ซึ่งมีการถอดรหัสและหมายเลขสุ่มดั้งเดิม ซึ่งสามารถใช้ตรวจสอบหมายเลขสุ่มของโหนดได้ ด้วยวิธีนี้ จึงรับประกันได้ว่าก่อนที่จะสร้างหมายเลขสุ่ม โหนดได้เตรียมหมายเลขสุ่มไว้แล้วและไม่ได้แก้ไข แทนที่จะสร้างหลังจากได้รับความลับของคนอื่น เพราะนั่นอาจรบกวนทางอ้อมกับการสร้างหมายเลขสุ่ม ตัวเลขจึงควบคุมพื้นที่ blockchain ทางอ้อม
แต่มีปัญหาคือ Nodes ไม่สามารถส่ง Open และ Random Number ในช่วงที่เปิดเผยได้ ซึ่งอาจทำให้ Mobile มี Node Random Number เพียงพอ ไม่สามารถสร้าง Genesis Block ได้ และในที่สุด Blockchain ก็จะหยุดทำงาน เพื่อต้านทานความเสี่ยงนี้ Cardano กำหนดเงื่อนไขว่าโหนดต้องแบ่ง Open ออกเป็นหลายส่วนที่ใช้ร่วมกันตามอัลกอริทึมในขั้นตอนของการส่งข้อความไซเฟอร์ที่เข้ารหัส และใช้รหัสสาธารณะของผู้ผลิตบล็อกในยุคนี้เพื่อเข้ารหัส เมื่อโหนดหนีออกไป โหนดที่สร้างบล็อกสามารถใช้คีย์ส่วนตัวของตัวเองเพื่อถอดรหัสชิ้นส่วนของ Open แล้วรวม Open เข้าด้วยกัน
และอัลกอริทึมสำหรับการแยก Open เรียกว่าการแบ่งปันความลับที่ตรวจสอบได้ VSS (การแบ่งปันความลับที่ตรวจสอบได้) หลังจากแบ่ง Open แล้ว เป็นไปไม่ได้ที่จะเห็นภาพรวมของ Open ด้วยการกินชิ้นส่วน ดังนั้นผู้ผลิตบล็อกจึงไม่สามารถรับหมายเลขสุ่มนี้ล่วงหน้าได้ ในขณะเดียวกัน ข้อดีของอัลกอริทึม VSS นี้ก็คล้ายกับอัลกอริทึม BLS ที่ DFINITY ใช้ ไม่จำเป็นต้องนำแฟรกเมนต์ทั้งหมดมารวมกัน และแฟรกเมนต์เพียงบางส่วนเท่านั้นที่สามารถกู้คืน Open ที่สมบูรณ์ได้
ข้อได้เปรียบ:

ข้อได้เปรียบ:
- การสุ่มที่ดีและความปลอดภัยสูง 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- กลุ่มการตรวจสอบจะถูกกำหนดเป็นอันดับแรกและจัดเรียงตามขนาดของสเตค ดังนั้นการกระจายอำนาจจึงแย่กว่าเล็กน้อย 
- การสมรู้ร่วมคิดระหว่างโหนดเป็นไปได้ 
- ชื่อระดับแรก 
VDF+Randao
ดังที่กล่าวไว้ใน Hash Collision เนื่องจากความโปร่งใสของข้อมูลบล็อกจึงเป็นเรื่องยากสำหรับตัวเลขสุ่มภายใต้กลไก PoW ที่จะใช้เป็น seed ในสัญญาชั้นบน ปัญหานี้ยังมีอยู่ใน Ethereum 1.0 ดังนั้น บางคนจึงพิจารณาใช้องค์กรที่กระจายอำนาจเพื่อรวบรวมเมล็ดพันธุ์ในลักษณะที่กระจายเพื่อให้ได้หมายเลขสุ่มที่ปลอดภัยและคาดเดาไม่ได้ในสัญญา นี่คือ Randao ดังที่กล่าวไว้ข้างต้น แม้ว่าการออกแบบทางเศรษฐกิจจะจำกัดการสมรู้ร่วมคิด แต่ก็ยังมีความเสี่ยงของ "การโจมตีโดยผู้เข้าร่วมคนสุดท้าย" และ "การโจมตีแบบขยาย"
การโจมตีของผู้เข้าร่วมคนสุดท้าย: คนสุดท้ายที่เข้าร่วม Randao สามารถทำนายตัวเลขสุ่มในอนาคต ดังนั้นเขาจึงสามารถเลือกที่จะไม่เปิดเผยความลับและแทรกแซงได้
การโจมตีแบบขยาย: ดำเนินการโจมตีผู้เข้าร่วมคนสุดท้ายหลาย ๆ ครั้งเพื่อขยายการรบกวนเป็นจำนวนสุ่ม ซึ่งจะเป็นการควบคุมองค์กรในเวลาสั้น ๆ
ในโครงการ Ethereum 2.0 ที่เพิ่งประกาศไปเมื่อเร็วๆ นี้ สำหรับการพิจารณาประสิทธิภาพ จำเป็นต้องใช้ PoS แทน PoW ดังนั้นจึงจำเป็นต้องใช้ตัวเลขสุ่มเพื่อเลือกคุณสมบัติของบล็อก หมายเลขสุ่มทำงานบนห่วงโซ่เดียวที่เรียกว่า "beacon chain" หมายเลขสุ่มที่สร้างขึ้นจะถูกใช้เพื่อสุ่มควบคุมองค์ประกอบของชิ้นส่วนเพื่อให้เกิดความเท่าเทียมของหลายชิ้นส่วนและขยายประสิทธิภาพของ Ethereum ดังนั้น ตัวเลขสุ่มจึงกลายเป็นพื้นฐานสำคัญสำหรับการอัปเกรด Ethereum ซึ่งเกี่ยวข้องกับความยุติธรรมของการแยกย่อยและความเป็นไปได้ของการยืนยันขั้นสุดท้าย
Sharding Scheme ของ PoW นั้นซับซ้อนเกินไป ดังนั้น Ethereum 2.0 จึงขึ้นอยู่กับ PoS และเช่นเดียวกันกับตัวเลขสุ่ม ดังนั้น Ethereum 2.0 จึงไม่สามารถใช้การชนกันของแฮชเพื่อให้ได้ตัวเลขสุ่มที่ชั้นฉันทามติ ยืมแนวคิดมาจาก Randao แต่เพื่อแก้ปัญหาสองข้อที่กล่าวถึงข้างต้น จึงมีการแนะนำฟังก์ชัน VDF (Verifiable Delay Function) เพื่อให้ตัวเลขสุ่มที่สร้างโดย Randao ต้องใช้เวลานานกว่าจะได้ผลลัพธ์ ซึ่งค่อนข้างยากที่จะคำนวณ และต้องรอหลายช่วงตึก รันตามลำดับ ดังนั้นเมื่อความลับถูกส่งไปใน Randao ในตอนเริ่มต้น ผู้โจมตีจะไม่สามารถคาดเดาผลกระทบของการกินความลับของตัวเองต่อสถานะสุดท้ายของ- เทคโนโลยีศิลปะและไม่สามารถเปิดการโจมตีข้างต้นได้
ให้ฉันแนะนำ Randao ก่อน โหนดบน Ethereum 2.0 มีสิทธิ์เข้าร่วม Randao โดยการจดจำนอง 32 ETH ทุกครั้งที่พวกเขาได้รับเมล็ดหมายเลขสุ่ม โหนดที่เข้าร่วมใน Randao จะอ่านหมายเลขลับในใจอย่างเงียบ ๆ แล้วเข้ารหัสและออกอากาศ มัน. หลังจากที่ทุกคนได้รับไซเฟอร์เท็กซ์ของคนอื่นแล้ว โหนดต่างๆ จะเปิดเผยความลับทีละอัน และตัวเลขสุ่มจะรวมกันด้วยวิธีหนึ่ง ซึ่งสามารถใช้เป็นเมล็ดตัวเลขสุ่มเพื่อสร้างตัวเลขสุ่มสุดท้าย สิ่งนี้เหมือนกับการเล่นบริดจ์ ขั้นแรก ไพ่จะถูกแจกโดยคว่ำหน้าให้กับผู้เล่น จากนั้นไพ่จะถูกเปิดเผยทีละใบเมื่อเปิดไพ่ เพื่อป้องกันไม่ให้ผู้เข้าร่วมคนสุดท้ายทำนายผลลัพธ์และแทรกแซง VDF จึงถูกเลือก เพื่อสร้างหมายเลขสุ่มสุดท้าย
และ VDF นี้มีลักษณะดังต่อไปนี้:
1. การคำนวณยากและผลลัพธ์ล่าช้า ขั้นตอนการคำนวณของ VDF นั้นค่อนข้างซับซ้อนและใช้เวลานานกว่าจะได้ผลลัพธ์ ดังนั้นจึงเป็นเรื่องยากมากที่จะทำนายผลลัพธ์ได้อย่างรวดเร็วหากตั้งเวลาหน่วงไว้นานพอ
2. การยืนยันอย่างง่าย กระบวนการเรียกใช้ VDF อาจยุ่งยากและใช้เวลานาน แต่ต้องตรวจสอบผลลัพธ์อย่างรวดเร็ว
3. ความต่อเนื่อง การคำนวณ VDF ดำเนินการทีละขั้นตอน ในการคำนวณผลลัพธ์สุดท้ายต้องทำทีละขั้นตอน ไม่สามารถดำเนินการแบบเร่งความเร็วแบบขนานได้ แม้ว่าผู้โจมตีจะมีหลายเครื่อง เขาไม่สามารถทำนายผลลัพธ์ได้ในเวลาอันสั้น
ตัวอย่างเช่น หลังจากใช้จำนวนเต็มยาวยกกำลัง 10 อย่างต่อเนื่อง ให้หาเศษที่เหลือของจำนวนเฉพาะจำนวนมาก แล้วทำตามขั้นตอนข้างต้นอย่างต่อเนื่องหลายร้อยครั้ง นี่คือฟังก์ชันของ VDF ดังนั้นอัลกอริทึมสำหรับการคำนวณกำลังจึงทำได้ยากและต้องรู้ผลลัพธ์ก่อนหน้าก่อนจึงจะทำการคำนวณครั้งต่อไปได้หลายรอบ ดังนั้น ผลลัพธ์สุดท้ายของอัลกอริทึมนี้จึงไม่สามารถคำนวณได้อย่างรวดเร็วและต้องทำทีละขั้นตอน ก้าวอย่างตรงไปตรงมา ดำเนินการ ในขณะเดียวกัน เนื่องจากสถาปัตยกรรมคอมพิวเตอร์ของมนุษย์ แม้ว่าคุณจะแตกต่างกันมาก ความยากของการคำนวณนี้จะไม่เปลี่ยนแปลงแบบทวีคูณ และยังคงเป็นเรื่องยากมากที่จะแก้ไข ความไม่แน่นอนนี้ช่วยให้มั่นใจในความปลอดภัยของตัวเลขสุ่ม
ความจริงแล้วส่วนข้างต้นเป็นเพียงอัลกอริทึมสำหรับคำนวณผลลัพธ์เท่านั้น VDF ควรมีอัลกอริทึมสำหรับตรวจสอบผลลัพธ์ด้วย ผลลัพธ์ของ VDF ไม่ใช่แค่ตัวเลขสุ่มเท่านั้นแต่ยังเป็นการตรวจสอบหมายเลขสุ่มซึ่งสามารถทำได้อย่างรวดเร็ว ตรวจสอบโดยโหนดใด ๆ

ข้อได้เปรียบ:
ข้อได้เปรียบ:
- ปัจจุบันเป็นตัวเลขสุ่มหลอกที่คาดเดาได้ยากที่สุดในบล็อกเชน ความแข็งแกร่งของตัวเลขสุ่มนั้นสูงมาก แต่อ่อนแอกว่า POW 
- ตัวเลขสุ่มอย่างเคร่งครัดตามลำดับอนุกรมการดำเนินการต่อต้านขนานเร่ง; 
- ข้อบกพร่อง: 
ข้อบกพร่อง:
- กระบวนการคำนวณ VDF นั้นยากมาก ประสิทธิภาพในการรับตัวเลขสุ่มต่ำมาก และสูญเสียประสิทธิภาพการคำนวณไปมาก 
- แม้ว่าการคำนวณจะยากมาก แต่ก็ไม่ทนทานต่อการคำนวณแบบควอนตัมเท่ากับ PoW และอาจเสียหายได้ 
- สรุป 
สรุป
นักสถิติ Francis Galton เขียนใน Nature ในปี 1890 ว่า "ในฐานะเครื่องมือในการเลือกการสุ่ม ฉันพบว่าไม่มีอะไรเหนือกว่าลูกเต๋า"
มนุษย์พยายามสรุปการสุ่มด้วยกฎหมายอยู่ตลอดเวลา แต่การสุ่มใหม่ ๆ จะปรากฏขึ้นภายใต้กฎหมายใหม่ ๆ เรารู้สึกประหลาดใจกับความผิดปกติและการสุ่มของโลกควอนตัมซึ่งกระตุ้นความอยากรู้อยากเห็นของเราในการสำรวจ อาจกล่าวได้ว่าความเข้าใจเกี่ยวกับตัวเลขสุ่มคือประวัติศาสตร์ของความก้าวหน้าของมนุษย์ การแสวงหา ตัวเลขสุ่มไม่เพียงดึงดูดวิทยาศาสตร์เท่านั้น
ในเวลาเดียวกัน เราได้สร้างโลกเสมือนจริงแบบไบนารี เราต้องการจำลองและคัดลอกจักรวาลของเราให้มากที่สุดเท่าที่จะเป็นไปได้ในโลกนี้ และรับตัวเลขสุ่มที่น่าอัศจรรย์และลึกลับในธรรมชาติด้วย สิ่งนี้มีความสำคัญอย่างยิ่ง—ด้วยเครื่อง ตัวเลขสุ่มจริง ๆ เราสามารถมอบชีวิตให้กับโลกเสมือนได้หรือไม่? เราสามารถจำลอง "เจตจำนงเสรี" ได้หรือไม่? เป็นไปได้ไหมที่มนุษย์เราจะอยู่รอดในระบบเสมือนจริง?
การสุ่มในจักรวาลคือความยุติธรรมที่ยิ่งใหญ่ที่สุดของชีวิต และตัวเลขสุ่มบนบล็อกเชนจะกลายเป็นการแสวงหาความยุติธรรมพื้นฐานและใช้งานง่ายที่สุดสำหรับมนุษย์ อดีตได้รับการตัดสิน ปัจจุบันกำลังเกิดขึ้น อนาคตเป็นสิ่งที่สุ่มโดยทั่วไป และโลกบนบล็อกเชนก็เช่นกัน
หมายเลขสุ่มที่ทำงานบนเครื่อง 01 และทุกสิ่งในโลกสามารถรับรู้ได้นั้นไม่เคยมีเสน่ห์เท่านี้มาก่อนที่จะมีบล็อกเชน


