Follow Us
Facebooktwitteryoutube
YouTube
Promo
banner
Promo
banner

Официално потвърждаване на спецификациите на Ethereum 2.0 Phase 0

блог 1NewsDevelopersEnterpriseBlockchain ExplainedEvent and ConferencesPressБюлетини

Contents

Абонирайте се за нашия бюлетин.

Имейл адрес

Ние уважаваме вашата поверителност

Развитие на HomeBlogBlockchain

Официално потвърждаване на спецификациите на Ethereum 2.0 Phase 0

Актуализация от ConsenSys R&Опитвам се за усилията им да доверят надеждността на веригата Beacon и основните основи на Eth2. от Franck Cassez 10 август 2020 г. Публикувано на 10 август 2020 г.

потвърди блога герой

Екипът за автоматизирана проверка на ConsenSys R&D са работили по официална спецификация и проверка на веригата Beacon от няколко месеца. Щастливи сме да съобщим, че е постигнат много напредък и въпреки че все още не е завършен, успяхме да се развием солидно и официално проверено ядро ​​на веригата Beacon. За първи път нашата работа осигурява несравнимо ниво на надеждност на основните основи на инфраструктурата Eth2.0.

Методология

Проверка срещу тестване

Използвахме награден език за програмиране, съобразен с проверката Дафни да напишете a официално (функционално и логично) спецификация на всяка функция на веригата на маяка, an изпълнение на всяка функция и a доказателство че изпълнението отговаря на неговата спецификация. С други думи, математически сме проверили липсата на грешки. Реализациите, на които в крайна сметка се оказахме правилни, се базират официалните спецификации Eth2.0 с предупреждението, че сме отстранили и съобщили някои грешки и несъответствия.

Нашата методология е различна от тестването, както и ние математически доказват съответствие на функциите с техните спецификации, за всичко входове. Тестването не може да обхваща безкрайно много входове и като следствие може да открива грешки, но не и да доказва липсата на грешки.

И най-хубавото е, че не е нужно да публикуваме хартия, нито да преглеждаме доказателствата. Пробите са част от кодовата основа и са написани като програми. Да, в Dafny можете да напишете доказателство като програма, подходяща за разработчици. Също така доказателствата се проверяват механично от теорема, която не оставя място за непълни или недостатъчни доказателства.

Свойства, които сме доказали 

Свойствата варират от липсата на аритметика под / преливания и индекс извън границите, съответствието на всяка функция с логически (логика от първи ред) предварителни / последващи условия (пример за меркелизиране тук), до по-сложни, включващи композиции на функции. Например имаме следното собственост на SSZ Сериализиране / десериализиране функции: за всеки обект x, Deserialise (Serialise (x)) = x, т.е. десериализацията на сериализиран обект връща оригиналния обект. Ние също така установихме a брой инварианти, и ги използва, за да докаже, че основните операции на Beacon Chain и ForkChoice (state_transition, on_block) всъщност изградете верига от блокове: за всеки блок b в магазина, предците на b формират крайна изцяло подредена последователност, водеща до генезисния блок, който е основното свойство на блокчейн!

Предимствата на официалната проверка

Всеки официален методист би настоявал, че проверката е най-добрата практика в областта на сигурността. Ето как точно тази методология осигурява сигурна и надеждна инфраструктура за Ethereum 2.0.


Функционална спецификация

Първо, вдигнахме официалните спецификации Eth2.0 до a формална логическа и функционална спецификация. За всяка функция формално дефинираме какво се очаква да изчисли функцията, не как. Това осигурява езиково-агностични подходящи за разработчици референтни спецификации които могат да се използват за разработване на по-сигурни внедрения, с по-малко усилия. 

Модулност

