SlideShare a Scribd company logo
1 of 49
Download to read offline
Часть 1
Введение в блокчейн
Мешков Дмитрий
Structure
Часть 1
● Зачем нужен блокчейн
● Беглый взгляд
● Идеологические проблемы
Часть 2
● Транзакции
● Блоки
● P2P
● Технические проблемы
WHY?
Why?
Blockchain as database
Плюсы:Плюсы:
● Надежность (тысячи копий)
● Неизменность (изменить данные не может никто)
● Отсутствие цензуры (никто не запретит положить данные)
МинусыМинусы:
● Высокая стоимость ($2000 за Мб)
● Низкая пропускная способность (50Гб в год)
● Нет гарантий хранения (SPV mining, исчезнет)
● Скорость записи и front-running
??
● Публичность (все видят все транзакции, не положить
конфиденциальные данные)
Decentralization
● Блокчейн – децентрализованная система
Benefits
Плюсы:Плюсы:
● Администрирование
● Модернизация
● Масштабирование
МинусыМинусы:
● Уязвимость для атак на
центральный узел
●
??
Политическая
централизация
Плюсы:Плюсы:
● Отсутствия единой точки
отказа
● Открытость
МинусыМинусы:
● Синхронизация
● Масштабирование
●
??
Политическая
децентрализация
Overview
Problematics
● Double spending
● У Alice есть монета, она создает 2 транзакции:
Alice → Bob и Alice → Charlie.
● Кто получит монету?
● Централизованное решение – кому первому
отправлена транзакция (с т.з. банка)
● В децентрализованном мире определить кому
раньше непросто
Transaction life cycle
● Пользовалеть A создает транзакцию TX по
переводу 1 монету пользователю B и
рассылает ее в сеть
● Майнеры добавляют эту транзакцию в UTX
● Когда майнер получает право создать блок,
он собирает транзакции из UTX в блок и
рассылает блок его
● Каждый блок ссылается на предыдущий
блок, таким образом транзакции
упорядовачиваются по времени
Blockchain
● Если в блок попала транзакция от Alice к
Bob, то в него и в следующие блоки уже не
можен попасть транзакция Alice → Charlie
Blocktree
● Создание блока – случайный процесс
● Могут возникать форки
54 (A→B)Block 53
55 (A→C)
Blocktree
● Создание блока – случайный процесс
● Могут возникать форки
● Правильная цепочка – самая длинная
Block N54 (A→B) Block 56 Block 59Block 53
55 (A→C) Block 57
Block 58 Block NBlock 60
Blocktree
● Eventual consistency
● Вероятность форков экспоненциально
убывает с длиной
Block N54 (A→B) Block 56 Block 59Block 53
55 (A→C) Block 57
Block 58 Block NBlock 60
Block NBlock 61
Forks
● В биткоине ~ 2% блоков в форках
● Известны случаи форков в 6 и 3 блоков из-за
ошибок в настройке софта
● Реально 1, очень редко 2 блока
● Нужно ждать подтверждение транзакций!
Чем больше сумма – тем дольше
● За блок майнеры получают награду ~ $17000
CAP teorem
● В любой реализации распределённых
вычислений возможно обеспечить не более
двух из трёх следующих свойств:
consistency, availability, partition tolerance
● В блокчейне – eventual consistency
Overview conclusion
● Блокчейн – децентрализованная база
данных с сервером времени
● Блокчейн решает проблему double spending
в децентрализованных системах
Decentralization problems
(De)centralized mining
● Высокий порог входа
● Объединение майнеров в пулы (делегирование
права майнить)
● 5 майнинг пулов Биткоина владеют 50+%
мощностей
(De)centralized supply
● Нет регуляторов – раздолье для мошенников
● Явный premine
● Неявный premine
● Нелинейная экономическая модель
● ICO с собственными вложениями
● Манипуляции рынком
(De)centralized governance
● Кто платит, тот и контролирует разработку (?) -
можно не принимать изменения, которые внесли
программисты (Ethereum classic)
● Культ личности – если большинство участников
сети верят в лидера проекта, он может делать все
что хочет (Ethereum)
● Мало кто может понять предложенные изменения
● Учитываются только голоса майнеров, хотя в
любом блокчейне много заинтересовынных сторон
● Теорема Эрроу
(De)centralized services
● Большинство пользователей не смотрят в блокчейн,
а доверяют сторонним сервисам
● Большинство пользователей используют web
кошелек или держат деньги на биржах
● Для большинства криптовалют одна и та же команда
разрабатывает софт, кошелек, обозреватель
блоков, ...
Пример STEEMIT:
● Все доверяют https://steemit.com/
● Есть цензура
● Контроль над деньгами у разработчиков
Centralization as a solution
● Много узлов сложно синхронизировать =>
уменьшим количество узлов
● “masternodes”, “witnesses”, “delegates”, “federations”
● В пределе – все доверяют одной ноде, которая
быстро и эффективно обрабатывает транзакции,
без задержек, форков, ...
● R3: “no blockchain because we don’t need one”
Часть 2
Под капотом
Мешков Дмитрий
Problematics
● Double spending
● У Alice есть монета, она создает 2 транзакции:
Alice → Bob и Alice → Charlie.
● Кто получит монету?
● Централизованное решение – кому первому
отправлена транзакция (с т.з. банка)
● В децентрализованном мире определить кому
раньше непросто
Transactions
Input-output transactions
● Применяется в Bitcoin, Litecoin, Monero, Dash, ...
● Есть только input и output
● Output можно потратить только полностью
Input-output transactions
● Транзакция – это связь между input и output
● ∑inputs >= ∑outputs
● Кроме coinbase транзакции
● У каждого output есть скрипт
● Чтобы потратить output, нужно подать на вход
скрипта такие данные, чтобы получить true
● Большинство скриптов требуют подпись на вход
Input-output transactions
● Очень гибкая модель
● Не очень понятная интуитивно
● Большой размер транзакций
● Небольшая пропускная способность
● Микро остатки
Account transaction
● Применяется в Ethereum, Waves, Nxt, …
● Аккаунты (публичные ключи) с изменяемым
балансом
● Транзакция – перевод N монет от одного
аккаунта другому
● Транзакции подписанны
● Нужна дополнительная защита от replay
атак
Consensus
Consensus
● Набор транзакции – это блок
● Связанные в цепочку блоки – это блокчейн
● Косенсус определяет последовательность
блоков в блокчейне
● Какая из двух транзакций (Alice → Bob и
Alice → Charlie) раньше окажется в
блокчейне – та и была раньше
Hash function
Свойство идеальной хэш функции:
● Одно и то же сообщение всегда
приводит к одному и тому же хэшу
● Хэш быстро вычисляется для любого
сообщения
● Невозможно получить исходное
сообщение по его хешу (кроме как
полным перебором)
● Невозможно найти 2 разных
сообщения с одинаковым хэшем
● По 2 хэшам невозможно понять,
насколько близки исходные сообщения
Consensus: Proof-of-Work
Row 1 Row 2 Row 3 Row 4
0
2
4
6
8
10
12
Column 1
Column 2
Column 3
Consensus: Proof-of-Work
● Вероятность создать блок пропорциональна
вычислительной мощности
● One-CPU-one-vote
● Распределенный timestamp
● Чтобы изменить блок, нужно проделать работу по
созданию всех блоков после него
● Безопасен
● Сжигает ресурсы
● Полезный PoW: primecoin, permacoin
Consensus: Proof-of-Stake
● Вероятность создать блок ~ балансу
● Не сжигаются ресурсы
● Подразумевает timestamp
● Нет случайности => griding attacks
● Дешево создавать блоки => History attack
● Nothing-at-stake attack
● Bribe attack
Consensus
● Proof-of-Work
● Proof-of-Stake
● Proof-of-Burn
● Proof-of-Space
● Proof-of-Retrievability
● ….
● Hybrid
Network layer
P2p: eclipse attacks
● Bitcoin: http://ia.cr/2015/263
● Ethereum: https://goo.gl/mQv58v
P2p: throughput
● On Scaling Decentralized Blockchains”
http://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf
P2p: throughput
● Block size/ X% effective throughput < block interval
● Для сети биткоин (~4000 нод)
● Для маленьких блоков превалирует latency,
минимальное время между блоками для X90% - 12
секунд.
● Для 10 мин. размер блока < 4 Мб для X90% и 36
Мб. для X50%
Technical problems
Throughput
● Onchain: Bitcoin-NG, Byzcoin, Unlimited
● Уменьшение размера транзакций
● Offchain: Lightning, Sprites
● Sidechains
● Частично централизованные схемы
(DPoS, Byteball, Dash, Sidechains 2)
Confirmation delay
● Более частые блоки – больше форков
● GHOST – используем блоки форков
● Bitcoin-NG, Byzcoin
● Частично централизованные схемы
Privacy
● Bitcoin псевдоанонимен
● Есть анонимные форки – monero, zcache
● Ring signatures, composite signatures,
zk-snark
Smart money
● Язык смарт контрактов
(Solidity, Tezos, ia.cr/2016/1156)
● Продвинутый язык аутентификации
Light validation
● SPV nodes
● Rollerchain
(https://arxiv.org/pdf/1603.07926.pdf)
● Authenticated data structures
(ia.cr/2016/994)
● PoPoW
(http://fc16.ifca.ai/bitcoin/papers/KLS16.pdf)
Controllable
● Для внутренней валюты нужен контроль
● RsCoin - криптоваюта с центробанком
● Изменяемые блокчейны
Contacts
● https://www.slideshare.net/DmitryMeshkov
● https://twitter.com/DmitryMeshkov
● dmitry.meshkov@iohk.io

More Related Content

What's hot

Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»SpbDotNet Community
 
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)Ontico
 
"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)AvitoTech
 
World of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработкиWorld of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработкиMaksim Melnikau
 
Bitcoin - криптовалюта будущего
Bitcoin - криптовалюта будущегоBitcoin - криптовалюта будущего
Bitcoin - криптовалюта будущегоLex Mosolov
 
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;Аліна Шепшелей
 
World of Tanks: на пути к 1M CCU
World of Tanks: на пути к 1M CCUWorld of Tanks: на пути к 1M CCU
World of Tanks: на пути к 1M CCUMaksim Melnikau
 
Архитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтактеАрхитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтактеTKConf
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?Vitebsk Miniq
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruOntico
 
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashTyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashDefconRussia
 
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется всеОмские ИТ-субботники
 
Блокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решенияБлокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решенияDmitry Meshkov
 
High Load 2009 Imdg Presentation
High Load 2009   Imdg PresentationHigh Load 2009   Imdg Presentation
High Load 2009 Imdg PresentationHighLoad2009
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаBlockchain School
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected loadGrid Dynamics
 

What's hot (20)

Сложное время
Сложное времяСложное время
Сложное время
 
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
Егор Гришечко «У вас найдётся минутка, чтобы поговорить о блокчейне?»
 
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)
World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)
 
