Страна выученных уроков: блокчейн – опыт первых пилотных проектов. Блокчейн хабрахабр


Bitcoin in a nutshell — Blockchain / Хабр

Blockchain — это технология, на базе которой построен Bitcoin. И если пару лет назад вся слава доставлась криптовалюте, то сегодня все чаще можно слышать смелые фразы вроде: "Forget Bitcoin, Long Live Blockchain". Активно развиваются платформы вроде Ethereum, IPFS или Overstock, которые рассматривают блокчейн не как инструмент для создания еще одной платежной системы, а как совершенно обособленную технологию, сравнимую по своей инновационности разве что с Интернетом.

В этой главе я расскажу вам, что из себя представляет блокчейн Bitcoin. Даже по сравнению с Ethereum, это жуткий анахронизм, но понимание принципов его работы вам сильно поможет, если вы решите разобраться с более сложными проектами.

Book

Table of content

  1. Blockchain for dummies
  2. Structure
  3. Merkle tree
  4. Timestamp
  5. Raw block
  6. Links

Blockchain for dummies

Сам по себе блокчейн — это крайне простая штука. Его проще всего проиллюстрировать на примере книги бухгалтерского учета, в которую записываются все транзакции в сети Bitcoin. Более того, такая книга присутствует у каждого участника сети, а значит любой, при желании, может проверить, была та или иная транзакция в реальности или нет.

И если блокчейн целиком — это книга, то отдельные блоки можно представлять как страницы, на которых "записываются" транзакции. Кажый блок "ссылается" на предыдущий и так до самого первого блока (genesis block). Именно это и создает такую интересную особенность блокчейна, как неизменяемость. Нельзя взять и изменить блок #123 так, чтобы этого никто не заметил. Потому что блокчейн устроен таким образом, что это повлечет изменение блока #124, потом #125 и так далее, до самого верха.

Structure

Привычным движением руки открываем спецификацию протокола и смотрим на структуру блока.

  • version — версия блока
  • prev_block — хэш предыдущего блока (parent block)
  • merkle_root — если упрощенно, то это хэш всех транзакций в блоке
  • timestamp — дата и время создания блока
  • bits, nonce — про эти параметры я подробно расскажу в главе Bitcoin in a nutshell — Mining
  • txn_count, txns — число транзакций в блоке и их список

Первые шесть параметров (все кроме txn_count и txns) образуют заголовок блока (header). Именно хэш заголовка называют хэшем блока, то есть сами транзакции непосредственного участия в хэшировании не принимают.

Вместо этого они заносятся в особую структуру — дерево Меркла, про которую я расскажу ниже.

Merkle tree

Technical side

Дерево Меркла — это структура данных, также известная как бинарное дерево хэшей. В случае Bitcoin оно строится следующим образом:

  1. Сначала считаются хэши всех транзакций в блоке hash_A = SHA256(SHA256(A))

  2. Потом считаются хэши от суммы хэшей транзакций hash_AB = SHA256(SHA256(hash_A + hash_B))

  3. Точно также считаем хэши от суммы получившихся хэшей hash_ABCD = SHA256(SHA256(hash_AB + hash_CD)) и далее по рекурсии. Лирическое отступление — так как дерево бинарное, то на кажом шаге должно быть четное число элементов. Поэтому если, например, у нас только три транзакции, то последняя транзакция просто дублируется:

  4. Процесс продолжается до тех пор, пока не получится один единственный хэш — он и называется merkle_root (третье поле в header блока)

Ниже приведена реализация дерева Меркла, можете проверить ее на каком-нибудь блоке.

import hashlib # Hash pairs of items recursively until a single value is obtained def merkle(hashList): if len(hashList) == 1: return hashList[0] newHashList = [] # Process pairs. For odd length, the last is skipped for i in range(0, len(hashList)-1, 2): newHashList.append(hash3(hashList[i], hashList[i+1])) if len(hashList) % 2 == 1: # odd, hash last item twice newHashList.append(hash3(hashList[-1], hashList[-1])) return merkle(newHashList) def hash3(a, b): # Reverse inputs before and after hashing # due to big-endian / little-endian nonsense a1 = a.decode('hex')[::-1] b1 = b.decode('hex')[::-1] h = hashlib.sha256(hashlib.sha256(a1 + b1).digest()).digest() return h[::-1].encode('hex')

Immutability

Теперь о том, зачем это нужно в Bitcoin. Я думаю, вы понимаете, что если изменить хотя бы одну транзакцию, то merkle_root также изменится. Поэтому такая структура данных позволяет обеспечить "неподделываемость" транзакций в блоке. То есть не может произойти следующей ситуации:

Кто-то из майнеров нашел новый блок и начал раскидывать его по сети. В это время злоумышленник перехватывает блок и, например, удаляет из блока какую-нибудь транзакцию, после чего распостраняет уже измененный блок.

Для проверки достаточно посчитать merkle_root самостоятельно и сравнить его с тем, что записан в header блока.

SPV

Но здесь можно резонно возразить, что, во-первых, такие сложности совершенно ни к чему. Достаточно просто посчитать хэш от суммы всех транзакций в блоке txns_hash = SHA256(SHA256(sum(txns))) — он точно также изменится после любых манипуляций с транзакциями. А, во-вторых, что мешает злоумышленнику подменить merkle_root в блоке? На второй вопрос отвечу сразу: на самом деле в блоке вообще нельзя ничего изменить, потому что блок тут же станет невалидным (это вы поймете после прочтения следующей главы Bitcoin in a nutshell — Mining).

А дерево Меркла нужно на самом деле для того, чтобы иметь возможность создавать SPV nodes (Simplified Payment Verification). Такие ноды синхронизируют только заголовки блоков, без самих транзакций. В результате блокчейн занимает на порядок меньше места (для красоты возьмем высоту в 500.000 блоков, размер header фиксирован — 80 байт):

500.000 * 80 / 1024 / 1024 ≈ 40 Мб

Такой блокчейн уже можно без проблем уместить на телефоне, планшете или каком-нибудь IoT. Что в перспективе должно дать большую децентрализацию, безопасность сети и так далее.

Суть упрощенной верификации платежей в следующем: пусть у вас есть SPV нода. У меня же есть весь блокчейн целиком и мне нужно вас убедить, что какая-нибудь транзакция действительно была (на картинке это транзакция K). В этом случае, мне достаточно всего лишь предоставить вам несколько хэшей: H_L, H_IJ, H_MNOP, H_ABCDEFGH, они еще называются authentication path.

Auth path

После чего вы сначала считаете H_K = SHA256(SHA256(K)), потом H_KL = SHA256(SHA256(H_K + H_L)) и так до самого верха. Если в итоге вы находите у себя блок с таким же merkle_root, то факт существования транзакции считается подтвержденным.

BTW Ральф Меркл даже запатентовал свою структуру данных, о чем свидетельствует патент US4309569 A.

Timestamp

Еще один интересный вопрос. Представим, что где-то в сети появился появился новый блок и ноды начинают передавать его друг-другу. Каждая нода должна убедиться в том, что блок корректен. Для этого она:

  • проверяет синтаксис и структуру блока
  • проверяет на валидность каждую транзакцию в блоке
  • хэширует транзакции и сравнивает merkle root
  • проверяет несколько критериев, связанных с майнингом, и так далее

Но как можно проверить timestamp? Понятно, что время на разных компьютерах может различаться, так что даже если у нового блока timestamp отличается от вашего текущего времени на час вперед, это еще не значит, что блок "неправильный", может у майнера просто часы спешат.

Поэтому для проверки timestamp на валидность было придумано два критерия. Во-первых, он должен быть больше, чем среднее арифметическое timestamp-ов предыдущих 11 блоков. Это делается для того, чтобы не получилось так, что блок #123 вышел 12 марта 2011 года, а #124 — 13 февраля 1984. Но в тоже время допускается некоторая погрешность.