Второ, нашите спецификации, изпълнения и доказателна архитектура са модулни. В резултат на това можем лесно експериментирайте с нови внедрения (напр. оптимизации) и проверете тяхното въздействие върху цялостната система. Помислете за хитър хак за изпълнение на функция? Променете изпълнението и помолете Dafny да провери дали все още отговаря на спецификацията му. Ако го направи, доказателствата на компонентите, които използват тази функция, не се влияят.

Изпълнимост

Трето, нашите внедрения са изпълним. Можем да компилираме и стартираме програма Dafny. Дори по-добре, можете автоматично генериране на код в някои популярни езици за програмиране като C #, Go (и скоро Java) от кода на Dafny. Това може да се използва за допълване на съществуващите кодови бази или за генериране сертифицирани тестове. Изпълнението, което трябва да бъде тествано, може да използва нашите доказано коректни функции, за да изчисли очаквания резултат от тест и да го провери спрямо собствения си резултат.   

Всичко на един език

Не на последно място, нашата кодова база е самодостатъчен. Той съдържа спецификациите, изпълненията, документациите и доказателствата, всичко това в един, четим, прост и семантично добре дефиниран програмен език.

Въпроси и съображения 

Ами здравината на механизма за проверка?

Може би се чудите, „ами ако компилаторът / верификаторът на Dafny е бъги?“ Всъщност знаем, че Дафни е бъги (dafny репо въпроси), но ние не разчитаме на липсата на грешки в Dafny. Разчитаме на Дафни (и нейния механизъм за проверка) звук. Здравостта означава, че когато Дафни съобщава, че доказателствата са верни, те наистина са верни. 

Ами ако спецификацията, която сме написали, не е правилната? 

В този случай бихме доказали съответствие с грешно изискване. Да, това може да се случи и няма сребърен куршум, който да реши проблема. Въпреки това, както споменахме по-рано, Dafny е изпълним. Това ни позволява да стартираме кода и да получим известна увереност, че нашите спецификации са правилните. И нашите спецификации са написани в логика от първи ред, без място за спор относно значението, така че ако забележите проблем, уведомете ни и ние ще го поправим.

Ами ако Дафни не може да докаже, че изпълнението отговаря на спецификация? 

Това може да се случи, но в този случай Дафни има някои механизми за обратна връзка, които да помогнат да разследват кои стъпки от доказателството не могат да бъдат проверени. И досега винаги сме успявали да изградим доказателства, които Дафни може да проверява автоматично.

Приветстваме вашите отзиви, така че, моля, проверете нашето хранилище eth2.0-dafny. Бяхме развълнувани да наблюдаваме как развитието на Ethereum 2.0 достига последните си етапи в testnet и очакваме с нетърпение да работим с екипи в цялата екосистема, за да гарантираме, че следващата фаза на мрежата е изградена върху солидна основа.

Благодарност: Благодаря на моите съотборници Джоан Фулър, Роберто Салтини (Автоматизиран екип за проверка), Никола Лиошон и на Ейвъри Ервин за коментарите по предварителна версия на тази публикация.

В крак с Ethereum 2.0

Абонирайте се за бюлетина на ConsenSys, за да получавате най-новите Eth2 новини директно във входящата си поща. Ethereum 2.0Изследване и разработкаSecurityNewsletter Абонирайте се за нашия бюлетин за най-новите новини за Ethereum, корпоративни решения, ресурси за разработчици и други.Как да изградим успешен блокчейн продуктУебинар

Как да изградим успешен блокчейн продукт

Как да настроите и стартирате Ethereum NodeУебинар

Как да настроите и стартирате Ethereum Node

Как да създадете свой собствен API за EthereumУебинар

Как да създадете свой собствен API за Ethereum

Как да създадете социален токенУебинар

Как да създадете социален токен

Използване на инструменти за сигурност при разработването на интелигентен договорУебинар

Използване на инструменти за сигурност при разработването на интелигентен договор

Бъдещето на финансите Digital Assets и DeFiУебинар

Бъдещето на финансите: цифрови активи и DeFi

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