"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)
 
World of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработкиWorld of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработки
 
Multiplayer
MultiplayerMultiplayer
Multiplayer
 
Bitcoin - криптовалюта будущего
Bitcoin - криптовалюта будущегоBitcoin - криптовалюта будущего
Bitcoin - криптовалюта будущего
 
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;
Andrey Sobol Blockchain crowdfunding or &quot;mommy, look, i launched ipo&quot;
 
World of Tanks: на пути к 1M CCU
World of Tanks: на пути к 1M CCUWorld of Tanks: на пути к 1M CCU
World of Tanks: на пути к 1M CCU
 
2056
20562056
2056
 
Архитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтактеАрхитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтакте
 
Blockchain: is just buzzword?
Blockchain: is just buzzword?Blockchain: is just buzzword?
Blockchain: is just buzzword?
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ru
 
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashTyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
 
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
 
Блокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решенияБлокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решения
 
High Load 2009 Imdg Presentation
High Load 2009   Imdg PresentationHigh Load 2009   Imdg Presentation
High Load 2009 Imdg Presentation
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • Сбербанка
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected load
 

Similar to Blockchain introduction

Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущегоSergei Tikhomirov
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиFProg
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Ontico
 
Роман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьРоман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьDataArt
 
деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.Sergey Skabelkin
 
Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...tfmailru
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Ontico
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...AvitoTech
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовOpenVZ
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на productionNikolay Sivko
 
Pconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныPconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныSergey Xek
 
Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Ontico
 

Similar to Blockchain introduction (20)

Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущего
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
 
Purely practical data structures
Purely practical data structuresPurely practical data structures
Purely practical data structures
 
Prezentatsia fork
Prezentatsia forkPrezentatsia fork
Prezentatsia fork
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
Chronicle Map
Chronicle MapChronicle Map
Chronicle Map
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 
Роман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умиратьРоман Еникеев - PHP обязан умирать
Роман Еникеев - PHP обязан умирать
 
деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.деньги будущего или как технология Blockchain изменит весь мир.
деньги будущего или как технология Blockchain изменит весь мир.
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 
Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
Pconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяныPconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяны
 
Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)
 

More from Dmitry Meshkov

Dymmax Protocol overview
Dymmax Protocol overviewDymmax Protocol overview
Dymmax Protocol overviewDmitry Meshkov
 
Ergo platform overview
Ergo platform overviewErgo platform overview
Ergo platform overviewDmitry Meshkov
 
The New Generation Of Blockchains – What Is It Capable Of?
The New Generation Of Blockchains – What Is It Capable Of?The New Generation Of Blockchains – What Is It Capable Of?
The New Generation Of Blockchains – What Is It Capable Of?Dmitry Meshkov
 
