SlideShare a Scribd company logo
Сравнение блокчейн систем
Дмитрий Мешков
IOHK | SCOREX
Structure
1. Введение
2. Дизайн криптовалют
3. Алгоритмы консенсуса
4. Транзакционные модели
5. Возможные улучшения
6. Практическая часть
Введение
Scorex history
● Появление проекта Scorex (Jan 2015)
● Scorex стал частью IOHK (Nov 2015)
● Победа на Московском хакатоне (Nov 2015)
● Запуск Waves (May 2016)
● Scorex 2 (Nov 2016)
Why?
Governance
● Код – это закон
● Программисты обладают правом писать закон?
● Можно не принимать изменения, которые внесли
программисты (Ethereum classic)
● Голосования майнеров (почему майнеров?)
Problematics
● Double spending
● Alice → Bob, Alice → Charlie.
● Кто получит монету?
Дизайн криптовалют
Properties
● Consistency – вероятность иметь разные префиксы
отбросив последние k блоков экспоненциально
убывает с k
● Chain quality – участник, обладающий x%
голосующей мощности создаст не больше
ax% блоков
● Chain growth – блокчейн растет со временем
● (S)UF-CMA – только владелец приватного ключа
может создать валидную подпись данных
Blockchain
● Последовательность блоков
● Дерево блоков
Block 1 Block NGenesis Block N-2 Block N-1 Block NBlock N-3
Block 1 Block NGenesis Block 3 Block 6 Block 9Block 2
Block 4 Block 7
Block 5 Block NBlock 8
Minimal state
Может:
● Проверить, что транзакция валидна
● Применить транзакцию к стейту если да
● Одинаковая последовательность блоков
должна приводить к одинаковому стейту
Full node view
● Blockchain (blocktree)
● Minimal state
● UTX pool
● Vault
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%
Алгоритмы консенсуса
Consensus
● Определяет последовательность блоков,
которы будут применяться к minimal state
Consensus: Proof-of-Work
Consensus: Proof-of-Work
● Вероятность создать блок пропорциональна
вычислительной мощности
● One-CPU-one-vote
● Распределенный timestamp
● Difficulty recalculation
● Чтобы изменить блок, нужно проделать
работу по созданию всех блоков после него
● Безопасен
● Сжигает ресурсы
● Полезный 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
Транзакционные модели
Transactional layer: boxes
Bitcoin
Transactional layer: boxes
● Minimal state - набор закрытых коробок (box)
● В коробке лежит какая-то ценность (value)
● У коробки есть замок (proposition)
● Чтобы открыть замок, нужен ключ (proof)
● Помимо value можно положить еще что-то
● Об открытых коробках можно забыть
Transactional layer: boxes
● Очень гибкая модель
● Не очень понятная интуитивно
● Большой размер транзакций
● Небольшая пропускная способность
● Микро остатки
Transactional layer: accounts
● Применяется в Ethereum, Waves, Nxt, …
● Аккаунты (публичные ключи) с изменяемым
балансом
● Ключ → подпись
● Нужна дополнительная защита от replay атак
● Minimal state – не просто key→balance
Transactional layer
Транзакционная модель это:
● Proposition (подпись, скрипт, ...)
● Box structure (структура минимального
элемента minimal state)
● Minimal state
● Transaction and transaction language
● Block
Возможные улучшения
Storage scalability
● SPV
● Rollerchain (https://arxiv.org/pdf/1603.07926.pdf)
● Authenticated data structures (ia.cr/2016/994)
Privacy
● Биткоин псевдоанонимен
● Есть анонимные форки – monero, zcache
● Composite signatures
Confirmation delay
● Биткоин – минимум 10 мин
● Более частые блоки – больше форков
● GHOST – используем блоки форков
● Bitcoin-NG, Byzcoin
● Быстрые подтверждения – больше доверия
(Dash)
Throughput
● Биткоин < 7 tx/s
● Уменьшение размера транзакций
● Lightning
● Bitcoin-NG, Byzcoin
Controllable
● Для внутренней валюты нужен контроль
● RsCoin - криптоваюта с центробанком
Практическая часть
Gateway
Block 1 Block NBlock 1
Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M
Block N-2 Block N-1 Block NBlock N-3
GW
BTC
BTC assets
Gateway
Block 1 Block NBlock 1
Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M
Block N-2 Block N-1 Block NBlock N-3
GW
BTC
BTC assets
Block 1 Block NBlock 1 Block N-2 Block N-1 Block NBlock N-3
Gateway
Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M
GW
USD assets
BTC assets
Gateway
Пример: обмен Waves на ваш ассет
1. Выпустить asset, сохранить assetId
2. Запрашиваем высоту блокчейна
3. Запрашиваем блоки от последнего
обработанного до Height-N
4. Если нам пришли Waves – шлем в ответ
(или на адрес из attachment) ассеты
5. Если пришли ассеты – шлем в ответ Waves
6. Повторяем 2-5
Gateway
● Полученные монетки нужно безопасно
хранить
● Gateway – доверенное лицо
API: asset creation● Запрос
● Ответ
curl -X POST --header 'Content-Type: application/json' --header 'Accept:
application/json' --header 'api_key: hsepassword' -d '{ 
"name": "MyAsset1", 
"quantity": 1000000, 
"description": "string", 
"sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw", 
"decimals": 2, 
"reissuable": true, 
"fee": 1000000000 
}' 'http://88.198.13.202/assets/issue'
{
"type": 3,
"id": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV",
"timestamp": 1478092161907,
"signature":
"59osdLQEZYXJaeAX367xjRTURKBEs5gaicXctU7rFUdh8Wtk9XUxiJykc8HxRDYYVzUgK2QCimKMj
ZiDEVH5Tshf"
"assetId": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV",
...
}
API: blockchain height● Запрос
● Ответ
curl -X GET --header 'Accept: application/json'
'http://88.198.13.202/blocks/height'
{
"height": 174725
}
API: block at height
● Запрос
● Ответ
curl -X GET --header 'Accept: application/json'
'http://88.198.13.202/blocks/at/174725'
{
"version": 2,
"timestamp": 1476245589713,
"transactions": [
{
"sender": "3MtCKcpwnQvK2fiVWsKJAhVEpXuFFopDqeE",
"assetId": null,
"attachment": "3MtCKcpwnQvK2fiVWsKJAhVEpXuFFopDqeE",
"amount": 1000000000
}
}
API: asset transafer● Запрос
● Ответ
curl -X POST --header 'Content-Type: application/json' --header
'Accept: application/json' --header 'api_key: hsepassword' -d '{ 
"recipient": "3N5H9zpmFepcTxqZPpjGqwbjBnnTvCeWzeR", 
"assetIdOpt": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV", 
"feeAmount": 100000, 
"amount": 12, 
"attachment": "base", 
"sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw" 
}' 'http://88.198.13.202/assets/transfer'
{
"id": "DRFEtoNvYy6GNi4gnrkby1pC9wpBHjpUM2A5S4A9RPu6",
"sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw",
"recipient": "3N5H9zpmFepcTxqZPpjGqwbjBnnTvCeWzeR",
"assetId": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV",
"amount": 12,
"timestamp": 1478157520635,
"attachment": "base",
...
}
Contacts
● http://www.slideshare.net/DmitryMeshkov
● https://twitter.com/DmitryMeshkov
● dmitry.meshkov@iohk.io

More Related Content

What's hot

Масштабируемость блокчейн-систем: проблемы и решения
Масштабируемость блокчейн-систем: проблемы и решенияМасштабируемость блокчейн-систем: проблемы и решения
Масштабируемость блокчейн-систем: проблемы и решения
Alex Chepurnoy
 
Presentation bitcoin
Presentation bitcoinPresentation bitcoin
Presentation bitcoin
userloginasd
 
Блокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решенияБлокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решения
Dmitry Meshkov
 
Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущего
Sergei Tikhomirov
 
Криптовалюты
КриптовалютыКриптовалюты
Криптовалюты
Artem Uliantsev
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • Сбербанка
Blockchain School
 
Роман Снитко
Роман СниткоРоман Снитко
Роман Снитко
Ontico
 
Как устроен Blockchain. Лекция 4
Как устроен Blockchain. Лекция 4Как устроен Blockchain. Лекция 4
Как устроен Blockchain. Лекция 4
Pavel Kravchenko, PhD
 
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
DefconRussia
 
Ликбез • Блокчейн (Level 1)
Ликбез • Блокчейн (Level 1)Ликбез • Блокчейн (Level 1)
Ликбез • Блокчейн (Level 1)
Blockchain School
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico
 
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется всеОмские ИТ-субботники
 
"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research
it-people
 
Масштабирование Блокчейн Сетей
Масштабирование Блокчейн СетейМасштабирование Блокчейн Сетей
Масштабирование Блокчейн Сетей
Eugene Aseev
 
BlockChain - введение.
BlockChain - введение.BlockChain - введение.
BlockChain - введение.
Alexander Nemanov
 
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D..."Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
Julia Cherniak
 
NFX
NFXNFX
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
Ontico
 

What's hot (20)

Масштабируемость блокчейн-систем: проблемы и решения
Масштабируемость блокчейн-систем: проблемы и решенияМасштабируемость блокчейн-систем: проблемы и решения
Масштабируемость блокчейн-систем: проблемы и решения
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Presentation bitcoin
Presentation bitcoinPresentation bitcoin
Presentation bitcoin
 
Блокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решенияБлокчейн - проблемы и потенциальные решения
Блокчейн - проблемы и потенциальные решения
 
Bitcoin: деньги будущего
Bitcoin: деньги будущегоBitcoin: деньги будущего
Bitcoin: деньги будущего
 
Криптовалюты
КриптовалютыКриптовалюты
Криптовалюты
 
Блокчейн в компаниях • Сбербанка
Блокчейн в компаниях • СбербанкаБлокчейн в компаниях • Сбербанка
Блокчейн в компаниях • Сбербанка
 
Роман Снитко
Роман СниткоРоман Снитко
Роман Снитко
 
Как устроен Blockchain. Лекция 4
Как устроен Blockchain. Лекция 4Как устроен Blockchain. Лекция 4
Как устроен Blockchain. Лекция 4
 
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
 
Ликбез • Блокчейн (Level 1)
Ликбез • Блокчейн (Level 1)Ликбез • Блокчейн (Level 1)
Ликбез • Блокчейн (Level 1)
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
2013-01-05 01 Леонид Евдокимов. Web scale. Взорвется все
 
"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research"Программируемые деньги" Чепурной Александр, IOHK Research
"Программируемые деньги" Чепурной Александр, IOHK Research
 
Масштабирование Блокчейн Сетей
Масштабирование Блокчейн СетейМасштабирование Блокчейн Сетей
Масштабирование Блокчейн Сетей
 
BlockChain - введение.
BlockChain - введение.BlockChain - введение.
BlockChain - введение.
 
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D..."Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym D...
 
Сложное время
Сложное времяСложное время
Сложное время
 
NFX
NFXNFX
NFX
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
 

Viewers also liked

Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
Ontico
 
Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3
Pavel Kravchenko, PhD
 
Как работает Multisignature. Лекция 7
Как работает Multisignature. Лекция 7Как работает Multisignature. Лекция 7
Как работает Multisignature. Лекция 7
Pavel Kravchenko, PhD
 
Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2
Pavel Kravchenko, PhD
 
Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?
Pavel Kravchenko, PhD
 
Understanding private blockchains
Understanding private blockchainsUnderstanding private blockchains
Understanding private blockchains
Coin Sciences Ltd
 
INFRA v2
INFRA v2INFRA v2
Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3
Dima Starodubcev
 
Rarebyte - How We Use Unity and Optimize Our Games
Rarebyte - How We Use Unity and Optimize Our GamesRarebyte - How We Use Unity and Optimize Our Games
Rarebyte - How We Use Unity and Optimize Our Games
Rainer Angermann
 
Введение в смарт контракты. Лекция 8
Введение в смарт контракты. Лекция 8Введение в смарт контракты. Лекция 8
Введение в смарт контракты. Лекция 8
Pavel Kravchenko, PhD
 
Как работает майнинг. Лекция 5
Как работает майнинг. Лекция 5Как работает майнинг. Лекция 5
Как работает майнинг. Лекция 5
Pavel Kravchenko, PhD
 
Образовательный кредит
Образовательный кредитОбразовательный кредит
Образовательный кредит
sberbank-next
 
IOTA Presentation - BlockchainHub Graz Meetup #5
IOTA Presentation - BlockchainHub Graz Meetup #5 IOTA Presentation - BlockchainHub Graz Meetup #5
IOTA Presentation - BlockchainHub Graz Meetup #5
BlockchainHub Graz
 
Fingooroo - онлайн сервис p2p кредитования
Fingooroo - онлайн сервис p2p кредитованияFingooroo - онлайн сервис p2p кредитования
Fingooroo - онлайн сервис p2p кредитования
Evi Skrynnik
 
Анонимность в Биткоин. Часть 1. Лекция 9
Анонимность в Биткоин. Часть 1. Лекция 9Анонимность в Биткоин. Часть 1. Лекция 9
Анонимность в Биткоин. Часть 1. Лекция 9
Pavel Kravchenko, PhD
 
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
Jin Kolesnikov
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегKrivoy Rog IT Community
 
Краудлендинг (P2P кредитование) в России и мире
Краудлендинг (P2P кредитование) в России и миреКраудлендинг (P2P кредитование) в России и мире
Краудлендинг (P2P кредитование) в России и мире
Vladimir Baydin
 
CoinFest-2015-Moscow
CoinFest-2015-MoscowCoinFest-2015-Moscow
CoinFest-2015-Moscow
Yaroslav Loginov
 
Технологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущегоТехнологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущегоVladislav Mandryka
 

Viewers also liked (20)

Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)
 
Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3Как работают транзакции. Лекция 3
Как работают транзакции. Лекция 3
 
