Top Banner
Анализ умных контрактов с помощью методов формальной верификации Сальников Александр Святославович м15_НоД_ИССА Высшая школа экономики, Москва, 2015 www.hse.ru Курсовая работа на тему
14

Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Jan 26, 2017

Download

Education

Iosif Itkin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Анализумныхконтрактовспомощьюметодовформальнойверификации

Сальников Александр Святославовичм15_НоД_ИССА

Высшая школа экономики, Москва, 2015www.hse.ru

Курсовая работа на тему

Page 2: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Объект,предмет,цельизадачиисследования

• Объект исследования - умный контракт, используемый в компании CoinOffering для децентрализованного управления акциями юридического лица.

• Предмет исследования – демонстрация применимости методов формальной верификации

• Цель работы – продемонстрировать применимость методов формальной верификации к разработке умных контрактов.

Задачи• Анализ инструментов формальной верификации• Провести первичный анализ кода контракта• Построить математическую модель контракта• Описать модель на языке WhyML• Провести формальную верификацию свойств модели

Page 3: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Математическаямодельумныхконтрактовицепочкиблоков

• Идеи умных контрактов были представлены еще в 1994 году Ником Сабо(Nick Szabo).

• Реальная возможность для имплементации умных контрактов появилась с изобретением технологии цепочки блоков в статье Сатоши Накамото (2009)

• Цепочка блоков – распределенно хранимое дерево изменения состояния (state transition) системы с экономической мотивацией применения только корректных транзакций

• APPLY(S, TX) −> S′orERROR• APPLY({Alice: $50, Bob: $50}, "send$20fromAlicetoBob") = {Alice: $30, Bob: $70}• APPLY({Alice: $50, Bob: $50}, "send$70fromAlicetoBob") = ERROR

Page 4: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Методыформальнойверификации

• Одна из первых работ из области – Robinson: Resolution Theorem Proving (1965)

• Толчок в развитии ФВ –Clarke & Emerson: Model Checking (1981)

• 1990-2000 гг-коммерческая адаптация технологии: IBM, Intel создают внутренние разработки

• Практический подход –код рассматривается как математическая модель.

• Имея только код сказать можно не много, поэтому необходимы дополнительные условия.

• Код рассматривается как система переходов, состоящая из конечных и бесконечных переходов. Бесконечные переходы нужно аннотировать инвариантами

Page 5: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Записьматематическоймодели

• Основная работа по верификации – составление модели и ее запись в машиночитаемом формате для доказательства.

• Множество инструментов: Isabelle, Z3, Yices, Rodin, Why3• Для моделирования выбран Why3 c языком записи модели WhyML:

• Использование всех типов ML и переменных• Использование логики предикатов• Возможности объявления изменяемых

(mutable) полей в структурах• Объявление алгебраических инвариантов• Использование программных конструкций

• Редактирование изменяемых полей• Условные переходы• Циклы• Исключения• Анонимные функции• Аннотации: пред- и постусловия, операторы

контроля (assertions), инварианты циклов.

Page 6: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Проверкамоделинакорректность

Page 7: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Формальнаяверификацияиумныеконтракты

• Предметно ориентированный язык контрактов (DSL)• Транзакции – чистые функции• Строгая типизация• Высокие требования к безопасности (DAO Problem)• Невозможность редактирования кода после инициализации контракта• Простота кода (сложность выполнения повышает стоимость)

Page 8: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Построениематематическоймоделиконтракта

• Контракт предназначен для децентрализованного управления акциями и голосования:

• Структуры данных:• Общее количество акций.• Словарь балансов пользователей • Словарь проголосовавших держателей

• Функции:• Перевод средств со счета на счет• Проголосовать за предложение• Подсчет результатов голосования

• Инварианты:• Сохранение общего количества акций при передаче• Контроль количества проголосовавших акций

Page 9: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Записьмоделиконтракта(TokenContract)

Состояние:constant total : inttype state = {

mutable _balance: array uint256}

Функция передачи:let transfer (_from : Address.address) (_to : Address.address) (_val : uint256) (this : account) : accountПредусловия:

assert { 0 <= Address.to_int _to };assert { Address.to_int _to <= Address.max_address };

Инвариант:invariant {self.storage._balance.length = Address.max_address + 1 /\ BalanceSum.sumself.storage.balance 0 (Address.max_address + 1) = total }

Page 10: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Записьмоделиконтракта (VoteContract)

Page 11: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Записьмоделиконтракта (VoteContract)

Page 12: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Верификациямодели

Page 13: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

Высшая школа экономики, Москва, 2015

Заключение

• Основные результаты работы:• Реализация алгоритма контроля акций и голосования в виде умного контракта

• Построение математической модели цепочки блоков и умных контрактов

• Формальная верификация некоторых свойств математической модели

• Потенциальные пути для дальнейшей деятельности• Расширение использования средств языка WhyML в верификации более сложных структур данных

• Формализация правил трансляции с языка Solidity на язык WhyML• Расширение функциональности существующего транслятора.

Page 14: Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts

101000, Россия, Москва, Мясницкая ул., д. 20Тел.: (495) 621-7983, факс: (495) 628-7931

www.hse.ru