Во-вторых, timestamp должен быть меньше чем network adjusted time. То есть нода, при получении нового блока, интересуется текущим временем у своих "соседей" по сети, считает среднее арифметическое и если block timestamp меньше получившегося значения + 2 часа, то все в порядке.

BTW как вы видите, timestamp нового блока может оказаться даже меньше, чем timestamp более раннего блока. Это не такая уж и редкость, например #145045, #145046 и #145047.

145044: 2011-09-12 15:46:39 145045: 2011-09-12 16:05:07 145046: 2011-09-12 16:00:05 // ~5 minutes before prior block 145047: 2011-09-12 15:53:36 // ~7 & ~12 minutes before 2 prior blocks 145048: 2011-09-12 16:04:06 // after 2 prior blocks but still before 145045

Raw block

Если у вас до сих остались какие-то вопросы по структуре блока, то предлагаю вам посмотреть на них в "сыром" виде. Самый очевидный способ это сделать — запустить на пару часов bitcoind --daemon, а потом исследовать уже скачанные блоки. Но, во-первых, не у всех есть время / желание синхронизировать блокчейн. Во-вторых, в Bitcoin блоки хранятся в крайне специфической базе данных LevelDB, еще и довольно странным образом. А так как книга расчитана не только на опытных разработчиков, то я пойду уже проверенным путем и снова использую протокол в его первозданном виде.

Для получения блока отправим сообщение getdata, в котором укажем type : MSG_BLOCK и hash : 000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506 — это хэш блока #100.000. Весь код целиком можете посмотреть здесь.

def getdataMessage(): block_hash = '000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506' count = struct.pack("<B", 1) inventory = struct.pack("<L", 2) # type : MSG_BLOCK inventory += block_hash.decode('hex')[::-1] return count + inventory

Links

habr.com

Блокчейн ≠ Криптовалюта. Блокчейн > Криптовалюта / Хабр

Криптовалюты постепенно совершают переворот в мире финансов, заставив многих посмотреть на веб более серьезно, и считается, что во многом это заслуга технологии блокчейн, которую напрямую ассоциируют с Биткойном. И, таким образом, сам блокчейн померк в свете славы собственного "наследника". В этой статье я постараюсь на пальцах объяснить одну из самых значимых компьютерных технологий и положить конец заблуждению, что блокчейн – это криптовалюта или финансовая база данных. Забегая вперед скажу, что вы вероятнее всего уже работаете с блокчейном, даже, если никогда не сталкивались с криптовалютами.

Для того чтобы понять почему блокчейн не равняется криптовалюте достаточно хотя бы того что блокчейн был изобретен и использовался раньше криптовалют. Но цель статьи в том чтобы дать понимание самой технологии, а для этого нужно выделить общие признаки для всех имеющихся валют: каждая неизменно включает в себя три элемента – это цепочка блоков (собственно блокчейн), цифровая подпись и CRDT. Рассмотрим их подробнее.

Я осознанно исключаю сетевую структуру (децентрализованная, федеративная) и способы майнинга, так как они отличаются от системы к системе.

Цепочка блоков

Блокчейн – это хронологическая база данных, т.е. такая база данных, в которой время когда была сделана запись неразрывно связано с самими данными. Что делает ее не коммутативной (a + b ≠ b + a). Пример:

Добавим в обычную реляционную БД с полями Name и City две записи:

Иван Иванов, Москва Петр Петров, Санкт-Петербург

Теперь если мы удалим Ивана Иванова, а затем добавим его снова, то база данных до и база данных после будут одинаковы, другими словами база данных вернется в прежнее состояние. С блокчейном все не так, даже если мы удалим, а затем вновь добавим запись, то состояние не восстановится, не смотря на то что данные одни и те же. Если совсем просто, то текущее состояние блокчейна – это сумма всех предыдущих действий.

В первую очередь это нужно для того, чтобы защитить базу от записи "задним числом". Для этого используются функции, которые превращают любые данные в уникальное число фиксированной длинны (hash-функции). В виде псевдокода блокчейн можно выразить так:

block0 = hash(data0) block1 = hash(data1 + block0) block2 = hash(data2 + block1) block3 = hash(data3 + block2) ...

Так мы получим четыре уникальных числа, которые раздадим независимым пользователям (чем больше тем лучше). Теперь, если мы изменим значения в data1, то значения block1, block2 и block3 изменятся, таким образом пользователи смогут сравнить свои значения blockN и понять что произошла подмена.

Цифровая подпись

Все операции в криптовалюте должны быть авторизованы и единственным способом авторизации является использование цифровой подписи – все участники системы могут удостовериться в источнике данных, не используя при этом центральных серверов со скрытыми механизмами проверки. Проверка подлинности может происходить на вашей машине, по знакомому вам алгоритму.

CRDT

Не смог лаконично перевести этот термин на русский. CRDT или Conflict-Free replicated Data Types – это такие типы данных, которые не подвержены коллизиям при одновременном распределенном доступе, а самое главное – воспроизводимые. Другими словами из последовательности операций можно восстановить значение на любой момент времени.

Криптовалюты это ни что иное как бухгалтерские проводки, которые представляют из себя последовательность действий списаний и зачислений. Простейший пример того как это выглядит:

Время Операция 13:00 +7.5 # состояние счета 12.5 12:00 -5 # состояние счета 5 11:00 +10 # состояние счета 10 10:00 0 # состояние счета 0 (счет создан)

Зная текущее состояние 12.5 мы можем восстановить состояние счета на 12 часов отменив операцию зачисления +7.5, заменив ее вычитанием. Так же это экономит время при распространении изменений: вы отправляете только саму дельту, а не всё значение целиком.

Такие типы данных могут быть не только числами, но и строками, списками или датами.

Заключение

Если взять блокчейн и CRDT, то мы получим хорошо знакомый всем git. Да, тот самый git, который совершил революцию в разработке ПО и который разработчики используют каждый день. Возможно вы также знаете, что с помощью гит, можно не только разрабатывать программы, но и вести блог, а поместив в него csv, получить базу данных, которая помнит все изменения и обладает функцией перемотки.

Исходя из вышесказанного напрашивается вывод: блокчейн используется для поддержания целостности данных. Таким образом совершенно не важно что вы поместите в блокчейн – все владельцы копии смогут удостовериться, что данные верны. Даже если в блокчейн пишете только вы, то сторонний наблюдатель всегда сможет удостовериться, что вы не поменяли что-то задним числом. Другими словами это механизм поддержания доверия к данным.

А вот доверие к данным необходимо в документообороте, системах голосования, для хранения акционерной информации, в медицине и нотариальном деле, и может использоваться для ведения дел в государственных учреждениях. Эта технология позволит придать цифрам юридическую силу и полностью отказаться от бумажных носителей и ручной подписи. Так что блокчейну еще есть где проявить себя и в ближайшие годы мы будем лишь наблюдать как он захватывает технологический мир.

habr.com

Практическое применение блокчейна как распределенного хранилища данных / Хабр

Блокчейн – технология о которой сейчас говорят все вплоть до домохозяек, пишут газеты и журналы. Если забыть о хайпе и не добавлять в проект блокчейн ради блокчейна, то оправданным его применение будет далеко не всегда. Нам посчастливилось столкнуться именно с такой ситуацией. К нам обратился один из наших крупных заказчиков – компания, предоставляющая услуги площадки по электронным госзакупкам.

Задача

