SlideShare a Scribd company logo
1 of 14
Download to read offline
Анализ	умных	контрактов	с	помощью	методов	
формальной	верификации
Сальников Александр Святославович
м15_НоД_ИССА
Высшая школа экономики, Москва, 2015
www.hse.ru
Курсовая работа на тему
Высшая школа экономики, Москва, 2015
Объект,	предмет,	цель	и	задачи	исследования
• Объект исследования - умный контракт, используемый в
компании CoinOffering для децентрализованного
управления акциями юридического лица.
• Предмет исследования – демонстрация применимости
методов формальной верификации
• Цель работы – продемонстрировать применимость
методов формальной верификации к разработке умных
контрактов.
Задачи
• Анализ инструментов формальной верификации
• Провести первичный анализ кода контракта
• Построить математическую модель контракта
• Описать модель на языке WhyML
• Провести формальную верификацию свойств модели
Высшая школа экономики, Москва, 2015
Математическая	модель	умных	контрактов	и	цепочки	блоков
• Идеи умных контрактов были представлены еще в 1994 году Ником Сабо
(Nick Szabo).
• Реальная возможность для имплементации умных контрактов появилась с
изобретением технологии цепочки блоков в статье Сатоши Накамото (2009)
• Цепочка блоков – распределенно хранимое дерево изменения
состояния (state transition) системы с экономической мотивацией
применения только корректных транзакций
• APPLY(S, TX)	−> 	S′	or	ERROR
• APPLY({	Alice: 	$50, Bob: 	$50	}, "send	$20	from	Alice	to	Bob")	=	{	Alice: 	$30, Bob: 	$70	}
• APPLY({	Alice: 	$50, Bob: 	$50	}, "send	$70	from	Alice	to	Bob")	= 	ERROR
Высшая школа экономики, Москва, 2015
Методы	формальной	верификации
• Одна из первых работ из
области – Robinson:
Resolution Theorem
Proving (1965)
• Толчок в развитии ФВ –
Clarke & Emerson: Model
Checking (1981)
• 1990-2000 гг-
коммерческая адаптация
технологии: IBM, Intel
создают внутренние
разработки
• Практический подход –
код рассматривается как
математическая модель.
• Имея только код сказать
можно не много, поэтому
необходимы
дополнительные
условия.
• Код рассматривается как
система переходов,
состоящая из конечных и
бесконечных переходов.
Бесконечные переходы
нужно аннотировать
инвариантами
Высшая школа экономики, Москва, 2015
Запись	математической	модели
• Основная работа по верификации – составление модели и ее запись в
машиночитаемом формате для доказательства.
• Множество инструментов: Isabelle, Z3, Yices, Rodin, Why3
• Для моделирования выбран Why3 c языком записи модели WhyML:
• Использование всех типов ML и переменных
• Использование логики предикатов
• Возможности объявления изменяемых
(mutable) полей в структурах
• Объявление алгебраических инвариантов
• Использование программных конструкций
• Редактирование изменяемых полей
• Условные переходы
• Циклы
• Исключения
• Анонимные функции
• Аннотации: пред- и постусловия, операторы
контроля (assertions), инварианты циклов.
Высшая школа экономики, Москва, 2015
Проверка	модели	на	корректность
Высшая школа экономики, Москва, 2015
Формальная	верификация	и	умные	контракты
• Предметно ориентированный язык контрактов (DSL)
• Транзакции – чистые функции
• Строгая типизация
• Высокие требования к безопасности (DAO Problem)
• Невозможность редактирования кода после инициализации контракта
• Простота кода (сложность выполнения повышает стоимость)
Высшая школа экономики, Москва, 2015
Построение	математической	модели	контракта
• Контракт предназначен для децентрализованного управления акциями и
голосования:
• Структуры данных:
• Общее количество акций.
• Словарь балансов пользователей
• Словарь проголосовавших держателей
• Функции:
• Перевод средств со счета на счет
• Проголосовать за предложение
• Подсчет результатов голосования
• Инварианты:
• Сохранение общего количества акций при передаче
• Контроль количества проголосовавших акций
Высшая школа экономики, Москва, 2015
Запись	модели	контракта	(Token	Contract)
Состояние:
constant total : int
type 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.sum
self.storage.balance 0 (Address.max_address + 1) = total }
Высшая школа экономики, Москва, 2015
Запись	модели	контракта (Vote	Contract)
Высшая школа экономики, Москва, 2015
Запись	модели	контракта (Vote	Contract)
Высшая школа экономики, Москва, 2015
Верификация	модели
Высшая школа экономики, Москва, 2015
Заключение
• Основные результаты работы:
• Реализация алгоритма контроля акций и голосования в виде умного
контракта
• Построение математической модели цепочки блоков и умных
контрактов
• Формальная верификация некоторых свойств математической модели
• Потенциальные пути для дальнейшей деятельности
• Расширение использования средств языка WhyML в верификации
более сложных структур данных
• Формализация правил трансляции с языка Solidity на язык WhyML
• Расширение функциональности существующего транслятора.
101000, Россия, Москва, Мясницкая ул., д. 20
Тел.: (495) 621-7983, факс: (495) 628-7931
www.hse.ru

