การตรวจสอบข้อมูลจำเพาะ Ethereum 2.0 Phase 0 อย่างเป็นทางการ

บล็อก 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressจดหมายข่าว

Contents

สมัครรับจดหมายข่าวของเรา.

ที่อยู่อีเมล

เราเคารพความเป็นส่วนตัวของคุณ

หน้าแรกบล็อกการพัฒนา Blockchain

การตรวจสอบข้อมูลจำเพาะ Ethereum 2.0 Phase 0 อย่างเป็นทางการ

การอัปเดตจาก ConsenSys R&D เกี่ยวกับความพยายามที่จะนำความน่าเชื่อถือมาสู่ Beacon Chain และรากฐานหลักของ Eth2 โดย Franck Cassez สิงหาคม 10, 2020 โพสต์เมื่อสิงหาคม 10, 2020

dafny ตรวจสอบบล็อกฮีโร่


ทีมตรวจสอบอัตโนมัติใน ConsenSys R&D ได้ดำเนินการเกี่ยวกับข้อกำหนดอย่างเป็นทางการและการตรวจสอบ Beacon Chain เป็นเวลาสองสามเดือน เรายินดีที่จะรายงานว่ามีความคืบหน้ามากมายและแม้ว่าจะยังไม่เสร็จสมบูรณ์ แต่เราก็สามารถพัฒนาได้ เคอร์เนลที่มั่นคงและผ่านการตรวจสอบอย่างเป็นทางการของ Beacon Chain. เป็นครั้งแรกที่งานของเรามอบความน่าเชื่อถือในระดับที่ไม่มีใครเทียบให้กับรากฐานหลักของโครงสร้างพื้นฐาน Eth2.0.

ระเบียบวิธี

การยืนยันเทียบกับการทดสอบ

เราใช้ไฟล์ ได้รับรางวัล ภาษาโปรแกรมการตรวจสอบความถูกต้อง Dafny เขียนไฟล์ เป็นทางการ (ใช้งานได้และมีเหตุผล) สเปค ของแต่ละฟังก์ชัน Beacon Chain ไฟล์ การนำไปใช้งาน ของแต่ละฟังก์ชันและก หลักฐาน ว่าการใช้งานเป็นไปตามข้อกำหนด กล่าวอีกนัยหนึ่งเราได้ตรวจสอบทางคณิตศาสตร์แล้วว่าไม่มีจุดบกพร่อง การใช้งานที่เราพิสูจน์แล้วว่าถูกต้องในที่สุดจะขึ้นอยู่กับ ข้อกำหนด Eth2.0 อย่างเป็นทางการ ด้วยข้อแม้ที่เราได้แก้ไขและรายงานข้อบกพร่องและความไม่สอดคล้องกันบางอย่าง.

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

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

คุณสมบัติที่เราพิสูจน์แล้ว 

คุณสมบัติมีตั้งแต่ไม่มี เลขคณิตภายใต้ / ล้น และ ดัชนีนอกขอบเขต, ความสอดคล้องของแต่ละฟังก์ชันกับตรรกะ (ลอจิกลำดับที่หนึ่ง) เงื่อนไขก่อน / หลัง (ตัวอย่างสินค้าที่นี่) ไปจนถึงส่วนที่ซับซ้อนมากขึ้นซึ่งเกี่ยวข้องกับองค์ประกอบของฟังก์ชัน ตัวอย่างเช่นเรามีดังต่อไปนี้ ทรัพย์สินของ SSZ Serialise / Deserialise ฟังก์ชัน: สำหรับแต่ละอ็อบเจ็กต์ x, Deserialise (Serialise (x)) = x, เช่น deserializing a serialized object จะส่งคืนอ็อบเจกต์ดั้งเดิม เรายังได้จัดตั้งไฟล์ จำนวนคงที่, และใช้มันเพื่อพิสูจน์ว่าการทำงานหลักของ Beacon Chain และ ForkChoice (state_transition, on_block) จริง สร้างห่วงโซ่ของบล็อก: สำหรับบล็อก b ใด ๆ ในร้านค้าบรรพบุรุษของ b จะสร้างลำดับที่ จำกัด ทั้งหมดซึ่งนำไปสู่บล็อกการกำเนิดซึ่งเป็นคุณสมบัติหลักของบล็อกเชน!

ประโยชน์ของการยืนยันอย่างเป็นทางการ

วิธีการที่เป็นทางการใด ๆ จะยืนยันว่าการตรวจสอบเป็นแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย นี่คือวิธีที่วิธีการนี้ทำให้มั่นใจได้ว่าโครงสร้างพื้นฐานที่ปลอดภัยและน่าเชื่อถือสำหรับ Ethereum 2.0.

ข้อกำหนดการใช้งาน

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

ความเป็นโมดูลาร์