Регистрация на площадке по государственным закупкам процесс достаточно бюрократизированный. Исполняя требования законодательства и реализуя принцип Know your customer (KYC), площадкам и удостоверяющим центрам приходиться собирать множество документов, подтверждающих личность клиента и происхождение средств. У компании-заказчика возникла идея, создать сервис единовременной аккредитации на всех площадках по государственным закупкам регулируемых разными законами — создать единый профиль контрагента (это позволило бы собрать необходимые документы только 1 раз). Такой сервис был бы полезен всем – пользователи после регистрации на любой площадке получили бы возможность работать со всеми остальными без дополнительной волокиты; площадки получили бы новых пользователей, за счёт упрощения регистрации. В дальнейшем, к этой платформе можно было бы привлечь конкурирующие площадки и другие смежные организации.

Решение

По сути перед нами встала задача создать децентрализованную систему обмена данными (далее Платформа) в рамках консорциума — т.е. закрытого сообщества участников. Хотя в нашем случае, речь шла о системе, в которой доступ к данным предоставляется всем участникам, мы решили подойти к задаче шире и создать систему, в рамках которой пользователи могли бы сами решать, кому из участников системы они хотят предоставить доступ к данным, а кому нет.

В качестве технологической базы проекта был выбран Multichain так как данная платформа изначально спроектирована с поддержкой консорциума как основного режима работы и содержит удобные средства работы с блокчейном как хранилищем данных. Сама Платформа, реализующая интерфейс обмена данными и средства разграничения доступа к данным, разработана на платформе .NET.

Основные характеристики разработанного решения:

  • Данные распределяются между всеми узлами системы, ни один из участников системы не может сфальсифицировать или удалить данные, однажды выданные другому участнику, а также отсутствует единая точка отказа. Даже при физическом отключении узла участника от сети, данные, полученные до момента отключения, остаются на этом узле и доступны для работы с ними, а при восстановлении подключения происходит получение данных, появившихся во время отсутствия узла в сети.
  • Используется закрытый блокчейн (консорциум) – т.е. для подключения к нему требуется либо согласование узлом-координатором, либо, если выбрана консенсусная модель администрирования – всеми участниками сети.
  • После подключения, участник консорциума может создавать как публичные (доступные всем участникам), так и закрытые (доступные выбранному кругу участников) коллекции данных. Безопасность закрытых данных обеспечивается посредством криптозащиты данных с помощью ГОСТовских алгоритмов.
  • Управлять доступом к коллекции может лишь ее создатель.
  • При добавлении к списку доступа уже существующей коллекции нового участника, опубликованные ранее данные становятся ему доступны автоматически.
  • При удалении участника из списка доступа новые опубликованные данные будут ему недоступны.
  • Платформа поддерживает структурирование данных в коллекции в формате JSON и валидацию формата документа в ней по JSON-схеме.
  • Платформа предоставляет АПИ, изолирующий пользователя от деталей реализации самого блокчейна и позволяющий работать с понятиями более высокого уровня («документ» и «коллекция»).
  • Платформа не предусматривает удаления данных, таким образом, ни один участник не может удалить документ из коллекции, доступной другим участникам.
  • При обновлении документа, сохраняется полная история его изменений, и есть возможность получения любой из версий документа.
  • Платформа поддерживает отправку внешним системам участника настраиваемых уведомлений об изменении/обновлении данных в интересующей коллекции, таким образом, информационные системы одного участника могут оперативно реагировать на обновления данных, сделанные информационными системами другого участника.
Как видите список довольно внушительный. Конечно, у системы есть и некоторые недостатки, о которых мы знаем: например, если мы один раз дали кому-то доступ к данным, можно предположить, что эти данные он уже скопировал и может отдать кому-либо еще, но это уже вне контроля нашей системы. Однако, такого рода риски есть у любой системы. Еще одним недостатком системы, обусловленным использованием блокчейна и необходимостью операций шифрования/дешифрования данных на лету, является общая пропускная способность, составившая ~30 транзакций в секунду, что оказалось более чем достаточно для конкретной задачи, но может являться ограничивающим фактором для применения Платформы в ряде других сценариев.

Что касается принципа работы механизма управления доступом к данным, то он основан на гибридной схеме шифрования:

  1. Зарегистрированный участник системы получает публичный и приватный ключ. Публичный ключ каждого участника является общедоступным и публикуется в блокчейне.
  2. Участник №1 создаёт новую коллекцию и определяет, с кем из участников системы он хотел бы поделиться её содержимым (Участник №2 и №3), затем добавляет в эту коллекцию документ.
  3. Платформа шифрует документ сгенерированным симметричным ключом (это значит, что для расшифровки потребуется тот же ключ, что и для шифрования). Такой ключ имеет значительно меньший объем, чем, сам зашифрованный документ.
  4. Платформа извлекает из блокчейна публичные ключи участников №2 и №3 и шифрует ими симметричный ключ, и помещает результаты в блокчейн.
  5. Участники №2 и №3 входят в систему и пытаются просмотреть содержимое коллекции. Платформа расшифровывает приватными ключами участников №2 и №3 симметричный ключ, после чего этим ключом расшифровывает документ. Таким образом участники №2 и №3 получают доступ к его содержимому.
Так выглядит схема работы в общем случае. Если же рассматривать конкретную реализацию, выполненную для нашего заказчика она выглядит так:
  1. Участник проходит регистрацию в Учётном центре (далее УЦ№1), подавая все необходимые документы и данные.
  2. Учётный центр выдаёт участнику электронную подпись и привязывает к ней все подданные им данные, складывая всё это в блокчейн.
  3. Когда участник заходит на площадку по государственным закупкам (далее Площадка №1), она извлекает его регистрационные данные из Коллекции, созданной УЦ№1.
  4. Возможна ситуация, когда площадке не хватит этих данных и она запросит дополнительные или же захочет хранить другую информацию (например, историю участия в торгах) по конкретному клиенту, чтобы поделиться ей с другой дружественной площадкой. В этом случае, она создаёт в блокчейне новую коллекцию с этими дополнительными данными.
  5. Когда Участник решает зарегистрироваться на Площадке №2 она также берёт его регистрационные данные из коллекции УЦ №1 или же из коллекции созданной Площадкой №1

Итог

На данный момент наше решение внедрено и успешно работает. Если у вас есть вопросы или замечания – пишите в комментарии, будем рады ответить или подискутировать.

habr.com

Что такое эксклюзивные блокчейны / Блог компании Bitfury Group / Хабр

Биткойн-блокчейн хорошо проявил себя в качестве децентрализованной электронной платежной платформы. Поэтому не удивительно, что успех биткойна привел к попыткам различных компаний адаптировать технологию для корпоративного применения. Например, эстонский LHV Bank внедрил систему платежей Cuber, основанную на окрашенных монетах (colored coins), организованных поверх биткойн-блокчейна.

Однако разработчики корпоративных приложений быстро пришли к пониманию, что биткойн-блокчейн не может полностью удовлетворить их требования, по крайней мере, в краткосрочной перспективе. Это привело к появлению эксклюзивных блокчейнов (permissioned blockchain), о которых мы поговорим в сегодняшнем материале.

/ изображение Adam Bailey CC

Одним из препятствий к прямой адаптации общедоступного блокчейна, коим является биткойн, стала его открытость. В такой сети любой её участник способен читать данные из блокчейна и записывать их, создавая новые блоки транзакций. Иными словами, общедоступные блокчейны обладают устойчивостью к цензуре. Однако эта особенность перестает быть достоинством в контексте внутренних рабочих процессов крупной компании — в этом случае на первый план выходит контроль доступа.

Здесь компаниям на помощь пришли так называемые эксклюзивные блокчейны. Эксклюзивный блокчейн — это блокчейн, в котором обработка транзакций осуществляется определенным списком субъектов с установленными личностями. Доступ для чтения данных также обычно ограничивается, хотя определенные права могут распространяться за пределы круга операторов блокчейна.