Ergo platform's approach
Ergo platform's approachErgo platform's approach
Ergo platform's approachDmitry Meshkov
 
On Space-Scarce Economy In Blockchain Systems
On Space-Scarce Economy In Blockchain SystemsOn Space-Scarce Economy In Blockchain Systems
On Space-Scarce Economy In Blockchain SystemsDmitry Meshkov
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchainsDmitry Meshkov
 
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Dmitry Meshkov
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchainsDmitry Meshkov
 
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Dmitry Meshkov
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchainsDmitry Meshkov
 

More from Dmitry Meshkov (14)

Dymmax Protocol overview
Dymmax Protocol overviewDymmax Protocol overview
Dymmax Protocol overview
 
Ergo details
Ergo detailsErgo details
Ergo details
 
Ergo Hong Kong meetup
Ergo Hong Kong meetupErgo Hong Kong meetup
Ergo Hong Kong meetup
 
Ergo platform overview
Ergo platform overviewErgo platform overview
Ergo platform overview
 
The New Generation Of Blockchains – What Is It Capable Of?
The New Generation Of Blockchains – What Is It Capable Of?The New Generation Of Blockchains – What Is It Capable Of?
The New Generation Of Blockchains – What Is It Capable Of?
 
Ergo platform's approach
Ergo platform's approachErgo platform's approach
Ergo platform's approach
 
On Space-Scarce Economy In Blockchain Systems
On Space-Scarce Economy In Blockchain SystemsOn Space-Scarce Economy In Blockchain Systems
On Space-Scarce Economy In Blockchain Systems
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchains
 
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchains
 
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
Improving Authenticated Dynamic Dictionaries, with Application to Cryptocurre...
 
Scrypto designed 4
Scrypto designed 4Scrypto designed 4
Scrypto designed 4
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchains
 
Scorex framework
Scorex frameworkScorex framework
Scorex framework
 