Как работает Multisignature. Лекция 7
Как работает Multisignature. Лекция 7Как работает Multisignature. Лекция 7
Как работает Multisignature. Лекция 7
 
Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2Как устроена криптовалюта. Лекция 2
Как устроена криптовалюта. Лекция 2
 
Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?Ledger-based системы. Альтернатива Bitcoin?
Ledger-based системы. Альтернатива Bitcoin?
 
Understanding private blockchains
Understanding private blockchainsUnderstanding private blockchains
Understanding private blockchains
 
INFRA v2
INFRA v2INFRA v2
INFRA v2
 
Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3Блокчейн: Разрыв Шаблона v.3
Блокчейн: Разрыв Шаблона v.3
 
Rarebyte - How We Use Unity and Optimize Our Games
Rarebyte - How We Use Unity and Optimize Our GamesRarebyte - How We Use Unity and Optimize Our Games
Rarebyte - How We Use Unity and Optimize Our Games
 
Введение в смарт контракты. Лекция 8
Введение в смарт контракты. Лекция 8Введение в смарт контракты. Лекция 8
Введение в смарт контракты. Лекция 8
 
Как работает майнинг. Лекция 5
Как работает майнинг. Лекция 5Как работает майнинг. Лекция 5
Как работает майнинг. Лекция 5
 