Например, в финансовом блокчейне, поддерживаемом несколькими банками, данные будут доступны регулятору и правоохранительным органам; также свои данные смогут просматривать клиенты банков. Помимо этого, в этой схеме могут быть задействованы разработчики сторонних финансовых приложений, построенных на основе блокчейна, имеющих ограниченный доступ к определенному своду информации.

И мировые организации уже изучают возможности построения собственных эксклюзивных блокчейнов. Три крупных нидерландских банка ABN Amro, ING и Rabobank исследуют использование блокчейна для платежных систем. А, например, компания Citigroup построила три блокчейна и внутреннюю валюту на их основе с целью минимизации рисков при взаимодействии с другими банками.

Особенности эксклюзивных блокчейнов

Эксклюзивные блокчейны обеспечивают больший контроль над системой со стороны компании. Суть в том, что такие сети позволяют, например, быстро обновлять функциональность. Поэтому их использование наиболее оправдано в учреждениях, работающих с реестрами и системами учета — эксклюзивные блокчейны формируют более контролируемую среду, по сравнению с общедоступными блокчейнами.

Другой особенностью эксклюзивных блокчейнов является прозрачная структура управления. Они также предлагают большую гибкость и адаптивность в сравнении с открытой блокчейн-инфраструктурой. Это позволяет эксклюзивным блокчейнам находить применение в решении очень специфических бизнес-задач — управлении правами собственности, журналистике, выборной системе.

Многие эксперты полагают, что они решат множество проблем финансовых организаций, которые не способен решить, скажем, биткойн. Например, соблюдение нормативов закона «О перемещаемости и подотчётности страхования жизни» (HIPAA) или политик по борьбе с отмыванием денег (AML).

«Закрытые блокчейны предоставляют компаниям интересную возможность использовать бездоверительность и прозрачность [блокчейнов] во внутренних и межкорпоративных сценариях», — говорит Дэн Василюк (Dan Wasyluk), руководитель команды Syscoin. Создание блоков в эксклюзивном блокчейне не требует доказательства работы (proof-of-work). Вместо него, для консенсуса в эксклюзивных блокчейнах могут использоваться хорошо изученные алгоритмы консенсуса с аутентифицированными участниками, например, Practical Byzantine Fault Tolerance (PBFT). Другой пример — протокол создания блоков, используемый в BitShares. В подобных алгоритмах у каждого обработчика транзакций есть пара ключей — закрытый и открытый. Создатели блоков известны и определяются по цифровой подписи блока.

Фреймворки для эксклюзивных блокчейнов

Блокчейны с эксклюзивным доступом менее глобальны по сравнению с общедоступными блокчейнами. При их создании разработчики не ставят целью построить единую инфраструктуру для какой-нибудь отрасли в целом. По этой причине разработка эксклюзивных блокчейнов ведется на основе фреймворков, в то время как общедоступные блокчейны больше похожи на PaaS-решения. Грубо говоря, блокчейн-фреймворки по своим задачам напоминают СУБД (одну и ту же СУБД можно подставить в back-end множества сайтов), а общедоступные блокчейны — веб-платформы наподобие Twitter или Facebook (каждая платформа уникальна и имеет свой набор характеристик).

Активное развитие фреймворки для эксклюзивных блокчейнов начали недавно — буквально несколько лет назад. У большей части из них открыт исходный код (либо его открытие планируется в будущем), так что любой желающий может начать разработку для эксклюзивных блокчейнов. Из наиболее популярных фреймворков можно выделить:

  • IBM Fabric. Компания IBM начала разработку своего блокчейн-фреймворка в 2015 году. В 2016 году ИТ-гигант стал одним из основателей Hyperledger — проекта под крылом The Linux Foundation, направленного на разработку enterprise-стандартов для блокчейнов и распределенных реестров. Фреймворк написан на Go и использует Docker-контейнеры для реализации смарт-контрактов.
  • Intel Sawtooth Lake. Intel подошла к блокчейну с точки зрения интернета вещей (Internet of Things). Из особенностей Sawtooth Lake можно выделить алгоритм консенсуса proof of elapsed time (PoET), который использует модуль доверенных вычислений SGX, встроенный в процессоры Intel последних поколений. Реализован на Python.
  • R3 Corda. Corda — результат работы консорциума R3, объединяющего крупнейшие банки планеты. В отличие от других рассматриваемых фреймворков, Corda строит не блокчейны, а распределенные реестры: в Corda нет понятия блоков и масштабной репликации данных в целом. Corda написана на Kotlin и поддерживает смарт-контракты на любом JVM-совместимом языке.
  • Enterprise Ethereum. Несмотря на то что Ethereum является общедоступным блокчейном, его разработчики уделяют много внимания использованию кода продукта для создания эксклюзивных блокчейнов. В начале 2017 года они объявили об организации альянса Enterprise Ethereum, целью которого является разработка функций, ориентированных на бизнес (например, выделение алгоритма консенсуса в отдельный модуль).
Помимо перечисленных решений, есть множество других фреймворков: Chain, Monax, Symbiont, Axoni и так далее. Также имеется ряд инициатив, приближающих блокчейн биткойна к корпоративной среде, например BloqEnterprise.

Привязка к блокчейнам

Несмотря на то что в эксклюзивных блокчейнах необязательно использовать доказательство работы, этот протокол все-таки можно подключить. Такой подход упрощает аудит и дополнительно повышает уровень защищенности и контроля над системой для конечных пользователей. По сути, доказательство работы переводит доверие к блокчейну из субъективного, когда доверие к системе эквивалентно доверию к контролирующей его организации, в объективное — здесь уровень доверия строится на основе математических законов и высокой экономической стоимости атак на систему.

Другой способ «объективизации» эксклюзивных блокчейнов — использование привязки к общедоступным блокчейнам. Привязка блокчейна (blockchain anchoring) — это технология, в соответствии с которой операторы эксклюзивного блокчейна периодически высылают хеши блоков для включения в поддерживающий общедоступный блокчейн в формате транзакций-свидетельств.

Ближайшая аналогия для привязки блокчейна — публикация заголовков блоков в печатном издании (например, в газете). Такая схема была предложена криптографами еще в начале 1990-х и с успехом используется некоторыми компаниями, например Guardtime.

Идея в обоих случаях одинакова: средство для привязки (общедоступный блокчейн или печатное издание) нельзя подменить задним числом из-за большого тиража и высокой экономической стоимости атаки. Таким образом, записываемые в эксклюзивный блокчейн данные становятся неоспоримыми, то есть их нельзя подменить, даже если все операторы блокчейна сговорятся между собой. Привязка не разглашает никакой информации об эксклюзивном блокчейне (из-за использования хеш-функций) и вместе с тем фиксирует текущее состояние блокчейна целиком (все блоки связаны в одну цепочку при помощи тех же хеш-функций).

Однако у общедоступных блокчейнов есть преимущества по сравнению с газетами. Они позволяют осуществлять привязку чаще, гибко настраивать её формат (например, можно фиксировать определенные отдельные транзакции эксклюзивного блокчейна), а также проводить автоматические проверки. Включенная в связанный блокчейн информация может быть проверена пользователями эксклюзивного блокчейна. Это гарантирует неизменность истории транзакций в системе (по сути, для этого используется внешнее доказательство работы).

Привязка эксклюзивного блокчейна при помощи поддерживающего общедоступного блокчейна (например, биткойна)

Для атаки на цепь, защищенной привязкой к открытому блокчейну, злоумышленнику требуется преодолеть механизмы консенсуса как для эксклюзивного блокчейна, так и для поддерживающей цепи. Сама же привязка к блокчейнам не требует большого количества ресурсов и не создает критической зависимости от поддерживающего блокчейна — сотрудничество между операторами эксклюзивного блокчейна и майнерами на поддерживающем блокчейне носит необязательный характер.

