블로그 1뉴스 개발자 엔터프라이즈 블록 체인 설명 이벤트 및 컨퍼런스 보도 자료뉴스 레터

뉴스 레터 구독.

이메일 주소

우리는 귀하의 개인 정보를 존중합니다

홈 블로그 블록 체인 개발

Ethereum 2.0 Phase 0 사양의 공식 확인

ConsenSys R의 업데이트&Beacon Chain과 Eth2의 핵심 기반에 신뢰성을 제공하려는 노력에 대해 D. by Franck Cassez 8 월 10, 2020Posted on August 10, 2020

dafny 블로그 영웅 확인

ConsenSys R의 자동 검증 팀&D는 몇 달 동안 비콘 체인의 공식 사양 및 검증 작업을 해왔습니다. 우리는 많은 진전이 이루어졌고 아직 완료되지는 않았지만 비콘 체인의 견고하고 공식적으로 검증 된 커널. 처음으로 우리의 작업은 Eth2.0 인프라의 핵심 기반에 탁월한 수준의 신뢰성을 제공합니다..

방법론

검증 vs. 테스트

우리는 수상 경력에 빛나는 검증 인식 프로그래밍 언어 Dafny 쓰기 형식적인 (기능적 및 논리적) 사양 각 비콘 체인 기능의 이행 각 기능의 증명 구현이 사양을 준수하는지 확인합니다. 즉, 버그가 없음을 수학적으로 확인했습니다. 우리가 결국 정확하다고 증명 한 구현은 다음을 기반으로합니다. 공식 Eth2.0 사양 일부 버그와 불일치를 수정하고보고했다는 경고와 함께.

우리의 방법론은 테스트와 다릅니다. 수학적으로 증명하다 사양에 대한 기능의 적합성 모두 입력. 테스트는 무한히 많은 입력을 넘을 수 없으며 결과적으로 버그를 발견 할 수 있지만 버그가 없음을 증명할 수는 없습니다..

그리고 가장 좋은 점은 논문을 출판하거나 증명을 검토 할 필요가 없다는 것입니다. 증명은 코드베이스의 일부이며 프로그램으로 작성됩니다. 예, Dafny에서는 개발자 친화적 인 프로그램으로 증명을 작성할 수 있습니다. 또한 증명은 기계적으로 확인됩니다. 정리 증명 자에 의해 불완전하거나 결함이있는 증명의 여지가 없습니다..

우리가 증명 한 재산 

속성은 부재에서 범위 산술 언더 / 오버플로범위를 벗어난 색인, 논리 (1 차 논리) 사전 / 사후 조건에 대한 각 함수의 적합성 (여기 상품 예시), 기능의 구성을 포함하는 더 복잡한 것. 예를 들어 다음이 있습니다. SSZ의 재산 직렬화 / 역 직렬화 함수 : 각 객체 x에 대해 Deserialise (Serialise (x)) = x, 즉 직렬화 된 객체를 역 직렬화하면 원래 객체가 반환됩니다. 우리는 또한 불변의 수, Beacon Chain과 ForkChoice (state_transition, on_block) 사실은 블록 체인 구축: 상점에있는 b 블록에 대해 b의 조상은 블록 체인의 주요 속성 인 제네시스 블록으로 이어지는 유한 한 완전 순서 시퀀스를 형성합니다.!

공식 검증의 이점

공식적인 감리 학자라면 검증이 보안 모범 사례라고 주장 할 것입니다. 이 방법론이 Ethereum 2.0을위한 안전하고 신뢰할 수있는 인프라를 보장하는 방법은 다음과 같습니다..

기능 사양

먼저 공식 Eth2.0 사양을 공식적인 논리적 및 기능적 사양. 각 기능에 대해 공식적으로 함수가 계산할 것으로 예상되는 것, 방법이 아닙니다. 이것은 제공합니다 언어에 구애받지 않는 개발자 친화적 인 참조 사양 적은 노력으로보다 안전한 구현을 개발하는 데 사용할 수 있습니다.. 

모듈성

둘째, 우리의 사양, 구현 및 증명 아키텍처는 모듈 식. 결과적으로 우리는 쉽게 새로운 구현으로 실험 (예 : 최적화) 전체 시스템에 미치는 영향을 확인합니다. 기능을 구현하는 영리한 해킹을 생각하십니까? 구현을 변경하고 Dafny에게 여전히 사양을 준수하는지 확인하도록 요청하십시오. 이 경우이 기능을 사용하는 구성 요소의 증명은 영향을받지 않습니다..