More Related Content

Viewers also liked

Рынок автомобильного бензина и дизельного топлива РФ
Рынок автомобильного бензина и дизельного топлива РФРынок автомобильного бензина и дизельного топлива РФ
Рынок автомобильного бензина и дизельного топлива РФGeliskhanov
 
ЛАФ7 Гибкий бизнес и принципы постановки задачи v1 1
ЛАФ7  Гибкий бизнес и принципы постановки задачи  v1 1ЛАФ7  Гибкий бизнес и принципы постановки задачи  v1 1
ЛАФ7 Гибкий бизнес и принципы постановки задачи v1 1Dmitry Bezuglyy
 
Прогноз развития энергетики мира и России 2016
Прогноз развития энергетики мира и России 2016Прогноз развития энергетики мира и России 2016
Прогноз развития энергетики мира и России 2016Вячеслав Чайкин
 
Верификация технологических платформ Лондонской фондовой биржи
Верификация технологических платформ Лондонской фондовой биржиВерификация технологических платформ Лондонской фондовой биржи
Верификация технологических платформ Лондонской фондовой биржиIosif Itkin
 
Innovation in Quality Assurance – What is the Impact on Trading technology?
Innovation in Quality Assurance –  What is the Impact on Trading technology?Innovation in Quality Assurance –  What is the Impact on Trading technology?
Innovation in Quality Assurance – What is the Impact on Trading technology?Iosif Itkin
 
The Spanish Armada
The Spanish ArmadaThe Spanish Armada
The Spanish ArmadaPhilp1976
 

Viewers also liked (7)

Рынок автомобильного бензина и дизельного топлива РФ
Рынок автомобильного бензина и дизельного топлива РФРынок автомобильного бензина и дизельного топлива РФ
Рынок автомобильного бензина и дизельного топлива РФ
 
Joint us canada_grid_strategy_06_dec2016
Joint us canada_grid_strategy_06_dec2016Joint us canada_grid_strategy_06_dec2016
Joint us canada_grid_strategy_06_dec2016
 
ЛАФ7 Гибкий бизнес и принципы постановки задачи v1 1
ЛАФ7  Гибкий бизнес и принципы постановки задачи  v1 1ЛАФ7  Гибкий бизнес и принципы постановки задачи  v1 1
ЛАФ7 Гибкий бизнес и принципы постановки задачи v1 1
 
Прогноз развития энергетики мира и России 2016
Прогноз развития энергетики мира и России 2016Прогноз развития энергетики мира и России 2016
Прогноз развития энергетики мира и России 2016
 
Верификация технологических платформ Лондонской фондовой биржи
Верификация технологических платформ Лондонской фондовой биржиВерификация технологических платформ Лондонской фондовой биржи
Верификация технологических платформ Лондонской фондовой биржи
 
Innovation in Quality Assurance – What is the Impact on Trading technology?
Innovation in Quality Assurance –  What is the Impact on Trading technology?Innovation in Quality Assurance –  What is the Impact on Trading technology?
Innovation in Quality Assurance – What is the Impact on Trading technology?
 
The Spanish Armada
The Spanish ArmadaThe Spanish Armada
The Spanish Armada
 

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

Миграция кода с Magento 1 на Magento 2
Миграция кода с Magento 1 на Magento 2Миграция кода с Magento 1 на Magento 2
Миграция кода с Magento 1 на Magento 2Elogic Magento Development
 
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...GeeksLab Odessa
 
презентация на 1 млрд рублей
презентация на 1 млрд рублейпрезентация на 1 млрд рублей
презентация на 1 млрд рублейDim Kin
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Seocrm (2)
Seocrm (2)Seocrm (2)
Seocrm (2)lifeout
 
MBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringMBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringAPPAU_Ukraine
 
Элетронная торговая площадка КРОК
Элетронная торговая площадка КРОКЭлетронная торговая площадка КРОК
Элетронная торговая площадка КРОККРОК
 
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...IP_Accelerator NeuroNet
 