Привязка к блокчейнам решает проблему диверсификации безопасности распределенных реестров и может применяться в блокчейнах, которые не используют внутреннее доказательство работы. При этом оба подхода не являются взаимно исключающими и могут применяться одновременно для повышения уровня защищенности.

P.S. Пост по теме: Иное применение блокчейнов — смарт-контракты.

habr.com

блокчейн – опыт первых пилотных проектов / Блог компании IBM / Хабр

Уроки после первых пилотных проектов с блокчейн

Автор: Владимир Алексеев, ведущий системный архитектор, IBM Россия и СНГ После первых пилотных проектов с технологией блокчейн возникла небольшая пауза, которую я решил посвятить анализу пройденного и попытаться понять, как лучше подходить к исследованию новой технологии и каких результатов стоит ожидать.

В итоге все получилось свести к 10 основным пунктам, которые являются выводами по результатам практических упражнений в рамках проектов для крупных банков России.

1. Блокчейн – действительно новая технология на рынке

В первый раз блокчейн упоминался в 2008 году в статье Сатоши Накамото про биткоин (Bitcoin: A Peer-to-Peer Electronic Cash System), причем технология была описана как сервер временных меток. И только несколько лет назад блокчейн стали воспринимать как отдельную технологию без привязки к биткоину. Упрощенно блокчейн можно представить как распределенный реестр или распределенную систему хранения записей, доступ к которой есть у любого участника сети. Все записи при попадании в блокчейн формируются в блоки, которые связаны в одну цепочку (blockchain из англ. – цепь блоков). По грубой оценке, технология представлена на рынке не более 5 лет, а крупные финансовые организации стали проявлять больший интерес и проводить пилотные проекты буквально год-два назад. Крайне редко можно найти информацию об использовании технологии в продуктивных системах крупных компаний. Условно внедрения можно разделить на два типа: стартапы или финтех компании, направление бизнеса которых связано с блокчейн (Ethereum, Everledger и т.п.), и пилотные проекты крупных финансовых организаций по всему миру. Все это показывает, что мы лишь в начале пути и, по сути, создаем историю.

2. Блокчейн более эффективен не в рамках одной организации, а при наличии экосистемы

Несмотря на то, что существует ряд сценариев возможного использования технологий внутри организации (compliance, к примеру), большую эффективность имеют кейсы, когда ведется обмен информацией между несколькими компаниями. Одними из первых направлений исследований в индустрии были сценарии развертывания supply chain на блокчейн (пример лизинга машин, сборки самолета), а также обмен финансовыми транзакциями между банками по всему миру без регулятора (задача в рамках консорциума R3). От блокчейна, в первую очередь, больше ждут изменений в финансовой экосистеме за счет снижения или даже исчезновения роли регулятора.

3. Бизнес-сообщество – фундамент успешных исследований технологии блокчейн.

Что блокчейн привнес действительно нового в индустрию, так это абсолютно новый формат работы между организациями. Действительно, до этого партнерства между компаниями были обычной практикой (альянс IBM и Apple как пример). Блокчейн, можно сказать, заставил организации кооперироваться на уровне исследований и разработок (Research and development, R&D), причем не сколько в ИТ индустрии, а в финансовом секторе. Достаточно вспомнить консорциум R3, который во время основания в середине 2015 года состоял из 12 банков, а сейчас насчитывает больше 40. Что же заставляет банки объединяться и действовать совместно? Как уже упоминалось в первом пункте, блокчейн – крайне новая и быстро развивающаяся технология для всех участников рынка. Поэтому нельзя сказать, что она обладает достаточным уровнем зрелости для немедленного использования в продуктивных системах. Значит, необходимо исследовать возможные пути использования технологии, анализировать узкие места, проблемы, преимущества. А это как раз задача R&D. Недаром организации выкладывают разработанный код в открытые сообщества для обмена друг с другом. Одним из самых известных примеров является консорциум HyperLedger (созданный в рамках Linux Foundation), куда компания IBM, к примеру, выложила более 44 000 строк кода для общего использования.

Вторым пунктом, почему бизнес-сообщество важно для реализации блокчейн – это урок из пункта 2: большая польза от использования блокчейн будет для экосистемы организаций, которые обмениваются информацией, но не доверяют друг другу. Блокчейн может существенно упростить и улучшить обмен и хранение информации в рамках открытого или закрытого сообщества организаций.

Важный вывод – если вы приняли решение адаптировать технологию блокчейн у себя в организации, то активно участвуйте в обсуждении в рамках бизнес-сообщество. За счет этого вы сможете как и привнести свои идеи, так и получить новые, найти партнеров и экспертизу.

4. Сложнее выбрать правильный сценарий использования технологии, нежели реализовать его технически

Опыт первых проектов явно продемонстрировал, что большая часть времени уделялась поиску сценариев (use-case) для дальнейшей проработки. И, к сожалению, большинство проектов не имело в конце так называемого «вау-эффекта» для бизнеса – вопрос о выгодах блокчейна оставался открытым. В ряде случаев, пилотные проекты оказывались лишь демонстрацией возможностей технической команды по программированию на одной из реализаций блокчейн. Таким образом, несмотря на опасения рынка в неготовности технологии к промышленному использованию, куда важнее не доказывать обратное, а понимать, какой эффект от внедрения блокчейна получит компания. И только после этого приступать к технологической реализации. В противном случае, пилотные проекты будут делаться ради пилотных проектов. Вывод: не нужно поддаваться волне на рынке и делать пилоты в области блокчейн лишь для пробы технологии. Технологическая реализация – самый легкий этап тестирования технологии. Необходимо сначала точно определить возможные области, где внедрение блокчейна сможет принести пользу.

5. Блокчейн – это не только технологическая инновация

На рынке идет обсуждение, куда относить технологию блокчейн – к технологической или экономической революциям. Опыт первых пилотов показал, что организации больше ждут качественных изменений в финансовых процессах, нежели ожидают оптимизации ИТ инфраструктуры как результата внедрения технологий. Блокчейн способен привнести на рынок абсолютно новые модели взаимодействия между компаниями без участия регуляторов, что делает его не просто очередной новой технологической инновацией.

Вывод: блокчейн, скорее, это совокупность как новых инноваций в технологиях, так и новых подходов в экономических моделях.

6. Наибольшие сложности связаны с вопросами масштабируемости и безопасности

Одними из первых вопросов, поднимаемых при обсуждении перспектив блокчейна, являются масштабируемость и безопасность. Вопрос масштабируемости тесно связан и с производительностью – в текущий момент сложно предсказать скорость вычисления нового блока в сети для каждого нового внедрения. Единственный известный факт в рамках крупного внедрения – это 8 минут на блок для биткоина. Сколько будет вычисляться новый блок в любой другой сети – неизвестно и необходимо тестирование. К тому же, если скорость и удовлетворяет потребностям, факты изменения производительности в зависимости от числа узлов в сети (а это и есть масштабируемость), остаются неизученными.

Вопросы и в области безопасности логичны, так как если копия распределенного реестра есть у каждого участника, то как убедиться, что данные действительно верны и не могут быть изменены?

И, если эти или схожие вопросы можно объяснить спецификой реализации технологии, то с другой стороны, рынок стал ожидать, что блокчейн безопасен во всем и способен решить все актуальные проблемы, связанные с безопасностью. Это не так. Да, технология обладает определенными механизмами защиты, но это отнюдь не значит, что в ней решены все вопросы. Не стоит полагать, что блокчейн, к примеру, однозначно решает проблему потери первичных ключей.

Вывод: не стоит рассматривать блокчейн как решение для высоконагруженных транзакционных систем (например, банковский процессинг) в связи с нехваткой практических знаний о производительности сети — на текущий момент крайне мало примеров внедрений или индустриальных тестов. В вопросах безопасности не стоит полагаться на знание, что блокчейн способен решить все проблемы безопасности – рекомендуется рассматривать блокчейн также, как и любую другую новую технологию и тщательно анализировать возможные уязвимости.

