Blockchain: under the hood

28
Под капотом. Сравнение блокчейн систем Мешков Дмитрий

Transcript of Blockchain: under the hood

Page 1: Blockchain: under the hood

Под капотом.Сравнение блокчейн систем

Мешков Дмитрий

Page 2: Blockchain: under the hood

Structure

● Решаемая проблема

● Транзакционный уровень

● Консенсус

● P2p сеть

● Возможные улучшения

Page 3: Blockchain: under the hood

Why?

Page 4: Blockchain: under the hood

Governance

● Код – это закон

● Программисты обладают правом писать закон?

● Можно не принимать изменения, которые внесли программисты (Ethereum classic)

● Голосования (майнеров, владельцев монет, мастернод, ...)

Page 5: Blockchain: under the hood

Problematics

● Double spending● У Alice есть монета, она создает 2 транзакции:

Alice → Bob и Alice → Charlie. ● Кто получит монету?● Централизованное решение – кому первому

отправлена транзакция● В децентрализованном мире определить кому

раньше непросто

Page 6: Blockchain: under the hood

Transasctions

Page 7: Blockchain: under the hood

Input-output transactions

● Применяется в Bitcoin, Litecoin, Monero, Dash, ...

● Есть только input и output

● Output можно потратить только полностью

Page 8: Blockchain: under the hood

Input-output transactions

● Транзакция – это связь между input и output

● ∑inputs >= ∑outputs

● Кроме coinbase транзакции

● У каждого output есть скрипт

● Чтобы потратить output, нужно подать на вход скрипта такие данные, чтобы получить true

● Большинство скриптов требуют подпись на вход

Page 9: Blockchain: under the hood

Input-output transactions

● Очень гибкая модель

● Не очень понятная интуитивно

● Большой размер транзакций

● Небольшая пропускная способность

● Микро остатки

Page 10: Blockchain: under the hood

Account transaction

● Применяется в Ethereum, Waves, Nxt, …● Аккаунты (публичные ключи) с изменяемым

балансом● Транзакция – перевод N монет от одного

аккаунта другому● Транзакции подписанны

● Нужна дополнительная защита от replay атак

Page 11: Blockchain: under the hood

Consensus

Page 12: Blockchain: under the hood

Consensus

● Набор транзакции – это блок● Связанные в цепочку блоки – это блокчейн● Косенсус определяет последовательность

блоков в блокчейне● Какая из двух транзакций (Alice → Bob и

Alice → Charlie) раньше окажется в блокчейне – та и была раньше

Page 13: Blockchain: under the hood

Consensus: Proof-of-Work

Row 1 Row 2 Row 3 Row 40

2

4

6

8

10

12

Column 1

Column 2

Column 3

Page 14: Blockchain: under the hood

● Последовательность блоков

● Дерево блоков

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

Page 15: Blockchain: under the hood

Consensus: Proof-of-Work

● Вероятность создать блок пропорциональна вычислительной мощности

● One-CPU-one-vote

● Распределенный timestamp

● Чтобы изменить блок, нужно проделать работу по созданию всех блоков после него

● Безопасен

● Сжигает ресурсы

● Полезный PoW: primecoin, permacoin

Page 16: Blockchain: under the hood

Consensus: Proof-of-Stake

● Вероятность создать блок ~ балансу● Не сжигаются ресурсы

● Подразумевает timestamp● Нет случайности => griding attacks

● Дешево создавать блоки => History attack● Nothing-at-stake attack

● Bribe attack

Page 17: Blockchain: under the hood

Consensus

● Proof-of-Work● Proof-of-Stake

● Proof-of-Burn● Proof-of-Space

● Proof-of-Retrievability● ….

● Hybrid

Page 18: Blockchain: under the hood

Network layer

Page 19: Blockchain: under the hood

P2p: eclipse attacks

● Bitcoin: http://ia.cr/2015/263

● Ethereum: https://goo.gl/mQv58v

Page 20: Blockchain: under the hood

P2p: throughput

● On Scaling Decentralized Blockchains” http://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf

Page 21: Blockchain: under the hood

P2p: throughput

● Block size/ X% effective throughput < block interval

● Для сети биткоин (~4000 нод)

● Для маленьких блоков превалирует latency, минимальное время между блоками для X90% - 12 секунд.

● Для 10 мин. размер блока < 4 Мб для X90% и 36 Мб. для X50%

Page 22: Blockchain: under the hood

Возможные улучшения

Page 23: Blockchain: under the hood

Throughput

● Bitcoin: 2-3 tx/s● Уменьшение размера транзакций

● Lightning● Bitcoin-NG, Byzcoin

● Sidechains● Частично централизованные схемы

(DPoS, Byteball, Dash)

Page 24: Blockchain: under the hood

Privacy

● Bitcoin псевдоанонимен ● Есть анонимные форки – monero, zcache

● Ring signatures, composite signatures, zk-snark

Page 25: Blockchain: under the hood

Storage scalability

● SPV nodes● Rollerchain

(https://arxiv.org/pdf/1603.07926.pdf)● Authenticated data structures (ia.cr/2016/994)

Page 26: Blockchain: under the hood

Confirmation delay

● Bitcoin – минимум 10 мин● Более частые блоки – больше форков

● GHOST – используем блоки форков● Bitcoin-NG, Byzcoin

● Быстрые подтверждения – больше доверия (Dash)

Page 27: Blockchain: under the hood

Controllable

● Для внутренней валюты нужен контроль● RsCoin - криптоваюта с центробанком

● Изменяемые блокчейны

Page 28: Blockchain: under the hood

Contacts

● http://www.slideshare.net/DmitryMeshkov● https://twitter.com/DmitryMeshkov

[email protected]