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