Abstract

In this paper we consider the software architecture of InnoChain, a distributed ledger system (DLS) with 5 levels of formal verification, including a formally-verified underlying operating system (OS). The objective of this architecture is to achieve a higher level of DLS dependability compared to more traditional software architectures and quality assurance (QA) methods. The architecture of InnoChain includes (1) a programming language for smart contracts which is a domain-specific language with formal semantics embedded into CakeML, which is a functional language ofthe ML family; this allows us to carry out formal verification of smart contracts' correctness properties using higher-order logic systems, such as HOL4; (2) trusted compilation of smart contracts into the machine code using the verified compiler available for CakeML, rather than relying on a virtual machine for execution of smart contracts; (3) using CakeML for implementation of InnoChain node functionality which allows for formal verification of code correctness and trusted compilation into the machine code; (4) formal verification of the consensus protocol used InnoChain, namely HotStuff BFT; (5) using seL4, a formally-verified microkernel, as the underlying OS for InnoChain instead of more traditional general-purpose OSes such as Linux. The proposed verified architecture will allow InnoChain to be used in mission-critical applications, such as the decentralized Aircraft Fuelling Control System which is currently under development for JSC Aeroflot, the Russian national air carrier.

Highlights

  • In this paper we consider the so ware architecture of InnoChain, a distributed ledger system (DLS) with 5 levels of formal veri cation, including a formally-veri ed underlying operating system (OS). e objective of this architecture is to achieve a higher level of DLS dependability compared to more traditional so ware architectures and quality assurance (QA) methods

  • Целостность состояния данных в системы распределенного реестра (СРР) обеспечивается с помощью протокола консенсуса, исполняемого узлами системы

  • Что большинство исследований, связанных с Verified Software Toolchain (VST), ориентированы на язык C, изначально этот фреймворк разрабатывался как универсальный инструмент, позволяющий гарантировать, что утверждения статического анализатора относительно программы на некотором языке сохраняются для машинного кода, который исполняется в рамках некоторой операционной системы

Read more

Summary

Обзор архитектуры СРР InnoChain и уровней формальной верификации

Уровень языка смарт-контрактов С точки зрения пользователя, СРР InnoChain представляет собой распределенную децентрализованную базу данных со встроенным языком программирования — предметно-ориентированным языком смарт-контрактов, которые выполняются на всех узлах СРР и изменяют (дополняют) ее состояние. Для языка смарт-контрактов требуется наличие формальной семантики, позволяющей формулировать и доказывать свойства функциональной корректности смарт-контрактов. Однако реализация такой виртуальной машины для InnoChain потребовала бы, в частности, разработки формальной семантики байт-кода и формально-верифицированного компилятора из языка смарт-контрактов в байт-код. В InnoChain используется прямая трансляция кода смарт-контрактов (реализованных на языке CakeML или на языке, встроенном в CakeML) в машинный код процессора x86_64 (возможна также трансляция в машинный код ARM) с использованием верифицированного компилятора CakeML. Функционал узла также реализуется на CakeML, что делает возможным формальную верификацию корректности алгоритмов узла и генерацию машинного кода узла с помощью формально-верифицированного компилятора CakeML

Уровень протокола консенсуса СРР
Уровень операционной системы
Функционирование системы распределенного реестра и выбор протокола консенсуса
Выбор языка программирования
Выбор операционной системы
Заключение и дальнейшие задачи
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call