Blockchain: under the hood
-
Upload
dmitry-meshkov -
Category
Software
-
view
78 -
download
2
Transcript of Blockchain: under the hood
Под капотом.Сравнение блокчейн систем
Мешков Дмитрий
Structure
● Решаемая проблема
● Транзакционный уровень
● Консенсус
● P2p сеть
● Возможные улучшения
Why?
Governance
● Код – это закон
● Программисты обладают правом писать закон?
● Можно не принимать изменения, которые внесли программисты (Ethereum classic)
● Голосования (майнеров, владельцев монет, мастернод, ...)
Problematics
● Double spending● У Alice есть монета, она создает 2 транзакции:
Alice → Bob и Alice → Charlie. ● Кто получит монету?● Централизованное решение – кому первому
отправлена транзакция● В децентрализованном мире определить кому
раньше непросто
Transasctions
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) раньше окажется в блокчейне – та и была раньше
Consensus: Proof-of-Work
Row 1 Row 2 Row 3 Row 40
2
4
6
8
10
12
Column 1
Column 2
Column 3
● Последовательность блоков
● Дерево блоков
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
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%
Возможные улучшения
Throughput
● Bitcoin: 2-3 tx/s● Уменьшение размера транзакций
● Lightning● Bitcoin-NG, Byzcoin
● Sidechains● Частично централизованные схемы
(DPoS, Byteball, Dash)
Privacy
● Bitcoin псевдоанонимен ● Есть анонимные форки – monero, zcache
● Ring signatures, composite signatures, zk-snark
Storage scalability
● SPV nodes● Rollerchain
(https://arxiv.org/pdf/1603.07926.pdf)● Authenticated data structures (ia.cr/2016/994)
Confirmation delay
● Bitcoin – минимум 10 мин● Более частые блоки – больше форков
● GHOST – используем блоки форков● Bitcoin-NG, Byzcoin
● Быстрые подтверждения – больше доверия (Dash)
Controllable
● Для внутренней валюты нужен контроль● RsCoin - криптоваюта с центробанком
● Изменяемые блокчейны
Contacts
● http://www.slideshare.net/DmitryMeshkov● https://twitter.com/DmitryMeshkov