7. Индустрия мало подготовлена к использованию распределенных реестров – отсутствуют должные нормативно-правовые меры

Как уже упоминалось, блокчейн предлагает организациям новый уровень взаимодействия между ними – без использования регулятора. Несмотря на перспективы этого подхода (создание «коллективной ответственности», снижение издержек при работе регулятора и т.п.), на текущий момент индустрия не обладает достаточным опытом использования такого подхода. Логично, что нормативно-правовые меры отсутствуют. Уже сейчас видно, что после успешной технической реализации блокчейн-технологий компании сталкиваются с проблемами регулирования и, тем самым, тормозят широкое использование технологии в продуктивных системах.

В рамках финансовой отрасли для успешного развития блокчейна крайне важна позиция национального банка страны. Как показывает практика, более эффективным способом участия нацбанка в апробации технологии является совместная работа с банками, нежели противодействие распространению технологии на рынке. Стоит отметить, что большое число нацбанков в мире придерживается позиции возглавить движение по развитию блокчейн, а не сопротивляться этому.

Вывод: для успешного внедрения блокчейн организациям необходимо выделять ресурсы не только для технологических пилотов, но и для решения юридических вопросов. И большие сложности находятся как раз в юридическом поле, а не в техническом.

8. Не стоит ожидать молниеносного возврата инвестиций в блокчейн – это такая же технология, требующая времени на внедрение и адаптацию

Даже удивительно, что из-за ажиотажа вокруг тех изменений, которые блокчейн может принести на рынок («блокчейн – новый Интернет»), компании стали закрывать глаза на обыденные вопросы, связанные с внедрением любой новой технологии: поддержка, интеграция с текущими системами. И, стоит признать, после успешного завершения пилотных проектов, волна энтузиазма резко снижается, так как организации переходят к фазе анализа, как внедрять технологию. И здесь возникают вопросы отсутствия навыков у персонала для поддержки, масштабирования системы при увеличении нагрузки, интеграции и обмена данными с существующими системами. Вывод: не нужно считать блокчейн отдельной изолированной частью вашей ИТ инфраструктуры – вопросы интеграции и поддержки по-прежнему остаются актуальными. Уже на начальных этапах пилотных проектов стоит оценить место блокчейн технологий в общей архитектуре организации.

9. Блокчейн может быть внедрен раньше в областях, не связанных с финансами

Безусловно, наибольший интерес к технологии проявляет финансовый сектор и, в особенности, банки. С другой стороны, высокий спрос и ажиотаж не всегда приводят к практическим действиям и внедрениям. Бывает, что банки увлекаются погоней друг за другом, стремясь обогнать конкурентов и показать инновационность больше, чем фокусируются на успешном внедрении технологии и получения выгоды от ее использования. Тем временем появилось довольно большое количество стартапов, которые предлагают сервисы на базе блокчейн в не связанных с финансами отраслях. К примеру, блокчейн может использоваться для хранения информации о бриллиантах, на рынке недвижимости, для учета земельных кадастров, облачного хранения данных и учета прав интеллектуальной собственности.

Вывод: компаниям не из финансовых отраслей не стоит ждать результатов внедрений банков, а начинать самим искать способы применения технологии блокчейн. В отсутствие ажиотажа и в условиях возможно более легких нормативно-правовых норм шансов на успешное внедрение технологии может быть значительно больше, чем у банков.

10. Блокчейн — технология, которая действительно сможет поменять индустрию

Несмотря на все опасения рынка, связанные с новизной технологии и ее неготовности к промышленному внедрению, блокчейн способен качественно поменять банковскую и не только индустрии. А именно изменить способы взаимодействия между компаниями: организациям придется уметь «договариваться» без участия органов регулирования. Безусловно, должно пройти какое-то время (по разным оценкам, от 2-3 лет) для апробации технологии, но то, что блокчейн перспективен, ясно уже сейчас.

habr.com

Что конкретно входит в понятие «блокчейн»

Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».

Вопрос, что понимать под блокчейном, не праздный. Даже блокчейн-специалисты выдадут разные определения и разные границы технологии, чего уж говорить о людях, далеких от технологий. А сейчас блокчейн обсуждается даже политиками и большими инвесторами, им-то каково?

Давайте разбираться.

Предупреждаю сразу, статья философская с пространными рассуждениями и демагогией. Хотите конкретики, читайте другую. Хотите разобраться — читайте третью.

Иллюстрация из книги Мелани Свон «Блокчейн. Схема новой экономики»

Блокчейн с точки зрения максималистов
Начнем с простой точки зрения. Блокчейн — это все технологии, которые используются или будут использоваться в криптовалютах. Включая еще не изобретенные и не реализованные.

Что входит в понятие криптовалют, отходит на второй план. Чтобы не отвлекаться, для простоты мы будем считать, что криптовалюты — это валюты из списка https://coinmarketcap.com/currencies/.

Топ криптовалют по капитализации (Источник)

С одной стороны, такое определение удобно, потому что позволяет делать любые заявления. Например:

Ведь трудно спорить, что лет через пятьдесят наличные деньги выйдут из обращения и мы будем платить некими цифровыми деньгами. Наверняка в этих цифровых деньгах будут играть роль какие-то технологии, которые сейчас используются или будут использоваться в криптовалютах. Значит, выходит, блокчейн-деньги заменят обычные деньги, верно?

Позволяет ли блокчейн лучше проводить генетические и медицинские исследования? Ну, не мешает точно.

С другой же стороны, такое максималистское определение позволяет многое утверждать про блокчейн, но не позволяет вести предметный разговор и утверждать что-то конкретное. Посмотрите на примеры:

  • Решения на блокчейне не масштабируются.
  • Решения на блокчейне медленнее централизованных аналогов.
  • Решения на блокчейне не требуют доверия между участниками.
  • Решения на блокчейне открыты и валидируемы.
  • Блокчейн представляет собой цепочку блоков.
Все они становятся ложными. Ведь мало ли что придумают? Например, в криптовалюте IOTA уже придуманы и используются направленные ациклические графы для организации транзакций — никакой цепочки блоков там нет. Или, например, когда-нибудь, вероятно, заработает Plasma, и тогда блокчейн станет масштабируемым.
Блокчейн с точки зрения минималистов
Продолжим не менее простой точкой зрения. Блокчейн — это просто база данных с инкрементальной записью. Все. Если мы умеем только дописывать в конец или выкидывать с конца и писать заново, то у нас блокчейн. Выкидывать по логике можно всегда, просто реальные блокчейн-решения стараются пользоваться такой возможностью только в исключительных случаях (например, в случае с 92 млрд биткойнов). Ни распределенности, ни консенсуса, ни блоков, ни ссылок на предыдущие блоки — ничего не требуется.

Это определение удобно тем, что на таком блокчейне действительно работают все известные мне криптовалюты.

Но такое определение еще более абсурдно и бесполезно, чем предыдущее. Более того, такой «блокчейн» известен лет 100 и называется стеком.

Базовая комплектация
Закончим с вырожденными определениями, составим минимальный разумный пакет того, что смогут назвать блокчейном многие специалисты.

Блокчейн предполагает, что:

1. Данные оформлены блоками, что бы из себя эти блоки ни представляли. 2. Блок либо является genesis-блоком, либо ссылается на предыдущий. a. Блоки дописываются в конец. b. Выкидывать блоки в рамках нормальной работы запрещено. 3. Блоки летают в коммуникационной среде независимо — можно загрузить произвольный блок. 4. Блокчейн читается как минимум двумя участниками. 5. В блокчейн пишет как минимум один участник. 6. Все пишущие достигают консенсуса — блоки соответствуют единому набору правил. a. Очевидное следствие — блокчейн един для всех участников после достижения консенсуса. b. Если в сети наблюдается софт-форк, то «едиными» правилами, очевидно, являются более жесткие.