Blockchain introduction

  • 1. Часть 1 Введение в блокчейн Мешков Дмитрий
  • 2. Structure Часть 1 ● Зачем нужен блокчейн ● Беглый взгляд ● Идеологические проблемы Часть 2 ● Транзакции ● Блоки ● P2P ● Технические проблемы
  • 5. Blockchain as database Плюсы:Плюсы: ● Надежность (тысячи копий) ● Неизменность (изменить данные не может никто) ● Отсутствие цензуры (никто не запретит положить данные) МинусыМинусы: ● Высокая стоимость ($2000 за Мб) ● Низкая пропускная способность (50Гб в год) ● Нет гарантий хранения (SPV mining, исчезнет) ● Скорость записи и front-running ?? ● Публичность (все видят все транзакции, не положить конфиденциальные данные)
  • 6. Decentralization ● Блокчейн – децентрализованная система
  • 7. Benefits Плюсы:Плюсы: ● Администрирование ● Модернизация ● Масштабирование МинусыМинусы: ● Уязвимость для атак на центральный узел ● ?? Политическая централизация Плюсы:Плюсы: ● Отсутствия единой точки отказа ● Открытость МинусыМинусы: ● Синхронизация ● Масштабирование ● ?? Политическая децентрализация
  • 9. Problematics ● Double spending ● У Alice есть монета, она создает 2 транзакции: Alice → Bob и Alice → Charlie. ● Кто получит монету? ● Централизованное решение – кому первому отправлена транзакция (с т.з. банка) ● В децентрализованном мире определить кому раньше непросто
  • 10. Transaction life cycle ● Пользовалеть A создает транзакцию TX по переводу 1 монету пользователю B и рассылает ее в сеть ● Майнеры добавляют эту транзакцию в UTX ● Когда майнер получает право создать блок, он собирает транзакции из UTX в блок и рассылает блок его ● Каждый блок ссылается на предыдущий блок, таким образом транзакции упорядовачиваются по времени
  • 11. Blockchain ● Если в блок попала транзакция от Alice к Bob, то в него и в следующие блоки уже не можен попасть транзакция Alice → Charlie
  • 12. Blocktree ● Создание блока – случайный процесс ● Могут возникать форки 54 (A→B)Block 53 55 (A→C)
  • 13. Blocktree ● Создание блока – случайный процесс ● Могут возникать форки ● Правильная цепочка – самая длинная Block N54 (A→B) Block 56 Block 59Block 53 55 (A→C) Block 57 Block 58 Block NBlock 60
  • 14. Blocktree ● Eventual consistency ● Вероятность форков экспоненциально убывает с длиной Block N54 (A→B) Block 56 Block 59Block 53 55 (A→C) Block 57 Block 58 Block NBlock 60 Block NBlock 61
  • 15. Forks ● В биткоине ~ 2% блоков в форках ● Известны случаи форков в 6 и 3 блоков из-за ошибок в настройке софта ● Реально 1, очень редко 2 блока ● Нужно ждать подтверждение транзакций! Чем больше сумма – тем дольше ● За блок майнеры получают награду ~ $17000
  • 16. CAP teorem ● В любой реализации распределённых вычислений возможно обеспечить не более двух из трёх следующих свойств: consistency, availability, partition tolerance ● В блокчейне – eventual consistency
  • 17. Overview conclusion ● Блокчейн – децентрализованная база данных с сервером времени ● Блокчейн решает проблему double spending в децентрализованных системах
  • 19. (De)centralized mining ● Высокий порог входа ● Объединение майнеров в пулы (делегирование права майнить) ● 5 майнинг пулов Биткоина владеют 50+% мощностей
  • 20. (De)centralized supply ● Нет регуляторов – раздолье для мошенников ● Явный premine ● Неявный premine ● Нелинейная экономическая модель ● ICO с собственными вложениями ● Манипуляции рынком
  • 21. (De)centralized governance ● Кто платит, тот и контролирует разработку (?) - можно не принимать изменения, которые внесли программисты (Ethereum classic) ● Культ личности – если большинство участников сети верят в лидера проекта, он может делать все что хочет (Ethereum) ● Мало кто может понять предложенные изменения ● Учитываются только голоса майнеров, хотя в любом блокчейне много заинтересовынных сторон ● Теорема Эрроу
  • 22. (De)centralized services ● Большинство пользователей не смотрят в блокчейн, а доверяют сторонним сервисам ● Большинство пользователей используют web кошелек или держат деньги на биржах ● Для большинства криптовалют одна и та же команда разрабатывает софт, кошелек, обозреватель блоков, ... Пример STEEMIT: ● Все доверяют https://steemit.com/ ● Есть цензура ● Контроль над деньгами у разработчиков
  • 23. Centralization as a solution ● Много узлов сложно синхронизировать => уменьшим количество узлов ● “masternodes”, “witnesses”, “delegates”, “federations” ● В пределе – все доверяют одной ноде, которая быстро и эффективно обрабатывает транзакции, без задержек, форков, ... ● R3: “no blockchain because we don’t need one”
  • 25. Problematics ● Double spending ● У Alice есть монета, она создает 2 транзакции: Alice → Bob и Alice → Charlie. ● Кто получит монету? ● Централизованное решение – кому первому отправлена транзакция (с т.з. банка) ● В децентрализованном мире определить кому раньше непросто
  • 27. Input-output transactions ● Применяется в Bitcoin, Litecoin, Monero, Dash, ... ● Есть только input и output ● Output можно потратить только полностью
  • 28. Input-output transactions ● Транзакция – это связь между input и output ● ∑inputs >= ∑outputs ● Кроме coinbase транзакции ● У каждого output есть скрипт ● Чтобы потратить output, нужно подать на вход скрипта такие данные, чтобы получить true ● Большинство скриптов требуют подпись на вход
  • 29. Input-output transactions ● Очень гибкая модель ● Не очень понятная интуитивно ● Большой размер транзакций ● Небольшая пропускная способность ● Микро остатки
  • 30. Account transaction ● Применяется в Ethereum, Waves, Nxt, … ● Аккаунты (публичные ключи) с изменяемым балансом ● Транзакция – перевод N монет от одного аккаунта другому ● Транзакции подписанны ● Нужна дополнительная защита от replay атак
  • 32. Consensus ● Набор транзакции – это блок ● Связанные в цепочку блоки – это блокчейн ● Косенсус определяет последовательность блоков в блокчейне ● Какая из двух транзакций (Alice → Bob и Alice → Charlie) раньше окажется в блокчейне – та и была раньше
  • 33. Hash function Свойство идеальной хэш функции: ● Одно и то же сообщение всегда приводит к одному и тому же хэшу ● Хэш быстро вычисляется для любого сообщения ● Невозможно получить исходное сообщение по его хешу (кроме как полным перебором) ● Невозможно найти 2 разных сообщения с одинаковым хэшем ● По 2 хэшам невозможно понять, насколько близки исходные сообщения
  • 34. Consensus: Proof-of-Work Row 1 Row 2 Row 3 Row 4 0 2 4 6 8 10 12 Column 1 Column 2 Column 3
  • 35. Consensus: Proof-of-Work ● Вероятность создать блок пропорциональна вычислительной мощности ● One-CPU-one-vote ● Распределенный timestamp ● Чтобы изменить блок, нужно проделать работу по созданию всех блоков после него ● Безопасен ● Сжигает ресурсы ● Полезный PoW: primecoin, permacoin
  • 36. Consensus: Proof-of-Stake ● Вероятность создать блок ~ балансу ● Не сжигаются ресурсы ● Подразумевает timestamp ● Нет случайности => griding attacks ● Дешево создавать блоки => History attack ● Nothing-at-stake attack ● Bribe attack
  • 37. Consensus ● Proof-of-Work ● Proof-of-Stake ● Proof-of-Burn ● Proof-of-Space ● Proof-of-Retrievability ● …. ● Hybrid
  • 39. P2p: eclipse attacks ● Bitcoin: http://ia.cr/2015/263 ● Ethereum: https://goo.gl/mQv58v
  • 40. P2p: throughput ● On Scaling Decentralized Blockchains” http://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf
  • 41. P2p: throughput ● Block size/ X% effective throughput < block interval ● Для сети биткоин (~4000 нод) ● Для маленьких блоков превалирует latency, минимальное время между блоками для X90% - 12 секунд. ● Для 10 мин. размер блока < 4 Мб для X90% и 36 Мб. для X50%
  • 43. Throughput ● Onchain: Bitcoin-NG, Byzcoin, Unlimited ● Уменьшение размера транзакций ● Offchain: Lightning, Sprites ● Sidechains ● Частично централизованные схемы (DPoS, Byteball, Dash, Sidechains 2)
  • 44. Confirmation delay ● Более частые блоки – больше форков ● GHOST – используем блоки форков ● Bitcoin-NG, Byzcoin ● Частично централизованные схемы
  • 45. Privacy ● Bitcoin псевдоанонимен ● Есть анонимные форки – monero, zcache ● Ring signatures, composite signatures, zk-snark
  • 46. Smart money ● Язык смарт контрактов (Solidity, Tezos, ia.cr/2016/1156) ● Продвинутый язык аутентификации
  • 47. Light validation ● SPV nodes ● Rollerchain (https://arxiv.org/pdf/1603.07926.pdf) ● Authenticated data structures (ia.cr/2016/994) ● PoPoW (http://fc16.ifca.ai/bitcoin/papers/KLS16.pdf)
  • 48. Controllable ● Для внутренней валюты нужен контроль ● RsCoin - криптоваюта с центробанком ● Изменяемые блокчейны