실행 가능성

셋째, 우리의 구현은 실행 가능. Dafny 프로그램을 컴파일하고 실행할 수 있습니다. 더 나은, 당신은 할 수 있습니다 자동으로 코드 생성 Dafny 코드에서 C #, Go (곧 Java)와 같은 일부 인기있는 프로그래밍 언어에서. 이는 기존 코드베이스를 보완하거나 생성하는 데 사용할 수 있습니다. 인증 테스트. 테스트 할 구현은 검증 된 올바른 함수를 사용하여 테스트의 예상 결과를 계산하고 자체 결과와 비교할 수 있습니다..   

단일 언어의 모든 것

마지막으로, 우리의 코드베이스는 자급 자족. 여기에는 사양, 구현, 문서 및 증명이 모두 하나의 읽기 가능하고 간단하며 의미 적으로 잘 정의 된 프로그래밍 언어로 포함됩니다..

질문 및 고려 사항 

검증 엔진의 건전성은 어떻습니까?

“Dafny 컴파일러 / 검증자가 버그가있는 경우 어떻게해야합니까?”라고 궁금해하실 수 있습니다. 실제로 Dafny가 버그가 있다는 것을 알고 있습니다 (dafny repo 문제), 그러나 우리는 Dafny의 버그 부재에 의존하지 않습니다. 우리는 Dafny (및 검증 엔진)에 의존하여 소리. 건전성은 Dafny가 증명이 정확하다고보고 할 때 실제로 정확함을 의미합니다.. 

우리가 작성한 사양이 맞지 않으면? 

이 경우 우리는 잘못된 요구 사항에 대한 적합성을 증명할 것입니다. 예, 이런 일이 발생할 수 있으며이 문제를 해결할 수있는 방법은 없습니다. 그러나 앞서 언급했듯이 Dafny는 실행 가능합니다. 이를 통해 코드를 실행하고 사양이 올바른지 확신 할 수 있습니다. 그리고 우리의 사양은 의미에 대한 논쟁의 여지없이 1 차 논리로 작성되었으므로 문제를 발견하면 알려 주시면 해결하겠습니다..

Dafny가 구현이 사양을 준수 함을 증명할 수없는 경우? 

이것은 발생할 수 있지만이 경우 Dafny는 증명의 어떤 단계를 검증 할 수 없는지 조사하는 데 도움이되는 몇 가지 피드백 메커니즘을 가지고 있습니다. 그리고 지금까지 우리는 항상 Dafny가 자동으로 확인할 수있는 증명을 구축했습니다..

여러분의 피드백을 환영합니다. eth2.0-dafny 저장소. 우리는 Ethereum 2.0 개발이 최근 테스트 넷 이정표에 도달하는 것을 보게되어 기뻤습니다. 우리는 생태계 전반에 걸쳐 팀과 협력하여 네트워크의 다음 단계가 견고한 기반 위에 구축 될 수 있기를 기대합니다..

감사의 말 :이 게시물의 예비 버전에 대한 의견을 보내 주신 팀 동료 인 Joanne Fuller, Roberto Saltini (자동 검증 팀), Nicolas Liochon 및 Avery Erwin에게 감사드립니다..

Ethereum 2.0 최신 소식

ConsenSys 뉴스 레터를 구독하여 최신 Eth2 뉴스를받은 편지함으로 바로 받아보세요. 이더 리움 2.0 연구 및 개발 보안 뉴스 레터 최신 이더 리움 뉴스, 엔터프라이즈 솔루션, 개발자 리소스 등에 대한 뉴스 레터를 구독하십시오.성공적인 블록 체인 제품을 구축하는 방법웨비나

성공적인 블록 체인 제품을 구축하는 방법

이더 리움 노드를 설정하고 실행하는 방법웨비나

이더 리움 노드를 설정하고 실행하는 방법

나만의 Ethereum API를 구축하는 방법웨비나

나만의 Ethereum API를 구축하는 방법

소셜 토큰을 만드는 방법웨비나

소셜 토큰을 만드는 방법

스마트 계약 개발에서 보안 도구 사용웨비나

스마트 계약 개발에서 보안 도구 사용

금융 디지털 자산 및 DeFi의 미래웨비나

금융의 미래 : 디지털 자산 및 DeFi

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