Шпаргалка по понятию софт-форка. Источник

Есть что добавить?

А теперь посмотрим, что осталось за бортом такого определения.

  1. В понятие «блокчейн» не входят принципы достижения консенсуса: Proof-of-Work, Proof-of-Stake, Proof-of-Authority и другие. А ведь в Proof-of-Work как раз заключается львиная доля инновационности биткойна, родоначальника блокчейна.
  2. В понятие «блокчейн» не входит принцип децентрализованности. В вырожденном случае выходит, что есть сервер, он пишет в базу, один. Остальные могут читать и проверять, а могут и не проверять.
  3. В понятие «блокчейн» не входит принцип открытости: он не обязан быть доступным на чтение широкому кругу лиц, тем более на запись.
  4. В понятие «блокчейн» не входит принцип распределения доверия: участники могут быть исключительно доверенными.
  5. В понятие «блокчейн» не входит защита от злонамеренных участников: ее может и не быть.
  6. В понятие «блокчейн» никак не включена криптография. Вряд ли без нее удастся обойтись, но на каком этапе и в каком виде она будет применяться, не определено.
Что следует из нашего определения? Следует, что блокчейн-решение может быть централизованным, эффективным и даже масштабируемым. Ведь мы отбросили все «лишнее»: распределенность, недоверие, медленный консенсус — и получили конфетку, которая все еще является блокчейном.

Кстати, такая конфетка называется частным блокчейном (private/permissioned), и именно на такие блокчейны сейчас делают ставку некоторые компании (и даже госструктуры). Это частный случай давно известных распределенных реестров (не путать с распределенной базой данных), но не каждый распределенный реестр, очевидно, является блокчейном.

Продвинутая комплектация — «настоящий» блокчейн
Но чтобы блокчейну можно было приписать его популярные преимущества (а заодно и недостатки), необходимо дописывать в определение новые условия.

Сначала определим свойства «настоящего» блокчейна:

  • Децентрализованный. Это дает неблокируемость/устойчивость, но заодно забирает эффективность (пропускная способность на единицу железа) и масштабируемость (рост пропускной способности с ростом количества железа).
  • Открытый на чтение. Это дает валидируемость, но заодно и забирает конфиденциальность (которую можно прикрутить сверху обратно).
  • Открытый на запись. Это дает доступность, но и делает запись платной. Как правило, плата символическая, но этого хватает, чтобы резко ограничить список пишущих.
  • Неизменяемый. Это дает защиту от фальсификации, но и приводит к замусоренности (чего только не пишут в публичные блокчейны).
  • С валютой. Это восхитительное свойство особенно ценится в блокчейн-решениях. Оно дает финансовые возможности, но взамен вносит неопределенность в правовой статус проекта. А заодно открывает и риски кибербезопасности.
  • Доверяемый. Не требует репутации участников.
То, что блокчейн-решение должно быть с валютой, конечно, опциональное свойство. Но без валюты не так просто мотивировать участников обслуживать сеть, а значит, не так просто обеспечить децентрализацию — обязательное свойство «настоящего» блокчейна.

Для получения описанных свойств дополнительно включим в состав «настоящего» блокчейна следующее:

  1. Каждый блок, кроме начального, содержит криптографический хеш предыдущего, а не просто ссылается, как в базовой комплектации.
  2. Консенсус между участниками достигается таким способом, чтобы минимизировать риск переписывания базы меньшинством, как правило, Proof-of-Work или вариации Proof-of-Stake. И это, на мой взгляд, самое важное. Понятие меньшинства определяется выбранным способом.
  3. Либо используется одноранговая сеть, либо право стать мастер-нодой формально есть у каждого желающего.
  4. За участие в обеспечении бесперебойной работы сети (формирование корректных блоков) полагается награда в каком-то виде. И поэтому, вероятно, в каждом открытом блокчейне есть свои «койны».
  5. Каждый участник обладает парой ключей и в том или ином виде удостоверяет свои намерения по записи в блокчейн.
Пара свойств (не требований):
  1. За валидацию корректности базы награда не полагается. Участники делают это ради собственной безопасности либо не делают.
  2. Каждый участник имеет право послать в сеть транзакцию, удовлетворяющую правилам сети, и рассчитывать, что транзакция будет включена в блокчейн за разумное время при разумной оплате.
Блокчейн с заданными нами в начале раздела свойствами часто называется открытым блокчейном (open/public/permissionless). Перспективы применения таких блокчейнов за рамками криптовалют автору кажутся куда более скромными, чем сейчас принято считать. Должны быть веские причины делать что-то децентрализованно, если ничего не мешает сделать это централизованно. Но это лишь личное мнение автора.
Дополнительные опции
Есть еще такое удобное понятие — «блокчейн-технологии». Это те технологии, которые блокчейном вовсе не являются, но имеют к нему непосредственное отношение — либо являются надстройками, либо улучшениями обычного блокчейна (в любом его определении). Половина из них вполне может использоваться и без блокчейна, просто потребности такой не возникает.

Например, Lightning Network — это привычный клиринг, но только построенный на доверии, полученном за счет уже развернутого блокчейна.

Другой пример — миксер. Отмывка «грязных» денег посредством смешивания с «чистыми» известна давно, но применительно к криптовалютам преобразилась и стала отдельной технологией с разными вариантами реализации.

Кольцевые подписи или доказательства с нулевым разглашением — известные криптографические протоколы, которые, будучи применены в криптовалютной сфере, тоже становятся «блокчейн-технологиями».

Понятие «блокчейн-технологии» по сути означает то же самое, что максималистский подход к определению блокчейна в первом разделе. Но только мне это понятие нравится больше — это более корректно. Если упоминаются блокчейн-технологии, то это еще не значит, что блокчейн там вообще есть.

Заключение
Мы попытались определить, что же входит в понятие «блокчейн», а что — нет. Рассмотрели несколько вариантов, от абсурдных до вполне годных. Описали те свойства, которые вытекают из разных границ технологии или, наоборот, которые определяют эти границы. Осталось дело за малым — просто четко понимать, а что же имеется в виду в каждом конкретном случае использования.

habr.com

Блокчейн как «волшебная таблетка»? / Блог компании Acronis / Хабр

Про блокчейн сегодня говорят все вокруг. На фоне общего хайпа вокруг блокчейна, его воспринимают в качестве «волшебной таблетки», с помощью которой можно решить все проблемы. Как это часто бывает, на деле все немного сложнее. Вице-президент по блокчейн Виктор Лысенко рассказал о том, как технология блокчейн перестала ассоциироваться с Bitcoin, захватила «сердца и умы» банковского сектора и в каких случаях стоит применять решения на ее основе, а в каких нет.

Назначение технологии блокчейн все время переосмысливается, и люди по-новому на нее смотрят. Начиналась данная технология, по сути, как криптовалюта Bitcoin. И очень долгое время блокчейн ассоциировалась именно с Bitcoin. В последнее время мы видим движение в другую сторону, — сейчас отношение к технологии блокчейн стало меняться. Очень многие люди, в том числе и в крупных компаниях, и в государственных структурах, стали понимать, что это не просто какая-то маргинальная криптовалюта, которая используется, в том числе, для проведения сомнительных операций, но еще и технология, которая поможет привнести позитивные изменения в нашу жизнь, позволит решить очень большое количество проблем, которые раньше решались не так элегантно, не так красиво или с большими затратами.

А как и кому пришла в голову идея использовать эту технологию данным образом?

