Chính thức xác minh các thông số kỹ thuật của Ethereum 2.0 Giai đoạn 0

blog 1Tin tứcDevelopersEnterpriseBlockchain ExplainedEvents and ConferencePressBản tin

Theo dõi bản tin của chúng tôi.

Địa chỉ email

Chúng tôi tôn trọng quyền riêng tư của bạn

Trang chủBlogBlockchain phát triển

Chính thức xác minh các thông số kỹ thuật của Ethereum 2.0 Giai đoạn 0

Bản cập nhật từ ConsenSys R&D về nỗ lực của họ để mang lại sự đáng tin cậy cho Beacon Chain và các nền tảng cốt lõi của Eth2. bởi Franck Cassez Ngày 10 tháng 8 năm 2020Đăng vào ngày 10 tháng 8 năm 2020

dafny xác minh anh hùng blog

Nhóm xác minh tự động trên ConsenSys R&D đã làm việc trên một đặc điểm kỹ thuật và xác minh chính thức của Beacon Chain trong một vài tháng. Chúng tôi vui mừng thông báo rằng rất nhiều tiến bộ đã được thực hiện và mặc dù chưa hoàn thành nhưng chúng tôi đã cố gắng phát triển một hạt nhân vững chắc và đã được xác minh chính thức của Beacon Chain. Lần đầu tiên, công việc của chúng tôi cung cấp mức độ đáng tin cậy chưa từng có đối với nền tảng cốt lõi của cơ sở hạ tầng Eth2.0.

Phương pháp luận

Xác minh so với Kiểm tra

Chúng tôi đã sử dụng đoạt giải thưởng ngôn ngữ lập trình nhận biết xác minh Dafny viết một chính thức (chức năng và logic) sự chỉ rõ của mỗi chức năng Beacon Chain, một thực hiện của mỗi chức năng và bằng chứng rằng việc triển khai tuân theo đặc điểm kỹ thuật của nó. Nói cách khác, chúng tôi đã xác minh bằng toán học về việc không có lỗi. Các triển khai mà cuối cùng chúng tôi đã chứng minh là đúng dựa trên thông số kỹ thuật chính thức của Eth2.0 với cảnh báo rằng chúng tôi đã sửa và báo cáo một số lỗi và sự mâu thuẫn.

Phương pháp của chúng tôi khác với thử nghiệm khi chúng tôi chứng minh bằng toán học sự phù hợp của các chức năng với các thông số kỹ thuật của chúng, để tất cả các yếu tố đầu vào. Kiểm tra không thể phạm vi trên vô số đầu vào và do đó có thể phát hiện ra lỗi nhưng không chứng minh được sự vắng mặt của lỗi.

Và điều tốt nhất là chúng tôi không cần phải xuất bản một bài báo cũng như không cần xem xét các bản chứng minh. Các bằng chứng là một phần của cơ sở mã và được viết dưới dạng chương trình. Có, trong Dafny, bạn có thể viết bằng chứng là một chương trình thân thiện với nhà phát triển. Ngoài ra, các bằng chứng được kiểm tra một cách máy móc bằng một câu châm ngôn về định lý, không có chỗ cho những chứng minh không đầy đủ hoặc thiếu sót.

Thuộc tính chúng tôi đã chứng minh 

Các thuộc tính có phạm vi từ sự vắng mặt của số học dưới / trànchỉ số nằm ngoài giới hạn, sự phù hợp của mỗi chức năng với điều kiện trước / sau lôgic (lôgic bậc nhất) (ví dụ về merkelise ở đây), đến những thứ phức tạp hơn liên quan đến các thành phần của chức năng. Ví dụ, chúng tôi có những điều sau đây tài sản của SSZ Serialise / Deserialise các hàm: đối với mỗi đối tượng x, Deserialise (Serialise (x)) = x, tức là deserialising một đối tượng được tuần tự hóa trả về đối tượng ban đầu. Chúng tôi cũng đã thiết lập một số bất biến, và sử dụng chúng để chứng minh rằng các hoạt động cốt lõi của Beacon Chain và ForkChoice (state_transition, on_block) thực ra xây dựng một chuỗi các khối: đối với bất kỳ khối b nào trong cửa hàng, tổ tiên của b tạo thành một chuỗi hữu hạn có thứ tự hoàn toàn dẫn đến khối gốc, là thuộc tính chính của blockchain!

Lợi ích của việc xác minh chính thức

Bất kỳ nhà phương pháp chính thức nào cũng sẽ nhấn mạnh rằng xác minh là phương pháp bảo mật tốt nhất. Đây chính xác là cách phương pháp này đảm bảo một cơ sở hạ tầng an toàn và đáng tin cậy cho Ethereum 2.0.


Đặc điểm kỹ thuật chức năng

Đầu tiên, chúng tôi đã nâng các thông số kỹ thuật chính thức của Eth2.0 lên thành đặc điểm kỹ thuật logic và chức năng chính thức. Đối với mỗi chức năng, chúng tôi chính thức xác định những gì hàm được mong đợi để tính toán, không phải như thế nào. Điều này cung cấp thông số kỹ thuật tham chiếu thân thiện với nhà phát triển theo ngôn ngữ bất khả tri có thể được sử dụng để phát triển các triển khai an toàn hơn, với ít nỗ lực hơn. 

Môđun

