Слайд 1Общее представление о технологии Blockchain
Ведение распределённого реестра в условиях низкого
уровня доверия
Слайд 2Право владения и доказательство
Право владения:
Идентификация владельца;
Идентификация объекта владения;
Установление связи объекта
с владельцем.
Паспорт владельца, паспорт объекта, реестр. Реестр должен содержать самые
актуальные сведения о владении. Как правило, реестром управляют на государственном уровне.
Эта фотография, автор: Неизвестный автор, лицензия: CC BY-SA
Слайд 5Цели и свойства реестра
Реестр представляет хронологию транзакций (минимальная логически осмысленная
операция, которая имеет смысл и может быть совершена только полностью)
Слайд 6Архитектура программного обеспечения
Объединение централизованной и распределённой архитектур.
Распределённая и централизованная архитектуры
Если
существует отдельный компонент, например кнопка выключения, который может остановить работу
всей системы в целом, то такая система не является распределённой
Слайд 8Распределённые системы
Достоинства:
Более высокая вычислительная мощность;
Снижение накладных расходов;
Надёжность;
Возможность естественного роста.
Недостатки:
Издержки на
координацию работы;
Издержки на организацию обмена информацией;
Зависимость от сетевой среды;
Сложное программное
обеспечение;
Проблемы безопасности.
Слайд 9Распределённые пиринговые системы
Peer – to – peer (P2P)
В пиринговой системе
все узлы имеют равные права и одинаковые роли. Вычислительные ресурсы
каждого узла, доступны для других узлов системы.
Примером централизованной пиринговой системы является сеть Napster, обеспечивающая сопровождение центральной базы данных всех узлов, соединенных с системой, и музыкальных композиций, доступных всем этим узлам.
Слайд 10Подключение к P2P сети
Присоединение к сети
Сообщение “getaddr()”
Сид
Ответ Сида
Слайд 11Целостность программной системы
Целостность (integrity) программной системы включает три главных компонента:
целостность данных
(data integrity): данные, используемые и сопровождаемые системой, должны быть полными,
корректными и непротиворечивыми;
целостность поведения (behavioral integrity): система ведет себя, как предполагается, и не допускает логических ошибок;
безопасность (защита) (security): система способна ограничить доступ к своим данным и функциональным возможностям, разрешая его только авторизованным пользователям.
Слайд 12Блокчейн и целостность распределённой системы
Tехнология блокчейна может рассматриваться как инструментальное
средство для достижения и поддержки целостности в распределенных системах. Распределенные
пиринговые системы могут использовать блокчейн для обеспечения целостности системы. Следовательно, связь между полностью распределенными пиринговыми системами и технологией блокчейна означает использование последней для обеспечения целостности таких систем.
Слайд 13Целостность и доверительность
Доверительность и целостность – это две стороны одной
монеты.
Осознание важности доверия для существования пиринговых систем приводит к ключевому
вопросу: как обеспечить и поддерживать целостность в полностью распределенной пиринговой системе?
Обеспечение и поддержка целостности в полностью распределенных пиринговых системах зависят от множества факторов, наиболее важными из которых являются:
знание количества узлов или партнеров;
знание степени доверия (уровня надежности) между партнерами.
Слайд 15Угрозы целостности
Для упрощения можно рассматривать два основных источника опасности для
целостности в пиринговых системах:
технические отказы (сбои);
злоумышленники в системе.
Главная задача блокчейна
– обеспечение и поддержка целостности в полностью распределенной пиринговой системе, состоящей из неизвестного количества партнеров с неизвестным уровнем надежности и доверительности.
Слайд 16Значение термина
Термин Блокчейн означает:
структуру данных;
алгоритм;
набор (стек) технологий;
группу полностью распределенных пиринговых
систем с общей прикладной областью.
Управление правом владения собственностью и его
осуществление являются наиболее распространенным вариантом практического применения блокчейна, но далеко не единственным
Слайд 17Блокчейн и право владения
Доказательство в форме реестра является главным действующим
фактором при определении права владения. Но что произойдет, если реестр
поврежден или уничтожен? В этом случае реестр перестает соответствовать действительности. Это настоящая катастрофа
отдельные реестры хранятся на компьютерах (узлах) пиринговой системы;
алгоритм блокчейна отвечает за объединение отдельных узлов в единую согласованную версию, представляющую состояние прав владения;
целостность системы основывается на её способности формировать истинные утверждения о праве владения;
криптография необходима для создания надежных средств идентификации, аутентификации и авторизации, а также для обеспечения защиты данных.
Слайд 18Двойное расходование
Передача информации всем компонентам системы требует времени. Поскольку не
все партнеры обладают актуальной информацией, появляется возможность их некорректного использования
неким лицом, уже обладающим самой свежей информацией.
Проблему двойного расходования можно рассматривать как проблему обеспечения логической согласованности данных в распределенных пиринговых системах. Проблема двойного расходования представляет собой частный пример нарушения целостности системы.
Слайд 19Задачи, решаемые Блокчейн
описание права владения (хронология транзакций);
защита права владения (идентификация,
аутентификация);
хранение данных транзакций;
подготовка реестров к распространению в ненадежной среде (запрет
на изменение);
распространение реестров;
добавление новых транзакций в реестры (каждый участник – контролёр);
определение, в каких реестрах представлены правильные данные (распределённый консенсус).
Слайд 20Описание права владения
Вместо описания текущего состояния прав владения по инвентаризационным
данным (то есть по списку имеющихся в настоящее время объектов
собственности всех владельцев) обслуживается список всех фактов передачи права владения в реестре.
Полная хронологическая запись данных транзакции, сохраняемая в реестре, становится контрольной журнальной записью, которая свидетельствует о том, каким образом то или иное лицо получило объект
Слайд 21Хеширование данных
Криптографические Хеш (Hash) функции:
быстрая генерация хэш-значений для любого типа
данных;
детерминированность;
обеспечение псевдослучайности хэш-значений;
односторонние функции;
устойчивость к коллизиям.
Слайд 23Пример Хеш значений
www.blockchain-basics.com
Слайд 24Шаблоны применения Хеш-функций к данным
независимое хэширование;
повторяющееся хэширование;
комбинированное хэширование;
последовательное хэширование;
иерархическое хэширование.
Слайд 25Хеш-указатель
Хеш-указатель (рис. 1.5) – это указатель на место хранения информации
и (криптографический ) хеш этой информации
Имея хеш-указатель, можно
запросить информацию,
на которую он указывает ;
верифицировать то, что хеш не изменился, как следствие, не изменилась информация.
Слайд 27Идентификация и защита пользователей
Симметричная криптография
Асимметричная криптография
Существуют два способа практического применения
пары ключей, отличающихся направлением потока данных:
• от открытого ключа к
закрытому ключу;
• от закрытого ключа к открытому ключу.
Слайд 28Цифровая подпись
Создание
Использование
Слайд 29Данные транзакции
идентификатор учётной записи, из которой право владения передаётся в
другую учётную запись (открытый ключ);
идентификатор учётной записи, которая принимает право
владения;
количество передаваемых объектов владения;
время, в которое выполняется данная транзакция;
денежный взнос, выплачиваемый системе за выполнение транзакции;
подтверждение того, что владелец учётной записи, из которой передается право владения, действительно согласен с фактом передачи права (подпись).
Слайд 30Структура данных блокчейна
Цель блокчейн-системы – поддержание полной хронологии данных транзакций
в упорядоченном виде
Слайд 31Добавление новых транзакций
Создать новое дерево Меркле, содержащее все данные новой
транзакции, которую нужно добавить;
Создать заголовок нового блока (Заголовок блока 2),
содержащий хэш-ссылку (B1), указывающую на заголовок предыдущего блока (Заголовок блока 1), и корень дерева Меркле, содержащий данные новой транзакции (R34), как показано на рисунке
Слайд 32Добавление новых транзакций
Создать новую хэш-ссылку (B2) на заголовок нового блока
и объявить её новой головой обновлённой структуры данных блокчейна. Следует
помнить, что ссылка, которая указывает на самый последний добавленный элемент данных, называется головой (head) всей цепочки в целом
Изменение данных невозможно или чрезвычайно затруднено (экономически нецелесообразно)
Слайд 33Заголовок блока (открытый блокчейн)
корень дерева Меркле, содержащего данные транзакции;
хэш-ссылка на
заголовок предыдущего блока;
уровень сложности хэш-головоломки;
время начала решения хэш-головоломки;
одноразовый случайный код
(nonce), который решает данную хэш-головоломку.
www.blockchain-basics.com
Слайд 34Распространение реестра
Сохранение существующих соединений (ping-pong);
Установление новых соединений;
Распространение новой информации (gossip).
Главная
задача состоит в том, чтобы все узлы системы получали полную
информацию обо всех транзакциях без обращений к какому-либо центральному компоненту
Слайд 35Добавление блоков
1. Новые данные транзакций и новые блоки передаются всем
узлам в стиле протокола gossip.
2. Каждый узел собирает новые данные
транзакций в почтовом ящике для приёма сообщений и выбирает необходимые для обработки.
3. Каждый узел обрабатывает новые блоки немедленно с наивысшим приоритетом.
4. Каждый узел обрабатывает новые данные транзакций, проверяя их авторизацию, а также формальную и семантическую корректность.
5. Каждый узел объединяет только проверенные корректные данные транзакций в дерево Меркле и начинает процесс создания нового блока посредством решения соответствующей хэш-головоломки.
6. После того как узел завершает решение хэш-головоломки, он рассылает только что созданный блок всем прочим узлам.
7. Каждый узел обрабатывает новые блоки, проверяя решение соответствующей хэш-головоломки, а также проверяя все содержащиеся в блоке данные транзакции на формальную корректность, семантическую корректность и авторизацию.
8. Каждый узел добавляет корректные проверенные блоки в собственную копию структуры данных блокчейна.
9. Если новый полученный блок идентифицирован как некорректный, то он отвергается, и узлы продолжают обработку данных транзакции или завершают решение хэш-головоломки нового блока.
Слайд 36Добавление блоков
10. Если новый полученный блок идентифицирован как корректный, то
узлы удаляют те транзакции, которые содержатся в этом блоке, из
своих почтовых ящиков и начинают обработку новых данных транзакции и создание нового блока.
11. Если блок, ранее добавленный в структуру данных блокчейна, впоследствии идентифицируется как некорректный или бесполезный, то такой блок и все связанные с ним последующие блоки будут удалены из структуры данных блокчейна, а данные транзакций из этих блоков снова добавляются в почтовый ящик для повторной обработки.
12. Узел, чей блок был принят, в качестве поощрения получает вознаграждения за все транзакции, содержащиеся в этом блоке.
13. Если блок удаляется из структуры данных блокчейна, то вся сумма вознаграждения снимается с узла, добавившего этот блок.
Правила конкуренции устанавливают простой двухфазный режим, управляющий работой каждого узла в сети. В любой момент времени все узлы системы находятся в одной из двух фаз:
1) исследование нового блока, созданного и добавленного одним из узлов;
2) упорная попытка стать следующим узлом, создающим новый блок, который обязательно будет исследоваться и оцениваться всеми прочими партнёрами.
Слайд 37Выбор хронологии транзакций (блоков)
Критерий самой длинной цепочки
Слайд 38Чем глубже в утверждённой корректной цепочке расположен блок, тем:
раньше по
времени он добавлен;
больше времени прошло с момента его включения в
структуру данных блокчейна;
больше суммарных усилий было затрачено на добавление последующих блоков;
меньше он подвержен воздействию случайных изменений в блоках, принадлежащих самой длинной цепочке;
меньше вероятность его удаления;
больше обосновано его включение в структуру узлами системы;
более прочно он закреплён в общей хронологии узлов.
Слайд 39Устойчивость против сторонних манипуляций
Определение нового «корректного» пути, начинающегося с одного
из внутренних блоков структуры данных блокчейна, требует перехвата и установления
контроля для пути, поддерживаемого большинством узлов. Этот факт является основой устойчивости и надёжности блокчейн-системы.
Установление нового пути посредством захвата и установления контроля над путем, поддерживаемым большинством узлов, невозможно для любого атакующего узла, обладающего меньшей вычислительной мощностью, чем большинство.
Слайд 40Следствия выбора единственной цепочки
появление блоков-«сирот»;
отмена поощрений;
уточнение права владения;
повторная обработка транзакций;
увеличение
размера общего ствола;
сохранение общей целостности;
устойчивость против сторонних манипуляций
Эта фотография, автор:
Неизвестный автор, лицензия: CC BY-SA
Слайд 41Плата за сохранение целостности
При выборе инструмента оплаты необходимо учитывать перечисленные
ниже последствия:
воздействие на целостность системы;
воздействие на открытость системы;
воздействие на распределённую
сущность системы;
воздействие на философию системы.
Слайд 42Воздействие на целостность системы:
Инструмент компенсации должен представлять ценность;
Иметь доверие;
Быть надёжным.
Инструмент
компенсации напрямую связан со степенью доверия ко всей блокчейн системе
Воздействие
на открытость системы:
Что, если компенсация производится с помощью инструмента, доступного или разрешённого только в отдельных странах, или является субъектом законов, ограничивающих движение денежных средств? В этом случае конкретный инструмент обеспечения компенсации противодействует технической открытости системы из-за экономических ограничений
Слайд 43Влияние на распределённую сущность системы:
Но что происходит, если инструмент
обеспечения компенсации управляется и контролируется единственной центральной организацией? Фактически это
означает тайное внедрение в систему централизованного управления. Это противоречит самой сущности распределённой системы
Воздействие на философию системы:
можно ли спроектировать распределенную пиринговую систему с сохранением высокой степени доверия, если в ней используется инструмент обеспечения компенсаций, который противодействует основным свойствам этой системы?
Слайд 44Требуемые свойства инструмента обеспечения компенсаций
доступность в цифровой форме
приемлемость инструмента как
средства платежей в реальном мире;
приемлемость инструмента как средства платежей во
всех странах;
инструмент не должен являться субъектом законодательных ограничений;
стабильная стоимость;
высокая степень доверия;
отсутствие управления и контроля со стороны единственной центральной организации или учреждения.
Криптовалюта – это независимая цифровая валюта, право владения которой управляется блокчейн-системой, использующей ту же валюту как инструмент выплаты компенсаций своим членам за поддержку целостности системы.
Слайд 46Четыре версии блокчейн-системы как результат сочетаний ограничений прав на чтение
и на запись
Слайд 47Практическое применение Блокчейн
Свойства блокчейн-системы:
неизменяемость;
возможность только добавления данных;
упорядоченность;
маркировка метками времени;
открытость и
прозрачность;
безопасность (идентификация, аутентификация и авторизация);
общая конечная (итоговая) целостность.
Эти свойства не
зависят от особенностей хранимых в ней данных. Поэтому можно рассматривать блокчейн-систему как особый тип хранилища для цифровых объектов. Такой подход создаёт огромное разнообразие потенциальных возможностей для практического применения технологии блокчейна.
Слайд 48Практическое применение Блокчейн
Общие шаблоны:
подтверждение существования;
подтверждение несуществования;
подтверждение времени (наступления какого-либо события);
подтверждение
порядка следования;
подтверждение подлинности личности;
подтверждение авторства;
подтверждение права владения собственностью
Эта фотография, автор:
Неизвестный автор, лицензия: CC BY
Слайд 49Bitcoin.com
Полностью распределённая пиринговая система, управляющая правом владения новым типом цифровых
денег, которые, в свою очередь, используются для выплаты компенсаций членам
этой системы за проверку и добавление новых блоков; на 11.04.2018 BTC=$6820,26
Программное обеспечение Bitcoin Core — это комплекс программного обеспечения с открытым исходным кодом. Оно имеет лицензию открытого программного обеспечения MIT, которая представляет собой свободную лицензию на программное обеспечение с открытым исходным кодом
Слайд 50Основные параметры
10 минут – среднее время, затрачиваемое на создание блока
1
млн. байтов в блоке
20,000 операций подписывания на блок
100 млн. сатоши
на биткоин
21 млн. – максимально возможное число биткоинов
50, 25, 12.5… поощрение за добычу Биткоинов
Слайд 51Ключевые разработчики
С одной стороны, ключевые разработчики влиятельны, так как именно
они определяют изменения кода Bitcoin Core и реализуют правила по
умолчанию для системы. С другой стороны, так как Bitcoin Core является программным обеспечением с открытым исходным кодом, любой может его изменить, создав форк (от англ. fork – развилка, вилка).
Слайд 52Альткоины (альтернативные криптовалюты)
Namecoin (Нэймкоин) – 2011. Доменные имена *.bit, одновременный
майнинг BTC и NMC.
Litecoin (Лайткоин) – 2011. 50 LTC вознаграждение,
каждый 840000 блоков уменьшается вдвое, предел – 84 млн. LTC. 2,5 мин. на блок, на 11.04.2018 LTC=$113,24;
Peercoin (Пиркоин) - 2012. Proof-of-Stake (POS). Гибридный мацнинг;
Doogecoin (Догикоин) – 2013. Благотворительность
Слайд 53Сайдчейн (SideChain)
Сайдчейн (sidechain) — это новый блокчейн, базирующийся на родительской
биткоин-цепочке (например). Сайдчены реализуют новые финансовые экосистемы посредством интеграции в
биткоин, что отличает их от других криптовалют, игнорирующих уже существующие сети:
ConsenSys;
BTC Relay;
Rootstock;
YuansuChain
Эта фотография, автор: Неизвестный автор, лицензия: CC BY-NC-ND
Слайд 54RIPPLE (XPR)
Ripple была создана в 2012 году как альтернативный метод
расчёта для банковской системы, но и позволяет работу обычных пользователей;
Ripple
Labs отошли от майнинга, выпустив 100 млд. монет XPR. XPR=1000000 капель.
За транзакции взымается комиссия;
На 11.04.2018 XPR=$0,49
Слайд 55Ethereum
Блокчейн-криптоплатформа разработки децентрализованных приложений на базе смарт-контрактов с открытым исходным
кодом. Ethereum Classic предоставляет валюту «Эфир», который может передаваться от
одного участника сети другому и используется для оплаты вычислений, производимых публичными узлами сети, а также возможность создавать собственные цифровые активы на блокчейне Ethereum Classic. Эфир, оплаченный за произведенные вычисления, называется «Газ». Газ служит не только для оплаты за произведённые вычисления, но и предотвращает атаки на сеть