Как и в большинстве случаев, все компоненты, из которых состоит идея Bitcoin, уже существовали последние 20-30 лет. Например, структура Меркла-Дамгарда, метод построения криптографических хеш-функций, была известна уже давно. И человек или группа людей, Сатоси Накамото, пришла в голову мысль, что можно вот таким образом все эти компоненты объединить и использовать. Здесь важно следующее, если раньше технология блокчейн в основном воспринималась как криптовалюта, то сейчас она воспринимается как распределённая база данных, которая позволяет большому количеству разных людей или компаний взаимодействовать между собой, не используя доверенных посредников.

Как эта технология может изменить финансовый мир, например, банковские технологии или фондовый рынок?

Сейчас, если вы хотите провести какую-то операцию купли-продажи акций, то вам необходим доверенный посредник – биржа, через которую проходят подобные сделки. Фактически, биржа и ряд других компаний ведут учет акций, своего рода «журнал», в котором отражается информация об акциях: кому они принадлежат, кто может по ним голосовать, кому выплачиваются дивиденды и т.д. Доверенный посредник берет за это деньги, и нам необходимо полагаться на его репутацию, рассчитывать, что он не совершает ошибок и тому подобное. Технология блокчейн позволяет обмениваться любыми активами без наличия такого посредника. Для многих людей и компаний в этом и состоит причина ее привлекательности. Собственно говоря, возможность обмениваться информацией без доверенного посредника является фундаментальным изменением и новацией, которой не было до сих пор. Раньше для решения задач обмена информации нескольким людям или консорциуму компаний необходимо было выбирать какое-то доверенное лицо, которому нужно платить деньги, как-то организовывать и т.д. Например, платежная система VISA является таким доверенным посредником по всем транзакциям, которые осуществляются по ее пластиковым карточкам. Биржа, по своей сути, доверенный посредник при проведении операций на рынке акций публичных компаний. Центральный банк — это администратор базы данных всех платежей в стране. Если нужно решить более локальные задачи, то создавать такого доверенного посредника дорого и сложно с точки зрения организации. Поэтому в большинстве случаев такие задачи просто не решаются, либо решается каким-то менее надежным, окольным путем. Это означает, что у вас есть высокие транзакционные издержки, которые приходится оплачивать.

А что это означает для брокерского бизнеса? Придется ли брокерам менять свой бизнес в сторону предоставления услуг по аналитической поддержке?

Пока трудно сказать, что именно произойдет и какие именно из задач брокера действительно нужны клиентам. Какие-то консультации и советы, по всей видимости, останутся, а вот выполнять техническую работу люди смогут самостоятельно. Если у человека появляется возможность в один свайп на телефоне провести операцию купли-продажи акций, потребность в звонке брокеру исчезает.

Как бывший CEO Рокетбанка, какие изменения вы видите в банковской сфере?

Что достаточно забавно, банковский сектор стал фактически первой индустрией, которая «подхватила» волну блокчейна. В первую очередь, банки постарались перевести на технологию блокчейн операции по межбанковским платежам, и, тем самым, уйти от использования платформы SWIFT. С моей точки зрения, радикальная проблема с межбанковскими платежами отсутствует, и это далеко не первое приложение для применения технологии блокчейн. Да, это дорого и не всегда удобно, но само наличие у банков возможности перейти на такую платформу заставит тот же самый SWIFT предлагать лучшие условия, работать быстрее и т.д.

Временами банки сталкиваются с проблемой недоверия со стороны клиентов, сможет ли технология блокчейн как-то повлиять на решение этой проблемы?

Повлияет, но несколько в другом разрезе. То, о чем вы говорите, рано или поздно произойдет, — банки начнут получать больше информации друг о друге, и в результате вся банковская система станет более прозрачной. Но, из-за того, что это консервативная индустрия, потребуется определенное время. С моей точки зрения, первые реализации будут более простыми. Например, у Acronis есть пилотный проект с несколькими банками, в рамках которого решается задача обмена информацией о своих клиентах и о различного рода случаях мошенничества. Например, банку необходимо понимать, жив клиент или он умер. Зная это, один банк может известить об этом другие банки. В качестве примера мошенничества, можно привести недавний случай, который произошел в Сингапуре. Группа мошенников предъявляла различным банкам одинаковые таможенные инвойсы и пыталась получить по ним деньги.

Несмотря на то, что банки являются конкурентами, и между ними не всегда есть полное доверие, им необходимо обмениваться друг с другом определенной информацией. Им нужны механизмы, которые позволят обмениваться информацией о мошенниках, но создавать межбанковские ассоциации для решения подобных задач, скорее всего, не будут, потому что нужно выбирать председателя, обозначать, кто и как будет голосовать, организовывать юридическое лицо, выпускать акции и т.д. В реальности мало кто захочет пройти через эти процедуры. Наши решения позволяют сделать систему обмена информацией, в которой все данные, проходящие через нее, записываются в блокчейн, что делает их прозрачными для банков и упрощает процедуру проведения ее аудита третьими сторонами. То есть, создается система, в рамках которой все ее участники, не доверяя друг другу полностью, могут доверять тем записям, которые хранятся в системе, потому что всегда есть возможность проследить, кто именно сделал эту запись, когда она была сделана, и быть уверенным, что ее невозможно подменить.

Я правильно понимаю, что компания Acronis занимается внедрение продуктов на основе технологии блокчейн?

Да, в том числе.

В одном из материалов на сайте Банкир.ру, вы говорите, что не смотря на то, что многие люди воспринимают технологию блокчейн как достаточно медленную на примере некоторых из существующих продуктов, это не совсем так, и скорость ее работы может быть намного выше.

Здесь вопрос в том, что именно считать медленным. Если говорить про количество транзакций, которые могут быть обработаны в рамках блокчейна Bitcoin или Ethereum, то, конечно, пока далеко до той пропускной способности, которой сейчас обладает Visa или Mastercard. Но, с другой стороны, скорость обмена информацией в блокчейн постоянно увеличивается, а применение технологии в тех ситуациях, в которых сейчас используется Visa, с моей точки зрения, не совсем обоснованно и необходимо.

Какие основные трудности, с которыми сталкиваются при внедрении технологии блокчейн?

Основных трудностей несколько. Если говорить про Россию, то одна из основных трудностей — это наличие очень противоречивых сигналов об отношении к этой технологии со стороны государственных ведомств и структур. Не смотря на то, что никакого формального запрета на использование блокчейна нет, у ряда людей, в том числе руководителей компаний, сложилось ощущение, что это что-то противозаконное и за это будут наказывать. То есть, в голове у людей есть такое представление, но формальных оснований для этого нет. И это очень сильно тормозит процесс внедрения продуктов на основе блокчейн.

Второй трудностью является отсутствие достаточного количества людей, которые понимают технологию блокчейна, разбираются в ней и могут предметно рассуждать на тему, для каких ситуаций она применима, а для каких — нет. Сейчас есть очень много ситуаций, в которых решения на основе технологии блокчейн пытаются применять там, где в этом нет необходимости, и вполне можно обойтись теми решениями, которые уже существуют. Эти излишние ожидания от технологии очень часто идут во вред. Мы часто сталкиваемся с запросами на внедрение решений на основе технологии блокчейн, разбирая которые, мы понимаем, что вполне можно обойтись и существующими инструментами. С другой стороны, есть большое количество задач, например, кейс Acronis с обменом информации между банками, который описан выше, для элегантного и простого решения которых отлично подходит именно блокчейн.

Герман Греф сравнил появление технологии блокчейна с появлением интернета, на сколько, по вашему мнению, эти два «изобретения» соизмеримы?

Герман Греф не первый человек, который привел такое сравнение. Марк Андриссен, один из самых известных венчурных инвесторов мира, который придумал браузер NetScape и который инвестировал в огромное количество успешных стартапов, также приводит аналогичное сравнение технологии блокчейн и интернета. Но, даже если влияние технологии блокчейн на наш мир окажется в десять раз меньше, это все равно будут очень серьезные изменения.

habr.com