Образовательный кредит
Образовательный кредитОбразовательный кредит
Образовательный кредит
 
IOTA Presentation - BlockchainHub Graz Meetup #5
IOTA Presentation - BlockchainHub Graz Meetup #5 IOTA Presentation - BlockchainHub Graz Meetup #5
IOTA Presentation - BlockchainHub Graz Meetup #5
 
Fingooroo - онлайн сервис p2p кредитования
Fingooroo - онлайн сервис p2p кредитованияFingooroo - онлайн сервис p2p кредитования
Fingooroo - онлайн сервис p2p кредитования
 
Анонимность в Биткоин. Часть 1. Лекция 9
Анонимность в Биткоин. Часть 1. Лекция 9Анонимность в Биткоин. Часть 1. Лекция 9
Анонимность в Биткоин. Часть 1. Лекция 9
 
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
The Singularity Film. A few words about / Jin Kolesnikov / Курилка Гутенберга...
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денег
 
Краудлендинг (P2P кредитование) в России и мире
Краудлендинг (P2P кредитование) в России и миреКраудлендинг (P2P кредитование) в России и мире
Краудлендинг (P2P кредитование) в России и мире
 
CoinFest-2015-Moscow
CoinFest-2015-MoscowCoinFest-2015-Moscow
CoinFest-2015-Moscow
 
Технологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущегоТехнологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущего
 

Similar to Blockchain comparison

Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
FProg
 
Архитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтактеАрхитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтакте
TKConf
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
Ontico
 
Блокчейн, консенсус - как и зачем? #spblockchain
Блокчейн, консенсус - как и зачем? #spblockchainБлокчейн, консенсус - как и зачем? #spblockchain
Блокчейн, консенсус - как и зачем? #spblockchain
Дмитрий Плахов
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
Alexander Syrotenko
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programmingAndrei Pangin
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC Presenatation
JTGroup
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
CodeFest
 
Prezentatsia fork
Prezentatsia forkPrezentatsia fork
Prezentatsia fork
moldovaictsummit2016
 
Игрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботовИгрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботов
Alexander Kolotov
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
Vadim Tsesko
 
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...rit2011
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-pythonAndrey Smirnov
 
Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...tfmailru
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
Andrey Akinshin
 
Алексей Ильенко "In real-time with Apache Kafka"
Алексей Ильенко "In real-time with Apache Kafka"Алексей Ильенко "In real-time with Apache Kafka"
Алексей Ильенко "In real-time with Apache Kafka"
Fwdays
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
Smolensk Computer Science Club
 

Similar to Blockchain comparison (20)

Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
 
Purely practical data structures
Purely practical data structuresPurely practical data structures
Purely practical data structures
 
Архитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтактеАрхитектура растущего проекта, на примере ВКонтакте
Архитектура растущего проекта, на примере ВКонтакте
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Блокчейн, консенсус - как и зачем? #spblockchain
Блокчейн, консенсус - как и зачем? #spblockchainБлокчейн, консенсус - как и зачем? #spblockchain
Блокчейн, консенсус - как и зачем? #spblockchain
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Java tricks for high-load server programming
Java tricks for high-load server programmingJava tricks for high-load server programming
Java tricks for high-load server programming
 
PLC Presenatation
PLC PresenatationPLC Presenatation
PLC Presenatation
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
 
Prezentatsia fork
Prezentatsia forkPrezentatsia fork
Prezentatsia fork
 
Игрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботовИгрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботов
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
 
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
 
Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...Опыт внедрения и использования распределенной системы хранения данных на осно...
Опыт внедрения и использования распределенной системы хранения данных на осно...
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
 
Алексей Ильенко "In real-time with Apache Kafka"
Алексей Ильенко "In real-time with Apache Kafka"Алексей Ильенко "In real-time with Apache Kafka"
Алексей Ильенко "In real-time with Apache Kafka"
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 

More from Dmitry Meshkov

Dymmax Protocol overview
Dymmax Protocol overviewDymmax Protocol overview
Dymmax Protocol overview
Dmitry Meshkov
 
Ergo details
Ergo detailsErgo details
Ergo details
Dmitry Meshkov
 
Ergo Hong Kong meetup
Ergo Hong Kong meetupErgo Hong Kong meetup
Ergo Hong Kong meetup
Dmitry Meshkov
 
Ergo platform overview
Ergo platform overviewErgo platform overview
Ergo platform overview
Dmitry 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 approach
Dmitry 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 Systems
Dmitry Meshkov
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchains
Dmitry 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 blockchains
Dmitry 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
 
Scrypto designed 4
Scrypto designed 4Scrypto designed 4
Scrypto designed 4
Dmitry Meshkov
 
Real world blockchains
Real world blockchainsReal world blockchains
Real world blockchains
Dmitry Meshkov
 