Thứ hai, thông số kỹ thuật, triển khai và kiến ​​trúc bằng chứng của chúng tôi là mô-đun. Do đó, chúng ta có thể dễ dàng thử nghiệm với các triển khai mới (ví dụ: tối ưu hóa) và kiểm tra tác động của chúng đối với hệ thống tổng thể. Hãy nghĩ về một cách hack thông minh để thực hiện một chức năng? Thay đổi cách triển khai và yêu cầu Dafny kiểm tra xem nó có còn phù hợp với đặc điểm kỹ thuật của nó hay không. Nếu có, các bằng chứng của các thành phần sử dụng chức năng này sẽ không bị ảnh hưởng.

Khả năng thực thi

Thứ ba, việc triển khai của chúng tôi là có thể thực thi. Chúng tôi có thể biên dịch và chạy một chương trình Dafny. Tốt hơn nữa, bạn có thể tự động Tạo mã trong một số ngôn ngữ lập trình phổ biến như C #, Go (và sắp tới là Java) từ mã Dafny. Điều này có thể được sử dụng để bổ sung cho các cơ sở mã hiện có hoặc để tạo kiểm tra chứng nhận. Việc triển khai sẽ được kiểm tra có thể sử dụng các hàm đã được chứng minh là đúng của chúng tôi để tính toán kết quả mong đợi của một bài kiểm tra và kiểm tra nó với kết quả của chính nó.   

Mọi thứ bằng một ngôn ngữ duy nhất

Cuối cùng nhưng không kém phần quan trọng, cơ sở mã của chúng tôi là khép kín. Nó chứa các thông số kỹ thuật, triển khai, tài liệu và bằng chứng, tất cả đều bằng một ngôn ngữ lập trình duy nhất, có thể đọc được, đơn giản và được xác định rõ về mặt ngữ nghĩa.

Câu hỏi và Cân nhắc 

Còn về độ tốt của công cụ xác minh?

Bạn có thể tự hỏi, “điều gì sẽ xảy ra nếu trình biên dịch / trình xác minh Dafny bị lỗi?” Chúng tôi thực sự biết Dafny là lỗi (vấn đề về repo dafny), nhưng chúng tôi không dựa vào việc không có lỗi trong Dafny. Chúng tôi dựa vào Dafny (và công cụ xác minh của nó) để âm thanh. Hợp lý có nghĩa là khi Dafny báo cáo rằng các bằng chứng là đúng, chúng thực sự chính xác. 

Điều gì xảy ra nếu thông số kỹ thuật chúng tôi đã viết không đúng? 

Trong trường hợp này, chúng tôi sẽ chứng minh sự phù hợp với một yêu cầu sai. Có, điều này có thể xảy ra và không có viên đạn bạc nào để khắc phục sự cố này. Tuy nhiên, như chúng tôi đã đề cập trước đây, Dafny có thể thực thi được. Điều này cho phép chúng tôi chạy mã và tự tin rằng thông số kỹ thuật của chúng tôi là đúng. Và thông số kỹ thuật của chúng tôi được viết theo logic bậc nhất không có chỗ để tranh cãi về ý nghĩa, vì vậy nếu bạn nhận thấy vấn đề, hãy cho chúng tôi biết và chúng tôi sẽ khắc phục sự cố.

Điều gì sẽ xảy ra nếu Dafny không thể chứng minh rằng việc triển khai tuân theo một đặc điểm kỹ thuật? 

Điều này có thể xảy ra, nhưng trong trường hợp này Dafny có một số cơ chế phản hồi để giúp điều tra những bước nào của một bằng chứng không thể được xác minh. Và cho đến nay, chúng tôi luôn cố gắng xây dựng các bằng chứng để Dafny có thể tự động kiểm tra.

Chúng tôi hoan nghênh phản hồi của bạn, vì vậy vui lòng kiểm tra kho eth2.0-dafny của chúng tôi. Chúng tôi rất vui khi thấy sự phát triển của Ethereum 2.0 đạt đến các mốc quan trọng gần đây của testnet và chúng tôi mong muốn được làm việc với các nhóm trên toàn hệ sinh thái để đảm bảo giai đoạn tiếp theo của mạng được xây dựng trên một nền tảng vững chắc.

Lời cảm ơn: Cảm ơn các đồng đội của tôi là Joanne Fuller, Roberto Saltini (nhóm Xác minh tự động), Nicolas Liochon và Avery Erwin đã nhận xét về phiên bản sơ bộ của bài đăng này.

Theo kịp Ethereum 2.0

Đăng ký nhận bản tin ConsenSys để nhận tin tức Eth2 mới nhất về hộp thư đến của bạn. Ethereum 2.0 Nghiên cứu và Phát triển Bảo mật Bản tin Đăng ký nhận bản tin của chúng tôi để nhận tin tức Ethereum mới nhất, các giải pháp doanh nghiệp, tài nguyên dành cho nhà phát triển và hơn thế nữa.Cách xây dựng một sản phẩm chuỗi khối thành côngHội thảo trên web

Cách xây dựng một sản phẩm chuỗi khối thành công

Cách thiết lập và chạy Ethereum NodeHội thảo trên web

Cách thiết lập và chạy Ethereum Node

Cách xây dựng API Ethereum của riêng bạnHội thảo trên web

Cách xây dựng API Ethereum của riêng bạn

Cách tạo mã thông báo xã hộiHội thảo trên web

Cách tạo mã thông báo xã hội

Sử dụng các công cụ bảo mật trong phát triển hợp đồng thông minhHội thảo trên web

Sử dụng các công cụ bảo mật trong phát triển hợp đồng thông minh

Tương lai của tài sản kỹ thuật số tài chính và DeFiHội thảo trên web

Tương lai của tài chính: Tài sản kỹ thuật số và DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map