Содержание
- 2. Классический блокчейн, недостатки Понятие умных контрактов, принципы Пример типичного контракта, исходный код Ищем баги, эксплуатируем типичный
- 3. Blockchain 1.0
- 4. Как работает блокчейн (на примере Биткойна) Блокчейн – это интернет-дневник Пользователи формируют транзакции, подписывают их и
- 7. Все полные узлы хранят весь блокчейн и выполняют одни и те же действия Блокчейн обычно 100-200
- 8. Свойства Децентрализованный Открытый на чтение Открытый на запись Единый Неизменяемый С валютой Доверяемый Блокчейн Преимущества Неблокируемый/устойчивый
- 9. Обслуживание блокчейна (создание новых блоков, обработка транзакций) Процесс «тряски» блока, чтобы он стал «красивым» (значение хеша
- 11. Майнящий отец – горе в семье
- 13. Принцип записи Proof-of-Work Майнеры меняют заголовок блока, пока хеш не станет красивым Энергозатратно, особенно неэффективно Создать
- 14. Если ты опоздал, то покупаешь монетки задорого Если ты опоздал, ты майнишь мало Блок создается раз
- 16. Ethereum – Blockchain 2.0
- 17. Первый выпуск 30.07.2015 Поддерживает «умные контракты» и виртуальную машину для их исполнения Все кошельки делятся на
- 18. Чтобы код не загрузил сеть (не зациклился), используется Gas - топливо для исполнения, счетчик инструкций Вы
- 19. Можно написать пирамиду: если на кошелек-контракт приходит 1 эфир, высылаем в ответ 2 из поступивших после
- 20. Сложно получить случайные числа Не так просто «спрятать» какую-то информацию Нет связи с внешним миром Для
- 21. Главное использование контрактов – удобная организация «пузырей» Допустим, у вас отличная идея, и вы хотите собрать
- 22. Пишем типичный контракт
- 23. Пишем типичный контракт
- 24. Эксплуатируем контракт
- 26. Contract ExploitStarDAO
- 28. Память в EVM бывает: storage, memory, code, calldata, stack Storage – это адресное пространство с длиной
- 29. function payAll() { … var ToPay = TotalBonus / addresses.length; for (var i = 0; i
- 30. The DAO robbery
- 31. DAO (Decentralized Autonomous Organization) - организация, реализованная на смарт-контрактах The DAO – конкретная DAO, реализованная отчасти
- 32. DAO - Decentralized Autonomous Organization, организация, реализованная на смарт-контрактах The DAO – конкретная DAO, реализованная отчасти
- 33. function splitDAO(uint _proposalID, address _newCurator) noEther onlyTokenholders returns (bool _success) { …. // Burn DAO Tokens
- 35. Атакующий вызывал splitDAO с глубиной стека 30, имея на счету 258 ETH (~$5000) Перед раскруткой стека
- 36. Parity MultiSig Hack
- 37. MultiSig Wallet – контракт-кошелек, транзакции можно совершать с подтверждения нескольких владельцев 19.07.2017 хакер украл с трех
- 38. CoinDash Hack
- 39. 17.07.2017 началось ICO CoinDash Хакер взломал сайт и подменил адрес кошелька За час 2000 инвесторов накидали
- 40. SoftFork vs HardFork
- 41. Fork – изменение правил корректности блоков. Следствие – возможное раздвоение блокчейна Soft Fork – ужесточение правил
- 42. Soft Fork – more restrictions Пример: можно попросить майнеров не принимать транзакции с какого-то кошелька Hard
- 43. Short «forks» (up to five blocks) appear regularly if blocks mined simultaneously or distributed slowly. Such
- 44. Короткие форки (до пяти блоков) постоянно появляются, если блоки создаются одновременно или медленно распространяются. Они отмирают
- 46. Скачать презентацию