ประการที่สองข้อกำหนดการใช้งานและสถาปัตยกรรมการพิสูจน์ของเราคือ โมดูลาร์. ส่งผลให้เราสามารถทำได้อย่างง่ายดาย ทดลองใช้งานใหม่ ๆ (เช่นการเพิ่มประสิทธิภาพ) และตรวจสอบผลกระทบที่มีต่อระบบโดยรวม คิดถึงแฮ็คที่ชาญฉลาดในการใช้ฟังก์ชันหรือไม่? เปลี่ยนการใช้งานและขอให้ Dafny ตรวจสอบว่ายังคงเป็นไปตามข้อกำหนด หากเป็นเช่นนั้นการพิสูจน์ส่วนประกอบที่ใช้ฟังก์ชันนี้จะไม่ได้รับผลกระทบ.

ความสามารถในการปฏิบัติการ

ประการที่สามการใช้งานของเราคือ ปฏิบัติการได้. เราสามารถรวบรวมและรันโปรแกรม Dafny ยิ่งไปกว่านั้นคุณทำได้ โดยอัตโนมัติ สร้างรหัส ในภาษาโปรแกรมยอดนิยมบางภาษาเช่น C #, Go (และเร็ว ๆ นี้ Java) จากรหัส Dafny สามารถใช้เพื่อเสริมฐานรหัสที่มีอยู่หรือเพื่อสร้าง การทดสอบที่ได้รับการรับรอง. การใช้งานที่จะทดสอบสามารถใช้ฟังก์ชันที่ได้รับการพิสูจน์แล้วของเราเพื่อคำนวณผลลัพธ์ที่คาดหวังของการทดสอบและตรวจสอบกับผลลัพธ์ของมันเอง.   

ทุกอย่างเป็นภาษาเดียว

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

คำถามและข้อควรพิจารณา 

สิ่งที่เกี่ยวกับความสมบูรณ์ของกลไกการตรวจสอบ?

คุณอาจสงสัยว่า“ ถ้าคอมไพเลอร์ / ตัวตรวจสอบ Dafny เป็นบั๊กกี้ล่ะ?” เรารู้จริงว่า Dafny เป็นรถ (ปัญหา repo dafny) แต่เราไม่ได้อาศัยจุดบกพร่องใน Dafny เราพึ่งพา Dafny (และเครื่องมือตรวจสอบ) ที่จะเป็น เสียง. ความสมเหตุสมผลหมายความว่าเมื่อ Dafny รายงานว่าการพิสูจน์ถูกต้องแสดงว่าถูกต้องแน่นอน. 

จะเป็นอย่างไรถ้าสเปคที่เราเขียนไว้ไม่ถูกต้อง? 

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

จะเกิดอะไรขึ้นถ้า Dafny ไม่สามารถพิสูจน์ได้ว่าการใช้งานเป็นไปตามข้อกำหนด? 

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

เรายินดีรับฟังความคิดเห็นของคุณดังนั้นโปรดตรวจสอบ ที่เก็บ eth2.0-dafny ของเรา. เรารู้สึกตื่นเต้นที่ได้เห็นการพัฒนา Ethereum 2.0 บรรลุเป้าหมายของเครือข่ายการทดสอบล่าสุดและเราหวังว่าจะได้ทำงานร่วมกับทีมงานทั่วทั้งระบบนิเวศเพื่อให้แน่ใจว่าเครือข่ายขั้นต่อไปจะถูกสร้างขึ้นบนรากฐานที่มั่นคง.

การรับทราบ: ขอบคุณเพื่อนร่วมทีมของฉัน Joanne Fuller, Roberto Saltini (ทีมตรวจสอบอัตโนมัติ), Nicolas Liochon และ Avery Erwin สำหรับความคิดเห็นเกี่ยวกับเวอร์ชันเบื้องต้นของโพสต์นี้.

ติดตาม Ethereum 2.0

สมัครรับจดหมายข่าว ConsenSys เพื่อรับข่าวสารล่าสุดของ Eth2 ตรงไปยังกล่องจดหมายของคุณ. Ethereum 2.0 การวิจัยและพัฒนาความปลอดภัยจดหมายข่าวสมัครรับจดหมายข่าวของเราเพื่อรับข่าวสารล่าสุดของ Ethereum โซลูชันระดับองค์กรทรัพยากรสำหรับนักพัฒนาและอื่น ๆ ที่อยู่อีเมลเนื้อหาพิเศษวิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จการสัมมนาผ่านเว็บ

วิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จ

วิธีการตั้งค่าและเรียกใช้โหนด Ethereumการสัมมนาผ่านเว็บ

วิธีการตั้งค่าและเรียกใช้โหนด Ethereum

วิธีสร้าง Ethereum API ของคุณเองการสัมมนาผ่านเว็บ

วิธีสร้าง Ethereum API ของคุณเอง

วิธีสร้างโซเชียลโทเค็นการสัมมนาผ่านเว็บ

วิธีสร้างโซเชียลโทเค็น

การใช้เครื่องมือรักษาความปลอดภัยในการพัฒนาสัญญาอัจฉริยะการสัมมนาผ่านเว็บ

การใช้เครื่องมือรักษาความปลอดภัยในการพัฒนาสัญญาอัจฉริยะ

อนาคตของการเงินสินทรัพย์ดิจิทัลและ DeFiการสัมมนาผ่านเว็บ

อนาคตของการเงิน: สินทรัพย์ดิจิทัลและ DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me