Иван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в AgileИван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в AgileScrumTrek
 
Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»РОСГОССТРАХ
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийSQALab
 
03. п.манин верфау
03. п.манин верфау03. п.манин верфау
03. п.манин верфауjournalrubezh
 
Старт семинара "Автоматизация управления строительными проектами". Комплексн...
Старт семинара "Автоматизация управления строительными проектами".  Комплексн...Старт семинара "Автоматизация управления строительными проектами".  Комплексн...
Старт семинара "Автоматизация управления строительными проектами". Комплексн...Alexey Zotov
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARESQALab
 
Programming Java - Lection 05 - Software Design - Lavrentyev Fedor
Programming Java - Lection 05 - Software Design - Lavrentyev FedorProgramming Java - Lection 05 - Software Design - Lavrentyev Fedor
Programming Java - Lection 05 - Software Design - Lavrentyev FedorFedor Lavrentyev
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСMATLAB
 
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)Группа компаний «Системы и Проекты»
 
СибирьСофтПроект
СибирьСофтПроектСибирьСофтПроект
СибирьСофтПроектAlexey Suchkov
 
Внедрение бизнес приложений
Внедрение бизнес приложенийВнедрение бизнес приложений
Внедрение бизнес приложенийКРОК
 
презентация Md audit 05_2016
презентация Md audit 05_2016презентация Md audit 05_2016
презентация Md audit 05_2016MOBILE DIMENSION LLC
 

Similar to Technology Risk Modeling and Analysis Seminar - Formal Verification for Smart Contracts (20)

Миграция кода с Magento 1 на Magento 2
Миграция кода с Magento 1 на Magento 2Миграция кода с Magento 1 на Magento 2
Миграция кода с Magento 1 на Magento 2
 
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...
SalesLab: Евгений Горбачёв (Terrasoft) - Управление идеальным путешествием кл...
 
презентация на 1 млрд рублей
презентация на 1 млрд рублейпрезентация на 1 млрд рублей
презентация на 1 млрд рублей
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Seocrm (2)
Seocrm (2)Seocrm (2)
Seocrm (2)
 
MBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringMBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok Egineering
 
Элетронная торговая площадка КРОК
Элетронная торговая площадка КРОКЭлетронная торговая площадка КРОК
Элетронная торговая площадка КРОК
 
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...
OpenTalks.AI - Оптимизация бизнес-процессов и документооборота с использовани...
 
Иван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в AgileИван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в Agile
 
Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»Разработка нового сайта компании «Росгосстрах»
Разработка нового сайта компании «Росгосстрах»
 
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологийСпецифика работы бизнес-аналитика в зависимости от типов проектов и методологий
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
 
03. п.манин верфау
03. п.манин верфау03. п.манин верфау
03. п.манин верфау
 
Старт семинара "Автоматизация управления строительными проектами". Комплексн...
Старт семинара "Автоматизация управления строительными проектами".  Комплексн...Старт семинара "Автоматизация управления строительными проектами".  Комплексн...
Старт семинара "Автоматизация управления строительными проектами". Комплексн...
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
Programming Java - Lection 05 - Software Design - Lavrentyev Fedor
Programming Java - Lection 05 - Software Design - Lavrentyev FedorProgramming Java - Lection 05 - Software Design - Lavrentyev Fedor
Programming Java - Lection 05 - Software Design - Lavrentyev Fedor
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)
РЕШЕНИЕ IRM TDRM (Автоматизированная система «Управление строительством»)
 
СибирьСофтПроект
СибирьСофтПроектСибирьСофтПроект
СибирьСофтПроект
 
Внедрение бизнес приложений
Внедрение бизнес приложенийВнедрение бизнес приложений
Внедрение бизнес приложений
 
презентация Md audit 05_2016
презентация Md audit 05_2016презентация Md audit 05_2016
презентация Md audit 05_2016
 

More from Iosif Itkin

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Iosif Itkin
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...Iosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolIosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresIosif Itkin
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday SeasonIosif Itkin
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AIIosif Itkin
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresIosif Itkin
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...Iosif Itkin
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiIosif Itkin
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenIosif Itkin
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...Iosif Itkin
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...Iosif Itkin
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)Iosif Itkin
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop TestingIosif Itkin
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in ReviewIosif Itkin
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyIosif Itkin
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesIosif Itkin
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)Iosif Itkin
 