Scorex framework
Scorex frameworkScorex framework
Scorex framework
Dmitry 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 comparison

  • 2. Structure 1. Введение 2. Дизайн криптовалют 3. Алгоритмы консенсуса 4. Транзакционные модели 5. Возможные улучшения 6. Практическая часть
  • 4. Scorex history ● Появление проекта Scorex (Jan 2015) ● Scorex стал частью IOHK (Nov 2015) ● Победа на Московском хакатоне (Nov 2015) ● Запуск Waves (May 2016) ● Scorex 2 (Nov 2016)
  • 6. Governance ● Код – это закон ● Программисты обладают правом писать закон? ● Можно не принимать изменения, которые внесли программисты (Ethereum classic) ● Голосования майнеров (почему майнеров?)
  • 7. Problematics ● Double spending ● Alice → Bob, Alice → Charlie. ● Кто получит монету?
  • 9. Properties ● Consistency – вероятность иметь разные префиксы отбросив последние k блоков экспоненциально убывает с k ● Chain quality – участник, обладающий x% голосующей мощности создаст не больше ax% блоков ● Chain growth – блокчейн растет со временем ● (S)UF-CMA – только владелец приватного ключа может создать валидную подпись данных
  • 10. Blockchain ● Последовательность блоков ● Дерево блоков Block 1 Block NGenesis Block N-2 Block N-1 Block NBlock N-3 Block 1 Block NGenesis Block 3 Block 6 Block 9Block 2 Block 4 Block 7 Block 5 Block NBlock 8
  • 11. Minimal state Может: ● Проверить, что транзакция валидна ● Применить транзакцию к стейту если да ● Одинаковая последовательность блоков должна приводить к одинаковому стейту
  • 12. Full node view ● Blockchain (blocktree) ● Minimal state ● UTX pool ● Vault
  • 13. p2p: eclipse attacks ● Bitcoin: http://ia.cr/2015/263 ● Ethereum: https://goo.gl/mQv58v
  • 14. p2p: throughput ● “On Scaling Decentralized Blockchains” http://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf
  • 15. p2p: throughput ● Block size/ X% effective throughput < block interval ● Для сети биткоин (~4000 нод) ● Для маленьких блоков превалирует latency, минимальное время между блоками для X90% - 12 секунд. ● Для 10 мин. размер блока < 4 Мб для X90% и 36 Мб. для X50%
  • 17. Consensus ● Определяет последовательность блоков, которы будут применяться к minimal state
  • 19. Consensus: Proof-of-Work ● Вероятность создать блок пропорциональна вычислительной мощности ● One-CPU-one-vote ● Распределенный timestamp ● Difficulty recalculation ● Чтобы изменить блок, нужно проделать работу по созданию всех блоков после него ● Безопасен ● Сжигает ресурсы ● Полезный PoW: primecoin, permacoin
  • 20. Consensus: Proof-of-Stake ● Вероятность создать блок ~ балансу ● Не сжигаются ресурсы ● Подразумевает timestamp ● Нет случайности => griding attacks ● Дешево создавать блоки => History attack ● Nothing-at-stake attack ● Bribe attack
  • 21. Consensus ● Proof-of-Work ● Proof-of-Stake ● Proof-of-Burn ● Proof-of-Space ● Proof-of-Retrievability ● …. ● Hybrid
  • 24. Transactional layer: boxes ● Minimal state - набор закрытых коробок (box) ● В коробке лежит какая-то ценность (value) ● У коробки есть замок (proposition) ● Чтобы открыть замок, нужен ключ (proof) ● Помимо value можно положить еще что-то ● Об открытых коробках можно забыть
  • 25. Transactional layer: boxes ● Очень гибкая модель ● Не очень понятная интуитивно ● Большой размер транзакций ● Небольшая пропускная способность ● Микро остатки
  • 26. Transactional layer: accounts ● Применяется в Ethereum, Waves, Nxt, … ● Аккаунты (публичные ключи) с изменяемым балансом ● Ключ → подпись ● Нужна дополнительная защита от replay атак ● Minimal state – не просто key→balance
  • 27. Transactional layer Транзакционная модель это: ● Proposition (подпись, скрипт, ...) ● Box structure (структура минимального элемента minimal state) ● Minimal state ● Transaction and transaction language ● Block
  • 29. Storage scalability ● SPV ● Rollerchain (https://arxiv.org/pdf/1603.07926.pdf) ● Authenticated data structures (ia.cr/2016/994)
  • 30. Privacy ● Биткоин псевдоанонимен ● Есть анонимные форки – monero, zcache ● Composite signatures
  • 31. Confirmation delay ● Биткоин – минимум 10 мин ● Более частые блоки – больше форков ● GHOST – используем блоки форков ● Bitcoin-NG, Byzcoin ● Быстрые подтверждения – больше доверия (Dash)
  • 32. Throughput ● Биткоин < 7 tx/s ● Уменьшение размера транзакций ● Lightning ● Bitcoin-NG, Byzcoin
  • 33. Controllable ● Для внутренней валюты нужен контроль ● RsCoin - криптоваюта с центробанком
  • 35. Gateway Block 1 Block NBlock 1 Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M Block N-2 Block N-1 Block NBlock N-3 GW BTC BTC assets
  • 36. Gateway Block 1 Block NBlock 1 Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M Block N-2 Block N-1 Block NBlock N-3 GW BTC BTC assets Block 1 Block NBlock 1 Block N-2 Block N-1 Block NBlock N-3
  • 37. Gateway Block 1 Block 2 Block N-2 Block N-1 Block NBlock 1 Block M-3 Block M-2 Block M-1 Block M GW USD assets BTC assets
  • 38. Gateway Пример: обмен Waves на ваш ассет 1. Выпустить asset, сохранить assetId 2. Запрашиваем высоту блокчейна 3. Запрашиваем блоки от последнего обработанного до Height-N 4. Если нам пришли Waves – шлем в ответ (или на адрес из attachment) ассеты 5. Если пришли ассеты – шлем в ответ Waves 6. Повторяем 2-5
  • 39. Gateway ● Полученные монетки нужно безопасно хранить ● Gateway – доверенное лицо
  • 40. API: asset creation● Запрос ● Ответ curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'api_key: hsepassword' -d '{ "name": "MyAsset1", "quantity": 1000000, "description": "string", "sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw", "decimals": 2, "reissuable": true, "fee": 1000000000 }' 'http://88.198.13.202/assets/issue' { "type": 3, "id": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV", "timestamp": 1478092161907, "signature": "59osdLQEZYXJaeAX367xjRTURKBEs5gaicXctU7rFUdh8Wtk9XUxiJykc8HxRDYYVzUgK2QCimKMj ZiDEVH5Tshf" "assetId": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV", ... }
  • 41. API: blockchain height● Запрос ● Ответ curl -X GET --header 'Accept: application/json' 'http://88.198.13.202/blocks/height' { "height": 174725 }
  • 42. API: block at height ● Запрос ● Ответ curl -X GET --header 'Accept: application/json' 'http://88.198.13.202/blocks/at/174725' { "version": 2, "timestamp": 1476245589713, "transactions": [ { "sender": "3MtCKcpwnQvK2fiVWsKJAhVEpXuFFopDqeE", "assetId": null, "attachment": "3MtCKcpwnQvK2fiVWsKJAhVEpXuFFopDqeE", "amount": 1000000000 } }
  • 43. API: asset transafer● Запрос ● Ответ curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'api_key: hsepassword' -d '{ "recipient": "3N5H9zpmFepcTxqZPpjGqwbjBnnTvCeWzeR", "assetIdOpt": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV", "feeAmount": 100000, "amount": 12, "attachment": "base", "sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw" }' 'http://88.198.13.202/assets/transfer' { "id": "DRFEtoNvYy6GNi4gnrkby1pC9wpBHjpUM2A5S4A9RPu6", "sender": "3Mxer4SkSwk4WTmn4zB5Zs54JU1LegiXSYw", "recipient": "3N5H9zpmFepcTxqZPpjGqwbjBnnTvCeWzeR", "assetId": "DU4ZTLahBUVctvMGUSMs6VSxd6Dj5WirBNtymoCywHeV", "amount": 12, "timestamp": 1478157520635, "attachment": "base", ... }