More from Iosif Itkin (20)

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test Oracles
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
 

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

  • 2. Высшая школа экономики, Москва, 2015 Объект, предмет, цель и задачи исследования • Объект исследования - умный контракт, используемый в компании CoinOffering для децентрализованного управления акциями юридического лица. • Предмет исследования – демонстрация применимости методов формальной верификации • Цель работы – продемонстрировать применимость методов формальной верификации к разработке умных контрактов. Задачи • Анализ инструментов формальной верификации • Провести первичный анализ кода контракта • Построить математическую модель контракта • Описать модель на языке WhyML • Провести формальную верификацию свойств модели
  • 3. Высшая школа экономики, Москва, 2015 Математическая модель умных контрактов и цепочки блоков • Идеи умных контрактов были представлены еще в 1994 году Ником Сабо (Nick Szabo). • Реальная возможность для имплементации умных контрактов появилась с изобретением технологии цепочки блоков в статье Сатоши Накамото (2009) • Цепочка блоков – распределенно хранимое дерево изменения состояния (state transition) системы с экономической мотивацией применения только корректных транзакций • APPLY(S, TX) −> S′ or ERROR • APPLY({ Alice: $50, Bob: $50 }, "send $20 from Alice to Bob") = { Alice: $30, Bob: $70 } • APPLY({ Alice: $50, Bob: $50 }, "send $70 from Alice to Bob") = ERROR
  • 4. Высшая школа экономики, Москва, 2015 Методы формальной верификации • Одна из первых работ из области – Robinson: Resolution Theorem Proving (1965) • Толчок в развитии ФВ – Clarke & Emerson: Model Checking (1981) • 1990-2000 гг- коммерческая адаптация технологии: IBM, Intel создают внутренние разработки • Практический подход – код рассматривается как математическая модель. • Имея только код сказать можно не много, поэтому необходимы дополнительные условия. • Код рассматривается как система переходов, состоящая из конечных и бесконечных переходов. Бесконечные переходы нужно аннотировать инвариантами
  • 5. Высшая школа экономики, Москва, 2015 Запись математической модели • Основная работа по верификации – составление модели и ее запись в машиночитаемом формате для доказательства. • Множество инструментов: Isabelle, Z3, Yices, Rodin, Why3 • Для моделирования выбран Why3 c языком записи модели WhyML: • Использование всех типов ML и переменных • Использование логики предикатов • Возможности объявления изменяемых (mutable) полей в структурах • Объявление алгебраических инвариантов • Использование программных конструкций • Редактирование изменяемых полей • Условные переходы • Циклы • Исключения • Анонимные функции • Аннотации: пред- и постусловия, операторы контроля (assertions), инварианты циклов.
  • 6. Высшая школа экономики, Москва, 2015 Проверка модели на корректность
  • 7. Высшая школа экономики, Москва, 2015 Формальная верификация и умные контракты • Предметно ориентированный язык контрактов (DSL) • Транзакции – чистые функции • Строгая типизация • Высокие требования к безопасности (DAO Problem) • Невозможность редактирования кода после инициализации контракта • Простота кода (сложность выполнения повышает стоимость)
  • 8. Высшая школа экономики, Москва, 2015 Построение математической модели контракта • Контракт предназначен для децентрализованного управления акциями и голосования: • Структуры данных: • Общее количество акций. • Словарь балансов пользователей • Словарь проголосовавших держателей • Функции: • Перевод средств со счета на счет • Проголосовать за предложение • Подсчет результатов голосования • Инварианты: • Сохранение общего количества акций при передаче • Контроль количества проголосовавших акций
  • 9. Высшая школа экономики, Москва, 2015 Запись модели контракта (Token Contract) Состояние: constant total : int type 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.sum self.storage.balance 0 (Address.max_address + 1) = total }
  • 10. Высшая школа экономики, Москва, 2015 Запись модели контракта (Vote Contract)
  • 11. Высшая школа экономики, Москва, 2015 Запись модели контракта (Vote Contract)
  • 12. Высшая школа экономики, Москва, 2015 Верификация модели
  • 13. Высшая школа экономики, Москва, 2015 Заключение • Основные результаты работы: • Реализация алгоритма контроля акций и голосования в виде умного контракта • Построение математической модели цепочки блоков и умных контрактов • Формальная верификация некоторых свойств математической модели • Потенциальные пути для дальнейшей деятельности • Расширение использования средств языка WhyML в верификации более сложных структур данных • Формализация правил трансляции с языка Solidity на язык WhyML • Расширение функциональности существующего транслятора.
  • 14. 101000, Россия, Москва, Мясницкая ул., д. 20 Тел.: (495) 621-7983, факс: (495) 628-7931 www.hse.ru