Блокчейн. Блокчейн википедия


Блокчейн — Википедия

Схема получения хеша транзакций

Блокче́йн (англ. blockchain или block chain[1]) — выстроенная по определённым правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга.

Общие сведения

Впервые термин появился как название полностью реплицированной распределённой базы данных, реализованной в системе «Биткойн», из-за чего блокчейн часто относят к транзакциям в различных криптовалютах, однако технология цепочек блоков может быть распространена на любые взаимосвязанные информационные блоки[2]. Биткойн стал первым применением технологии блокчейн в октябре 2008 года[3].

Видео по теме

Реализация в системе Биткойн

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике никогда не было зафиксировано. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

Применение вне сферы криптовалют

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

Критика

Международная межбанковская система передачи информации и финансовых транзакций SWIFT заявила об опасности нереалистичных ожиданий в отношении ажиотажа вокруг технологий цепочки блоков и распределённых реестров в банковской среде[45][46].

Американский экономист Нуриэль Рубини подверг критике технологию блокчейн, заявив, что за десятилетие у данной технологии так и не появились общие и универсальные базовые протоколы, как сделавшие Интернет общедоступным TCP/IP и HTML. Также Нуриэль Рубини считает, что обещание децентрализованных транзакций без посредников остаётся «сомнительной, утопической мечтой»[47].

Россия

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

См. также

Ссылки

Примечания

  1. ↑ Satoshi, 2008, с. 2—3.
  2. ↑ Генкин, Михеев, 2017, с. 15.
  3. ↑ 1 2 Marco Iansiti and Karim R. Lakhani (2017). «The Truth About Blockchain». Harvard Business Review (January–February 2017 issue): 118–127. Проверено 27 February 2018.
  4. ↑ 1 2 3 Satoshi, 2008, с. 3.
  5. ↑ Genesis Block, Block 0 (англ.). Проверено 21 декабря 2015.
  6. ↑ 1 2 Satoshi, 2008, с. 4.
  7. ↑ Finding 2016 Blocks (англ.). Проверено 21 декабря 2015.
  8. ↑ Bitcoin Block Explorer - сайт, позволяющий просматривать цепочку блоков (англ.). Проверено 21 декабря 2015. Архивировано 15 июля 2012 года.
  9. ↑ Satoshi, 2008, с. 5.
  10. ↑ 1 2 Satoshi, 2008, с. 2.
  11. ↑ The Mission to Decentralize the Internet, The New Yorker (12 December 2013). Проверено 30 декабря 2014. «The network’s „nodes“—users running the bitcoin software on their computers—collectively check the integrity of other nodes to ensure that no one spends the same coins twice. All transactions are published on a shared public ledger, called the „block chain“».
  12. ↑ Релиз Bitcoin 0.8.0 - OpenSource - Новости. Проверено 22 февраля 2013. Архивировано 13 марта 2013 года.
  13. ↑ Bitcoin is under attack (англ.). Проверено 21 декабря 2015.
  14. ↑ 1 2 Число брошенных блоков (англ.). Проверено 21 декабря 2015.
  15. ↑ Bitcoin Developer Examples (англ.). Проверено 21 декабря 2015.
  16. ↑ Статья о вероятности Double Spending атаки (англ.). Архивировано 21 мая 2013 года.
  17. ↑ Satoshi, 2008, с. 6—8.
  18. ↑ Bitcoin Charts (англ.). Проверено 21 декабря 2015.
  19. ↑ Bitcoin security guarantee shattered by anonymous miner with 51 % network power (англ.). Проверено 21 декабря 2015.
  20. ↑ Графики изменения сложности сети Bitcoin (англ.). Проверено 21 декабря 2015.
  21. ↑ Bitcoin hash (англ.). Проверено 21 декабря 2015.
  22. ↑ «Наш ответ блокчейну»: российские банки намерены запустить свой аналог распределённого реестра (рус.), CoinMarket.News (4 августа 2017). Проверено 3 ноября 2017.
  23. ↑ «Сбербанк» стал первым российским банком в составе Enterprise Ethereum Alliance (рус.), CoinMarket.News (18 октября 2017). Проверено 3 ноября 2017.
  24. ↑ Visa планирует запатентовать собственную систему цифровых активов (рус.), CoinMarket.News (21 августа 2017). Проверено 3 ноября 2017.
  25. ↑ Visa будет использовать блокчейн для международных платежей (рус.). Хайтек. Проверено 3 ноября 2017.
  26. ↑ Mastercard разрабатывает собственную блокчейн-систему транзакций (рус.), CoinMarket.News (22 сентября 2017). Проверено 3 ноября 2017.
  27. ↑ Mastercard запускает платежную сеть на блокчейне (рус.). Хайтек. Проверено 3 ноября 2017.
  28. ↑ Китайский гигант UnionPay работает над блокчейном для банкоматов (рус.), CoinMarket.News (28 августа 2017). Проверено 3 ноября 2017.
  29. ↑ Межбанковская система Swift завершила тестирование смарт-контрактов на основе блокчейна (рус.), CoinMarket.News (3 июля 2017). Проверено 3 ноября 2017.
  30. ↑ «Единогласно»: SWIFT сообщает об успешном тестировании протоколов Proof-of-Concept (рус.), CoinMarket.News (16 октября 2017). Проверено 3 ноября 2017.
  31. ↑ 1 2 Nienhaus, Lisa. Kryptowährung: Der Blockchain-Code (de-DE), Die Zeit (28 февраля 2018). Проверено 28 февраля 2018.
  32. ↑ S7 Airlines в партнерстве с Альфа-Банком запустила новое решение по продаже авиабилетов на базе Ethereum (28.07.2017).
  33. ↑ Sweden tests blockchain technology for land registry, Reuters (Thu Jun 16 20:19:44 UTC 2016). Проверено 3 ноября 2017.
  34. ↑ Государственный земельный кадастр Украины перешел на технологию Blockchain - ITC.ua (рус.), ITC.ua (3 октября 2017). Проверено 13 декабря 2017.
  35. ↑ Теперь официально: земельный реестр Дубая начал «переезд» в блокчейн (рус.), CoinMarket.News (9 октября 2017). Проверено 3 ноября 2017.
  36. ↑ Browne, Ryan. An Indian state wants to use blockchain to fight land ownership fraud, CNBC (10 октября 2017). Проверено 6 апреля 2018.
  37. ↑ AP govt becomes first state in India to adopt blockchain tech for governance, The News Minute (10 октября 2017). Проверено 6 апреля 2018.
  38. ↑ Andhra to get Block Chain Technology Park (англ.). The Hans India. Проверено 6 апреля 2018.
  39. ↑ Блокчейн могут начать внедрять в систему ЕГРН на территории Москвы в рамках эксперимента в 2018 г., Рамблер (18 октября 2017). Проверено 3 ноября 2017.
  40. ↑ Allison, Ian. 3D printing, counterfeit pharma and crypto CCTV highlighted at Digital Catapult Blockchain Pitchoff (англ.), International Business Times UK (31 March 2016). Проверено 3 ноября 2017.
  41. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  42. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  43. ↑ Финляндия решила проблему идентификации беженцев с помощью блокчейна (рус.), CoinMarket.News (6 сентября 2017). Проверено 3 ноября 2017.
  44. ↑ Блокчейн-республика: система «электронного резидентства» в Эстонии создаёт цифровое общество без границ (рус.), CoinMarket.News (16 августа 2017). Проверено 3 ноября 2017.
  45. ↑ The Impact and Potential of Blockchain on Securities Transaction Lifecycle | The SWIFT Institute
  46. ↑ В SWIFT заявили об опасности нереалистичных ожиданий в отношении блокчейна | ForkLog
  47. ↑ Нуриэль Рубини Сломанные обещания блокчейна (англ.)
  48. ↑ Росреестр в сентябре запустит пилотный проект на основе блокчейна в Новгородской области (рус.), ТАСС. Проверено 15 сентября 2017.
  49. ↑ Татарстан на блокчейне: власти внедрят новую технологию в госуправлении, 24 июля 2017
  50. ↑ Сбербанк и SWIFT оценят возможность использования блокчейн в банковских расчетах
  51. ↑ В Новгородской области контроль за лекарственными средствами будут осуществлять на блокчейне, 18 октября 2017
  52. ↑ Власти Москвы готовы предоставить Росреестру сервер для внедрения блокчейн-сервисов
  53. ↑ «Газпром нефть» начала использование блокчейна при поставках оборудования (1 февраля 2018). Проверено 6 апреля 2018.
  54. ↑ В «Газпром нефти» испытали блокчейн и интернет вещей в логистике (рус.). www.gazprom-neft.ru. Проверено 6 апреля 2018.

Литература

Книги
  • Артем Генкин, Алексей Михеев. Блокчейн. Как это работает и что ждет нас завтра. — М.: Альпина Паблишер, 2017. — 592 p. — ISBN 978-5-9614-6558-7.
  • Melanie Swan. Blockchain: Blueprint for a New Economy. — O'Reilly Media, Inc., 2015. — 152 p. — ISBN 978-1-4919-2047-3. В русском переводе Мелани Свон. Блокчейн: Схема новой экономики. — Олимп-Бизнес, 2016. — 240 с. ISBN 978-5-9693-0360-7
  • Pedro Franco. The Blockchain // Understanding Bitcoin: Cryptography, Engineering and Economics. — John Wiley & Sons, 2014. — 288 p. — ISBN 978-1-119-01916-9.
  • Andreas M. Antonopoulos. 7. The Blockchain // Mastering Bitcoin. — O'Reilly Media, Inc., 2014. — ISBN 978-1-4493-7404-4.
Статьи

wikipedia.green

Блокчейн — Википедия РУ

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

  Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике никогда не было зафиксировано. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

http-wikipediya.ru

Блокчейн — Википедия

Статья из Википедии — свободной энциклопедии

Схема получения хеша транзакций

Блокче́йн (англ. blockchain или block chain[1]) — выстроенная по определённым правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга.

Общие сведения

Впервые термин появился как название полностью реплицированной распределённой базы данных, реализованной в системе «Биткойн», из-за чего блокчейн часто относят к транзакциям в различных криптовалютах, однако технология цепочек блоков может быть распространена на любые взаимосвязанные информационные блоки[2]. Биткойн стал первым применением технологии блокчейн в октябре 2008 года[3].

Реализация в системе Биткойн

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике не было зафиксировано ни разу. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

Применение вне сферы криптовалют

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

Критика

Международная межбанковская система передачи информации и финансовых транзакций SWIFT заявила об опасности нереалистичных ожиданий в отношении ажиотажа вокруг технологий цепочки блоков и распределённых реестров в банковской среде[45][46].

Американский экономист Нуриэль Рубини подверг критике технологию блокчейн, заявив, что за десятилетие у данной технологии так и не появились общие и универсальные базовые протоколы, как сделавшие Интернет общедоступным TCP/IP и HTML. Также Нуриэль Рубини считает, что обещание децентрализованных транзакций без посредников остаётся «сомнительной, утопической мечтой»[47].

Россия

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

См. также

Ссылки

Примечания

  1. ↑ Satoshi, 2008, с. 2—3.
  2. ↑ Генкин, Михеев, 2017, с. 15.
  3. ↑ 1 2 Marco Iansiti and Karim R. Lakhani (2017). «The Truth About Blockchain». Harvard Business Review (January–February 2017 issue): 118–127. Проверено 27 February 2018.
  4. ↑ 1 2 3 Satoshi, 2008, с. 3.
  5. ↑ Genesis Block, Block 0 (англ.). Проверено 21 декабря 2015.
  6. ↑ 1 2 Satoshi, 2008, с. 4.
  7. ↑ Finding 2016 Blocks (англ.). Проверено 21 декабря 2015.
  8. ↑ Bitcoin Block Explorer - сайт, позволяющий просматривать цепочку блоков (англ.). Проверено 21 декабря 2015. Архивировано 15 июля 2012 года.
  9. ↑ Satoshi, 2008, с. 5.
  10. ↑ 1 2 Satoshi, 2008, с. 2.
  11. ↑ The Mission to Decentralize the Internet, The New Yorker (12 December 2013). Проверено 30 декабря 2014. «The network’s „nodes“—users running the bitcoin software on their computers—collectively check the integrity of other nodes to ensure that no one spends the same coins twice. All transactions are published on a shared public ledger, called the „block chain“».
  12. ↑ Релиз Bitcoin 0.8.0 - OpenSource - Новости. Проверено 22 февраля 2013. Архивировано 13 марта 2013 года.
  13. ↑ Bitcoin is under attack (англ.). Проверено 21 декабря 2015.
  14. ↑ 1 2 Число брошенных блоков (англ.). Проверено 21 декабря 2015.
  15. ↑ Bitcoin Developer Examples (англ.). Проверено 21 декабря 2015.
  16. ↑ Статья о вероятности Double Spending атаки (англ.). Архивировано 21 мая 2013 года.
  17. ↑ Satoshi, 2008, с. 6—8.
  18. ↑ Bitcoin Charts (англ.). Проверено 21 декабря 2015.
  19. ↑ Bitcoin security guarantee shattered by anonymous miner with 51 % network power (англ.). Проверено 21 декабря 2015.
  20. ↑ Графики изменения сложности сети Bitcoin (англ.). Проверено 21 декабря 2015.
  21. ↑ Bitcoin hash (англ.). Проверено 21 декабря 2015.
  22. ↑ «Наш ответ блокчейну»: российские банки намерены запустить свой аналог распределённого реестра (рус.), CoinMarket.News (4 августа 2017). Проверено 3 ноября 2017.
  23. ↑ «Сбербанк» стал первым российским банком в составе Enterprise Ethereum Alliance (рус.), CoinMarket.News (18 октября 2017). Проверено 3 ноября 2017.
  24. ↑ Visa планирует запатентовать собственную систему цифровых активов (рус.), CoinMarket.News (21 августа 2017). Проверено 3 ноября 2017.
  25. ↑ Visa будет использовать блокчейн для международных платежей (рус.). Хайтек. Проверено 3 ноября 2017.
  26. ↑ Mastercard разрабатывает собственную блокчейн-систему транзакций (рус.), CoinMarket.News (22 сентября 2017). Проверено 3 ноября 2017.
  27. ↑ Mastercard запускает платежную сеть на блокчейне (рус.). Хайтек. Проверено 3 ноября 2017.
  28. ↑ Китайский гигант UnionPay работает над блокчейном для банкоматов (рус.), CoinMarket.News (28 августа 2017). Проверено 3 ноября 2017.
  29. ↑ Межбанковская система Swift завершила тестирование смарт-контрактов на основе блокчейна (рус.), CoinMarket.News (3 июля 2017). Проверено 3 ноября 2017.
  30. ↑ «Единогласно»: SWIFT сообщает об успешном тестировании протоколов Proof-of-Concept (рус.), CoinMarket.News (16 октября 2017). Проверено 3 ноября 2017.
  31. ↑ 1 2 Nienhaus, Lisa. Kryptowährung: Der Blockchain-Code (de-DE), Die Zeit (28 февраля 2018). Проверено 28 февраля 2018.
  32. ↑ S7 Airlines в партнерстве с Альфа-Банком запустила новое решение по продаже авиабилетов на базе Ethereum (28.07.2017).
  33. ↑ Sweden tests blockchain technology for land registry, Reuters (Thu Jun 16 20:19:44 UTC 2016). Проверено 3 ноября 2017.
  34. ↑ Государственный земельный кадастр Украины перешел на технологию Blockchain - ITC.ua (рус.), ITC.ua (3 октября 2017). Проверено 13 декабря 2017.
  35. ↑ Теперь официально: земельный реестр Дубая начал «переезд» в блокчейн (рус.), CoinMarket.News (9 октября 2017). Проверено 3 ноября 2017.
  36. ↑ Browne, Ryan. An Indian state wants to use blockchain to fight land ownership fraud, CNBC (10 октября 2017). Проверено 6 апреля 2018.
  37. ↑ AP govt becomes first state in India to adopt blockchain tech for governance, The News Minute (10 октября 2017). Проверено 6 апреля 2018.
  38. ↑ Andhra to get Block Chain Technology Park (англ.). The Hans India. Проверено 6 апреля 2018.
  39. ↑ Блокчейн могут начать внедрять в систему ЕГРН на территории Москвы в рамках эксперимента в 2018 г., Рамблер (18 октября 2017). Проверено 3 ноября 2017.
  40. ↑ Allison, Ian. 3D printing, counterfeit pharma and crypto CCTV highlighted at Digital Catapult Blockchain Pitchoff (англ.), International Business Times UK (31 March 2016). Проверено 3 ноября 2017.
  41. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  42. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  43. ↑ Финляндия решила проблему идентификации беженцев с помощью блокчейна (рус.), CoinMarket.News (6 сентября 2017). Проверено 3 ноября 2017.
  44. ↑ Блокчейн-республика: система «электронного резидентства» в Эстонии создаёт цифровое общество без границ (рус.), CoinMarket.News (16 августа 2017). Проверено 3 ноября 2017.
  45. ↑ The Impact and Potential of Blockchain on Securities Transaction Lifecycle | The SWIFT Institute
  46. ↑ В SWIFT заявили об опасности нереалистичных ожиданий в отношении блокчейна | ForkLog
  47. ↑ Нуриэль Рубини Сломанные обещания блокчейна (англ.)
  48. ↑ Росреестр в сентябре запустит пилотный проект на основе блокчейна в Новгородской области (рус.), ТАСС. Проверено 15 сентября 2017.
  49. ↑ Татарстан на блокчейне: власти внедрят новую технологию в госуправлении, 24 июля 2017
  50. ↑ Сбербанк и SWIFT оценят возможность использования блокчейн в банковских расчетах
  51. ↑ В Новгородской области контроль за лекарственными средствами будут осуществлять на блокчейне, 18 октября 2017
  52. ↑ Власти Москвы готовы предоставить Росреестру сервер для внедрения блокчейн-сервисов
  53. ↑ «Газпром нефть» начала использование блокчейна при поставках оборудования (1 февраля 2018). Проверено 6 апреля 2018.
  54. ↑ В «Газпром нефти» испытали блокчейн и интернет вещей в логистике (рус.). www.gazprom-neft.ru. Проверено 6 апреля 2018.

Литература

Книги
  • Артем Генкин, Алексей Михеев. Блокчейн. Как это работает и что ждет нас завтра. — М.: Альпина Паблишер, 2017. — 592 p. — ISBN 978-5-9614-6558-7.
  • Melanie Swan. Blockchain: Blueprint for a New Economy. — O'Reilly Media, Inc., 2015. — 152 p. — ISBN 978-1-4919-2047-3. В русском переводе Мелани Свон. Блокчейн: Схема новой экономики. — Олимп-Бизнес, 2016. — 240 с. ISBN 978-5-9693-0360-7
  • Pedro Franco. The Blockchain // Understanding Bitcoin: Cryptography, Engineering and Economics. — John Wiley & Sons, 2014. — 288 p. — ISBN 978-1-119-01916-9.
  • Andreas M. Antonopoulos. 7. The Blockchain // Mastering Bitcoin. — O'Reilly Media, Inc., 2014. — ISBN 978-1-4493-7404-4.
Статьи

wiki.sc

Технология Блокчейн - Технология BlockChain

Это утверждённая версия страницы. Она же — наиболее свежая версия.

Блокчейн (англ. blockchain или block chain - "цепочка блоков") – публичная база всех транзакций, когда-либо совершенных в системе Bitcoin. Используя эту базу, каждый пользователь имеет возможность узнать, какое количество Bitcoin принадлежало какому-либо конкретному адресу в определенный отрезок времени. База поддерживается с помощью распределённых усилий множества майнеров.

Принцип построения[править]

Каждый созданный блок содержит хэш предыдущего. Таким образом создается цепочка блоков, которая берет начало от так называемого genesis block (первый блок в системе Bitcoin) до последнего найденного системой блока. Редактировать информацию в блоке, который находится в цепи уже продолжительное время – не практично, так как в таком случае так же пришлось бы редактировать информацию во всех последующих блоках. Благодаря этим свойствам double-spending атака (повторная трата уже израсходованных средств) в системе bitcoin практически не выполнима.

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

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

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

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

Алгоритм блокчейна[править]

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

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

Основатель телеграм-канала @blockchainRF Ани Асланян о том что такое блокчейн, откуда взялась эта технология и какие преимущества она предоставляет в области хранения данных

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

У любого блока из цепи есть только один путь к genesis block. В свою очередь от genesis block цепь может разделятся на несколько, образуя таким образом форк (англ., "fork"). Форки, состоящие из одного блока, — это довольно распространенное явление. Они образуются, если несколько узлов "нашли" блок с разницей в несколько секунд. Когда такое происходит, остальные узлы начинают строить дальнейший block chain на блоке, который пришел им первым. Когда какой-либо из двух блоков получает продолжение - его цепочка считается главной в block chain, поскольку она становится длиннее.

Блоки, которые не являются частью главной block chain, не используются. Так же за них не начисляется награда. Такие блоки называются "orphan-блоки" ("орфаны"). Так как в блоке может быть ссылка только на один предшествующий блок, объединить 2 различные цепи невозможно.

  • Ethereum — распределенная вычислительная платформа с открытым исходным кодом, основанная на блокчейне с функциональными возможностями использования смарт контрактов. С ее помощью можно создавать децентрализованные онлайн-сервисы. Концепцию единой децентрализованной виртуальной машины в 2013 году предложил российско-канадский программист Виталик Бутерин. Сеть работает с 30 июня 2015 года после краудфандинговой кампании, которая позволила привлечь $18,439 млн.
  • Waves Platform — это криптовалютный проект, запущенный российским предпринимателем Александром Ивановым в 2016 году. Кампания по запуску Waves blockchain platform собрала 16 миллионов долларов, войдя в число крупнейших по привлеченным средствам через краудфандинг.

Классификация блокчейнов[править]

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

Такие трансформации позволяют говорить о разных видах блокчейна: - публичный блокчейн; - блокчейн, который принадлежит консорциуму; - и полностью частный блокчейн (классификация создателя платформы Ethereum Виталика Бутерина).

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

Публичный блокчейн[править]

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

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

Такие системы обычно считаются «полностью децентрализованными».

Блокчейн, принадлежащий консорциуму[править]

Консорциумные блокчейны (consortium blockchains) контролируются заранее выбранным набором узлов. Виталик Бутерин в качестве примера приводит систему из 15 финансовых учреждений, каждое из которых управляет узлом, и 10 из которых должны подтвердить каждый блок, чтобы его признали действительным и добавили в цепь.

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

Такие цепи можно назвать «частично децентрализованными».

Частный блокчейн[править]

Полностью частный блокчейн (fully private blockchains) — это цепочка блоков, в которой запись новых блоков закреплено только за одной организацией. Разрешение на чтение может быть общедоступным или ограничено в той или иной степени.

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

Применение технологии[править]

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

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

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

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

Перспектива технологии[править]

Делиться информацией в сети Интернет сегодня привычное дело для каждого. Однако, когда дело касается осуществления валютных операций или передачи каких-либо других ценностей, мы обращаемся к централизованной финансовой системе – банкам. И, несмотря на то, что сегодня существуют различные электронные способы оплаты (PayPal, WebMoney, ЯндексДеньги), использовать их в отрыве от банковской системы не представляется возможным – для обналичивания денежных средств вам всё равно понадобится кредитная карта или расчётный счёт.

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

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

https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/

https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf

http://www.coinfox.ru/novosti/obzory/5473-kakie-byvayut-blokchejny-i-pochemu-vazhno-ikh-razlichat

ru.bitcoinwiki.org

Блокчейн — Википедия

Схема получения хеша транзакций

Блокче́йн (англ. blockchain или block chain[1]) — выстроенная по определённым правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга.

Общие сведения

Впервые термин появился как название полностью реплицированной распределённой базы данных, реализованной в системе «Биткойн», из-за чего блокчейн часто относят к транзакциям в различных криптовалютах, однако технология цепочек блоков может быть распространена на любые взаимосвязанные информационные блоки[2]. Биткойн стал первым применением технологии блокчейн в октябре 2008 года[3].

Видео по теме

Реализация в системе Биткойн

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике никогда не было зафиксировано. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

Применение вне сферы криптовалют

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

Критика

Международная межбанковская система передачи информации и финансовых транзакций SWIFT заявила об опасности нереалистичных ожиданий в отношении ажиотажа вокруг технологий цепочки блоков и распределённых реестров в банковской среде[45][46].

Американский экономист Нуриэль Рубини подверг критике технологию блокчейн, заявив, что за десятилетие у данной технологии так и не появились общие и универсальные базовые протоколы, как сделавшие Интернет общедоступным TCP/IP и HTML. Также Нуриэль Рубини считает, что обещание децентрализованных транзакций без посредников остаётся «сомнительной, утопической мечтой»[47].

Россия

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

См. также

Ссылки

Примечания

  1. ↑ Satoshi, 2008, с. 2—3.
  2. ↑ Генкин, Михеев, 2017, с. 15.
  3. ↑ 1 2 Marco Iansiti and Karim R. Lakhani (2017). «The Truth About Blockchain». Harvard Business Review (January–February 2017 issue): 118–127. Проверено 27 February 2018.
  4. ↑ 1 2 3 Satoshi, 2008, с. 3.
  5. ↑ Genesis Block, Block 0 (англ.). Проверено 21 декабря 2015.
  6. ↑ 1 2 Satoshi, 2008, с. 4.
  7. ↑ Finding 2016 Blocks (англ.). Проверено 21 декабря 2015.
  8. ↑ Bitcoin Block Explorer - сайт, позволяющий просматривать цепочку блоков (англ.). Проверено 21 декабря 2015. Архивировано 15 июля 2012 года.
  9. ↑ Satoshi, 2008, с. 5.
  10. ↑ 1 2 Satoshi, 2008, с. 2.
  11. ↑ The Mission to Decentralize the Internet, The New Yorker (12 December 2013). Проверено 30 декабря 2014. «The network’s „nodes“—users running the bitcoin software on their computers—collectively check the integrity of other nodes to ensure that no one spends the same coins twice. All transactions are published on a shared public ledger, called the „block chain“».
  12. ↑ Релиз Bitcoin 0.8.0 - OpenSource - Новости. Проверено 22 февраля 2013. Архивировано 13 марта 2013 года.
  13. ↑ Bitcoin is under attack (англ.). Проверено 21 декабря 2015.
  14. ↑ 1 2 Число брошенных блоков (англ.). Проверено 21 декабря 2015.
  15. ↑ Bitcoin Developer Examples (англ.). Проверено 21 декабря 2015.
  16. ↑ Статья о вероятности Double Spending атаки (англ.). Архивировано 21 мая 2013 года.
  17. ↑ Satoshi, 2008, с. 6—8.
  18. ↑ Bitcoin Charts (англ.). Проверено 21 декабря 2015.
  19. ↑ Bitcoin security guarantee shattered by anonymous miner with 51 % network power (англ.). Проверено 21 декабря 2015.
  20. ↑ Графики изменения сложности сети Bitcoin (англ.). Проверено 21 декабря 2015.
  21. ↑ Bitcoin hash (англ.). Проверено 21 декабря 2015.
  22. ↑ «Наш ответ блокчейну»: российские банки намерены запустить свой аналог распределённого реестра (рус.), CoinMarket.News (4 августа 2017). Проверено 3 ноября 2017.
  23. ↑ «Сбербанк» стал первым российским банком в составе Enterprise Ethereum Alliance (рус.), CoinMarket.News (18 октября 2017). Проверено 3 ноября 2017.
  24. ↑ Visa планирует запатентовать собственную систему цифровых активов (рус.), CoinMarket.News (21 августа 2017). Проверено 3 ноября 2017.
  25. ↑ Visa будет использовать блокчейн для международных платежей (рус.). Хайтек. Проверено 3 ноября 2017.
  26. ↑ Mastercard разрабатывает собственную блокчейн-систему транзакций (рус.), CoinMarket.News (22 сентября 2017). Проверено 3 ноября 2017.
  27. ↑ Mastercard запускает платежную сеть на блокчейне (рус.). Хайтек. Проверено 3 ноября 2017.
  28. ↑ Китайский гигант UnionPay работает над блокчейном для банкоматов (рус.), CoinMarket.News (28 августа 2017). Проверено 3 ноября 2017.
  29. ↑ Межбанковская система Swift завершила тестирование смарт-контрактов на основе блокчейна (рус.), CoinMarket.News (3 июля 2017). Проверено 3 ноября 2017.
  30. ↑ «Единогласно»: SWIFT сообщает об успешном тестировании протоколов Proof-of-Concept (рус.), CoinMarket.News (16 октября 2017). Проверено 3 ноября 2017.
  31. ↑ 1 2 Nienhaus, Lisa. Kryptowährung: Der Blockchain-Code (de-DE), Die Zeit (28 февраля 2018). Проверено 28 февраля 2018.
  32. ↑ S7 Airlines в партнерстве с Альфа-Банком запустила новое решение по продаже авиабилетов на базе Ethereum (28.07.2017).
  33. ↑ Sweden tests blockchain technology for land registry, Reuters (Thu Jun 16 20:19:44 UTC 2016). Проверено 3 ноября 2017.
  34. ↑ Государственный земельный кадастр Украины перешел на технологию Blockchain - ITC.ua (рус.), ITC.ua (3 октября 2017). Проверено 13 декабря 2017.
  35. ↑ Теперь официально: земельный реестр Дубая начал «переезд» в блокчейн (рус.), CoinMarket.News (9 октября 2017). Проверено 3 ноября 2017.
  36. ↑ Browne, Ryan. An Indian state wants to use blockchain to fight land ownership fraud, CNBC (10 октября 2017). Проверено 6 апреля 2018.
  37. ↑ AP govt becomes first state in India to adopt blockchain tech for governance, The News Minute (10 октября 2017). Проверено 6 апреля 2018.
  38. ↑ Andhra to get Block Chain Technology Park (англ.). The Hans India. Проверено 6 апреля 2018.
  39. ↑ Блокчейн могут начать внедрять в систему ЕГРН на территории Москвы в рамках эксперимента в 2018 г., Рамблер (18 октября 2017). Проверено 3 ноября 2017.
  40. ↑ Allison, Ian. 3D printing, counterfeit pharma and crypto CCTV highlighted at Digital Catapult Blockchain Pitchoff (англ.), International Business Times UK (31 March 2016). Проверено 3 ноября 2017.
  41. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  42. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  43. ↑ Финляндия решила проблему идентификации беженцев с помощью блокчейна (рус.), CoinMarket.News (6 сентября 2017). Проверено 3 ноября 2017.
  44. ↑ Блокчейн-республика: система «электронного резидентства» в Эстонии создаёт цифровое общество без границ (рус.), CoinMarket.News (16 августа 2017). Проверено 3 ноября 2017.
  45. ↑ The Impact and Potential of Blockchain on Securities Transaction Lifecycle | The SWIFT Institute
  46. ↑ В SWIFT заявили об опасности нереалистичных ожиданий в отношении блокчейна | ForkLog
  47. ↑ Нуриэль Рубини Сломанные обещания блокчейна (англ.)
  48. ↑ Росреестр в сентябре запустит пилотный проект на основе блокчейна в Новгородской области (рус.), ТАСС. Проверено 15 сентября 2017.
  49. ↑ Татарстан на блокчейне: власти внедрят новую технологию в госуправлении, 24 июля 2017
  50. ↑ Сбербанк и SWIFT оценят возможность использования блокчейн в банковских расчетах
  51. ↑ В Новгородской области контроль за лекарственными средствами будут осуществлять на блокчейне, 18 октября 2017
  52. ↑ Власти Москвы готовы предоставить Росреестру сервер для внедрения блокчейн-сервисов
  53. ↑ «Газпром нефть» начала использование блокчейна при поставках оборудования (1 февраля 2018). Проверено 6 апреля 2018.
  54. ↑ В «Газпром нефти» испытали блокчейн и интернет вещей в логистике (рус.). www.gazprom-neft.ru. Проверено 6 апреля 2018.

Литература

Книги
  • Артем Генкин, Алексей Михеев. Блокчейн. Как это работает и что ждет нас завтра. — М.: Альпина Паблишер, 2017. — 592 p. — ISBN 978-5-9614-6558-7.
  • Melanie Swan. Blockchain: Blueprint for a New Economy. — O'Reilly Media, Inc., 2015. — 152 p. — ISBN 978-1-4919-2047-3. В русском переводе Мелани Свон. Блокчейн: Схема новой экономики. — Олимп-Бизнес, 2016. — 240 с. ISBN 978-5-9693-0360-7
  • Pedro Franco. The Blockchain // Understanding Bitcoin: Cryptography, Engineering and Economics. — John Wiley & Sons, 2014. — 288 p. — ISBN 978-1-119-01916-9.
  • Andreas M. Antonopoulos. 7. The Blockchain // Mastering Bitcoin. — O'Reilly Media, Inc., 2014. — ISBN 978-1-4493-7404-4.
Статьи

www.wikipedia.green

Блокчейн Википедия

Схема получения хеша транзакций

Блокче́йн (англ. 

blockchain или block chain[1]) — выстроенная по определённым правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга.

Общие сведения

Впервые термин появился как название полностью реплицированной распределённой базы данных, реализованной в системе «Биткойн», из-за чего блокчейн часто относят к транзакциям в различных криптовалютах, однако технология цепочек блоков может быть распространена на любые взаимосвязанные информационные блоки[2]. Биткойн стал первым применением технологии блокчейн в октябре 2008 года[3].

Реализация в системе Биткойн

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике не было зафиксировано ни разу. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

Применение вне сферы криптовалют

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

Критика

Международная межбанковская система передачи информации и финансовых транзакций SWIFT заявила об опасности нереалистичных ожиданий в отношении ажиотажа вокруг технологий цепочки блоков и распределённых реестров в банковской среде[45][46].

Американский экономист Нуриэль Рубини подверг критике технологию блокчейн, заявив, что за десятилетие у данной технологии так и не появились общие и универсальные базовые протоколы, как сделавшие Интернет общедоступным TCP/IP и HTML. Также Нуриэль Рубини считает, что обещание децентрализованных транзакций без посредников остаётся «сомнительной, утопической мечтой»[47].

Россия

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

См. также

Ссылки

Примечания

  1. ↑ Satoshi, 2008, с. 2—3.
  2. ↑ Генкин, Михеев, 2017, с. 15.
  3. ↑ 1 2 Marco Iansiti and Karim R. Lakhani (2017). «The Truth About Blockchain». Harvard Business Review (January–February 2017 issue): 118–127. Проверено 27 February 2018.
  4. ↑ 1 2 3 Satoshi, 2008, с. 3.
  5. ↑ Genesis Block, Block 0 (англ.). Проверено 21 декабря 2015.
  6. ↑ 1 2 Satoshi, 2008, с. 4.
  7. ↑ Finding 2016 Blocks (англ.). Проверено 21 декабря 2015.
  8. ↑ Bitcoin Block Explorer - сайт, позволяющий просматривать цепочку блоков (англ.). Проверено 21 декабря 2015. Архивировано 15 июля 2012 года.
  9. ↑ Satoshi, 2008, с. 5.
  10. ↑ 1 2 Satoshi, 2008, с. 2.
  11. ↑ The Mission to Decentralize the Internet, The New Yorker (12 December 2013). Проверено 30 декабря 2014. «The network’s „nodes“—users running the bitcoin software on their computers—collectively check the integrity of other nodes to ensure that no one spends the same coins twice. All transactions are published on a shared public ledger, called the „block chain“».
  12. ↑ Релиз Bitcoin 0.8.0 - OpenSource - Новости. Проверено 22 февраля 2013. Архивировано 13 марта 2013 года.
  13. ↑ Bitcoin is under attack (англ.). Проверено 21 декабря 2015.
  14. ↑ 1 2 Число брошенных блоков (англ.). Проверено 21 декабря 2015.
  15. ↑ Bitcoin Developer Examples (англ.). Проверено 21 декабря 2015.
  16. ↑ Статья о вероятности Double Spending атаки (англ.). Архивировано 21 мая 2013 года.
  17. ↑ Satoshi, 2008, с. 6—8.
  18. ↑ Bitcoin Charts (англ.). Проверено 21 декабря 2015.
  19. ↑ Bitcoin security guarantee shattered by anonymous miner with 51 % network power (англ.). Проверено 21 декабря 2015.
  20. ↑ Графики изменения сложности сети Bitcoin (англ.). Проверено 21 декабря 2015.
  21. ↑ Bitcoin hash (англ.). Проверено 21 декабря 2015.
  22. ↑ «Наш ответ блокчейну»: российские банки намерены запустить свой аналог распределённого реестра (рус.), CoinMarket.News (4 августа 2017). Проверено 3 ноября 2017.
  23. ↑ «Сбербанк» стал первым российским банком в составе Enterprise Ethereum Alliance (рус.), CoinMarket.News (18 октября 2017). Проверено 3 ноября 2017.
  24. ↑ Visa планирует запатентовать собственную систему цифровых активов (рус.), CoinMarket.News (21 августа 2017). Проверено 3 ноября 2017.
  25. ↑ Visa будет использовать блокчейн для международных платежей (рус.). Хайтек. Проверено 3 ноября 2017.
  26. ↑ Mastercard разрабатывает собственную блокчейн-систему транзакций (рус.), CoinMarket.News (22 сентября 2017). Проверено 3 ноября 2017.
  27. ↑ Mastercard запускает платежную сеть на блокчейне (рус.). Хайтек. Проверено 3 ноября 2017.
  28. ↑ Китайский гигант UnionPay работает над блокчейном для банкоматов (рус.), CoinMarket.News (28 августа 2017). Проверено 3 ноября 2017.
  29. ↑ Межбанковская система Swift завершила тестирование смарт-контрактов на основе блокчейна (рус.), CoinMarket.News (3 июля 2017). Проверено 3 ноября 2017.
  30. ↑ «Единогласно»: SWIFT сообщает об успешном тестировании протоколов Proof-of-Concept (рус.), CoinMarket.News (16 октября 2017). Проверено 3 ноября 2017.
  31. ↑ 1 2 Nienhaus, Lisa. Kryptowährung: Der Blockchain-Code (de-DE), Die Zeit (28 февраля 2018). Проверено 28 февраля 2018.
  32. ↑ S7 Airlines в партнерстве с Альфа-Банком запустила новое решение по продаже авиабилетов на базе Ethereum (28.07.2017).
  33. ↑ Sweden tests blockchain technology for land registry, Reuters (Thu Jun 16 20:19:44 UTC 2016). Проверено 3 ноября 2017.
  34. ↑ Государственный земельный кадастр Украины перешел на технологию Blockchain - ITC.ua (рус.), ITC.ua (3 октября 2017). Проверено 13 декабря 2017.
  35. ↑ Теперь официально: земельный реестр Дубая начал «переезд» в блокчейн (рус.), CoinMarket.News (9 октября 2017). Проверено 3 ноября 2017.
  36. ↑ Browne, Ryan. An Indian state wants to use blockchain to fight land ownership fraud, CNBC (10 октября 2017). Проверено 6 апреля 2018.
  37. ↑ AP govt becomes first state in India to adopt blockchain tech for governance, The News Minute (10 октября 2017). Проверено 6 апреля 2018.
  38. ↑ Andhra to get Block Chain Technology Park (англ.). The Hans India. Проверено 6 апреля 2018.
  39. ↑ Блокчейн могут начать внедрять в систему ЕГРН на территории Москвы в рамках эксперимента в 2018 г., Рамблер (18 октября 2017). Проверено 3 ноября 2017.
  40. ↑ Allison, Ian. 3D printing, counterfeit pharma and crypto CCTV highlighted at Digital Catapult Blockchain Pitchoff (англ.), International Business Times UK (31 March 2016). Проверено 3 ноября 2017.
  41. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  42. ↑ Правительство Бразилии тестирует блокчейн-систему удостоверений личности (рус.), CoinMarket.News (24 августа 2017). Проверено 3 ноября 2017.
  43. ↑ Финляндия решила проблему идентификации беженцев с помощью блокчейна (рус.), CoinMarket.News (6 сентября 2017). Проверено 3 ноября 2017.
  44. ↑ Блокчейн-республика: система «электронного резидентства» в Эстонии создаёт цифровое общество без границ (рус.), CoinMarket.News (16 августа 2017). Проверено 3 ноября 2017.
  45. ↑ The Impact and Potential of Blockchain on Securities Transaction Lifecycle | The SWIFT Institute
  46. ↑ В SWIFT заявили об опасности нереалистичных ожиданий в отношении блокчейна | ForkLog
  47. ↑ Нуриэль Рубини Сломанные обещания блокчейна (англ.)
  48. ↑ Росреестр в сентябре запустит пилотный проект на основе блокчейна в Новгородской области (рус.), ТАСС. Проверено 15 сентября 2017.
  49. ↑ Татарстан на блокчейне: власти внедрят новую технологию в госуправлении, 24 июля 2017
  50. ↑ Сбербанк и SWIFT оценят возможность использования блокчейн в банковских расчетах
  51. ↑ В Новгородской области контроль за лекарственными средствами будут осуществлять на блокчейне, 18 октября 2017
  52. ↑ Власти Москвы готовы предоставить Росреестру сервер для внедрения блокчейн-сервисов
  53. ↑ «Газпром нефть» начала использование блокчейна при поставках оборудования (1 февраля 2018). Проверено 6 апреля 2018.
  54. ↑ В «Газпром нефти» испытали блокчейн и интернет вещей в логистике (рус.). www.gazprom-neft.ru. Проверено 6 апреля 2018.

Литература

Книги
  • Артем Генкин, Алексей Михеев. Блокчейн. Как это работает и что ждет нас завтра. — М.: Альпина Паблишер, 2017. — 592 p. — ISBN 978-5-9614-6558-7.
  • Melanie Swan. Blockchain: Blueprint for a New Economy. — O'Reilly Media, Inc., 2015. — 152 p. — ISBN 978-1-4919-2047-3. В русском переводе Мелани Свон. Блокчейн: Схема новой экономики. — Олимп-Бизнес, 2016. — 240 с. ISBN 978-5-9693-0360-7
  • Pedro Franco. The Blockchain // Understanding Bitcoin: Cryptography, Engineering and Economics. — John Wiley & Sons, 2014. — 288 p. — ISBN 978-1-119-01916-9.
  • Andreas M. Antonopoulos. 7. The Blockchain // Mastering Bitcoin. — O'Reilly Media, Inc., 2014. — ISBN 978-1-4493-7404-4.
Статьи

wikiredia.ru

Блокчейн — WiKi

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей[4]. Транзакция считается завершённой и достоверной («подтверждённой»), когда проверены её формат и подписи, и когда сама транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок. Содержимое блоков может быть проверено, так как каждый блок содержит информацию о предыдущем блоке. Все блоки выстроены в одну цепочку, которая содержит информацию обо всех совершённых когда-либо операциях в базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок[5].

Блок состоит из заголовка и списка транзакций. Заголовок блока включает в себя свой хеш, хеш предыдущего блока, хеши транзакций и дополнительную служебную информацию. В системе Биткойн первой транзакцией в блоке всегда указывается получение комиссии, которая станет наградой майнеру за созданный блок[4]. Далее идёт список транзакций, сформированный из очереди транзакций, ещё не записанных в предыдущие блоки. Критерий отбора из очереди задаёт майнер самостоятельно. Это не обязательно должна быть хронология по времени. Например, могут включаться только операции с высокой комиссией или с участием заданного списка адресов. Для транзакций в блоке используется древовидное хеширование[6], аналогичное формированию хеш-суммы для файла в протоколе BitTorrent. Транзакции, кроме начисления комиссии за создание блока, содержат внутри параметра input ссылку на транзакцию с предыдущим состоянием данных (в системе Биткойн, например, даётся ссылка на ту транзакцию, по которой были получены расходуемые биткойны). Операции по передаче майнеру комиссии за создание блока не имеют «входных» транзакций, поэтому в данном параметре может указываться любая информация (для них это поле носит название англ. Coinbase parameter).

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или меньше определённого целевого числа, величина которого периодически корректируется. Так как результат хеширования функции SHA-256 считается необратимым, на данный момент нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш[4].

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети[7].

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

  Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Блоки одновременно формируются множеством «майнеров». Удовлетворяющие критериям блоки отправляются в сеть, включаясь во все репликации распределённой базы блоков. Регулярно возникают ситуации, когда несколько новых блоков в разных частях распределённой сети называют предыдущим один и тот же блок, то есть цепочка блоков может ветвиться. Специально или случайно можно ограничить ретрансляцию информации о новых блоках (например, одна из цепочек может развиваться в рамках локальной сети). В этом случае возможно параллельное наращивание различных ветвей. В каждом из новых блоков могут встречаться как одинаковые транзакции, так и разные, вошедшие только в один из них. Когда ретрансляция блоков возобновляется, майнеры начинают считать главной цепочку с учётом уровня сложности хеша и длины цепочки. При равенстве сложности и длины предпочтение отдаётся той цепочке, конечный блок которой появился раньше. Транзакции, вошедшие только в отвергнутую ветку (в том числе по выплате вознаграждения), теряют статус подтверждённых. Если это транзакция по передаче биткойнов, то она будет поставлена в очередь и затем включена в очередной блок. Транзакции получения вознаграждения за создание отсечённых блоков не дублируются в другой ветке, то есть «лишние» биткойны, выплаченные за формирование отсечённых блоков, не получают дальнейших подтверждений и «утрачиваются»[6].

Таким образом, цепочка блоков содержит историю владения, с которой можно ознакомиться, например, на специализированных сайтах[8].

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

База публично хранит в незашифрованном виде информацию о всех транзакциях, подписываемых с помощью асимметричного шифрования. Для предотвращения многократной траты одной и той же суммы используются метки времени[10], реализованные путём разбиения БД на цепочку специальных блоков, каждый из которых, в числе прочего, содержит в себе хеш предыдущего блока и свой порядковый номер. Каждый новый блок осуществляет подтверждение транзакций, информацию о которых содержит и дополнительное подтверждение транзакций во всех предыдущих блоках цепочки. Изменять информацию в блоке, который уже находится в цепи, не практично, так как в таком случае пришлось бы редактировать информацию во всех последующих блоках. Благодаря этому успешная double-spending атака (повторная трата ранее израсходованных средств) на практике крайне маловероятна[11].

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

Для более наглядного объяснения механизма работы платёжной системы Сатоси Накамото ввёл понятие «цифровая монета»[10], определив его как цепочку цифровых подписей. В отличие от стандартизированных номиналов обычных монет, каждая «цифровая монета» имеет свой собственный номинал. Каждому биткойн-адресу может сопоставляться любое количество «цифровых монет». При помощи транзакций их можно делить и объединять, при этом сохраняется общая сумма их номиналов за вычетом комиссии.

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB[12].

Подтверждение транзакций

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

Таким образом, попадание транзакции в блок является подтверждением её достоверности вне зависимости от наличия других транзакций с теми же биткойнами. Каждый новый блок считается дополнительным «подтверждением» транзакций из предыдущих блоков. Если в цепочке 3 блока, то транзакции из последнего блока будут подтверждены 1 раз, а помещённые в первый блок будут иметь 3 подтверждения. Достаточно дождаться нескольких подтверждений, чтобы вероятность отмены транзакции стала очень низкой.

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков[14]. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны. Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений[15], но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

Если контролировать более 50 % суммарной вычислительной мощности сети, то существует теоретическая возможность при любом пороге подтверждений одни и те же биткойны передать два раза разным получателям[16] — одна из транзакций будет публичной и подтверждаться в общем порядке, а вторая не будет афишироваться, её подтверждения будут происходить блоками скрытой параллельной ветви. Лишь через некоторое время сеть получит сведения о второй транзакции, она станет подтверждённой, а первая утратит подтверждения и будет игнорироваться. В результате не произойдёт удвоения биткойнов[17], но изменится их текущий владелец, при этом первый получатель утратит биткойны без каких-либо компенсаций.

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s[18]. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети[19].

Двойное расходование биткойнов на практике никогда не было зафиксировано. На май 2015 года параллельные цепочки никогда не превышали 5 блоков[14].

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования блокчейна на уровне 2016 блоков в две недели. Таким образом, 1 блок должен создаваться примерно раз в десять минут. На практике, когда вычислительная мощность сети растёт — соответствующие временные промежутки короче, а когда снижается — длиннее[20]. Перерасчёт сложности с привязкой ко времени возможен благодаря наличию в заголовках блоков времени их создания. Оно записывается в Unix-формате по системным часам автора блока (если блок создается в пуле, то по системным часам сервера этого пула)[21].

В настоящее время к технологии блокчейн проявляют интерес представители самых различных сфер. При этом степень заинтересованности компаний в разных секторах экономики значительно варьируется. Финансовый сектор активно готовится к повсеместному внедрению блокчейна, тогда как производственные предприятия оставляют эту технологию без внимания[3].

Банковский сектор, инвестиции и биржи

В российском банковском секторе к технологии проявляют интерес такие компании как ВТБ[22] и Сбербанк[23].

О разработках и планах использования технологии блокчейн заявили платёжные системы VISA[24][25], Mastercard[26][27], Unionpay[28] и SWIFT[29][30].

Лондонское подразделение Дойче Банка Innovation Lab разрабатывает систему инвестиций на основе блокчейн-технологии, ускоряющую, упрощающую и удешевляющую процесс инвестирования за счёт исключения или сокращения роли посредников, адвокатов (поверенных), аудиторов и клиринговых агентов[31].

В июле 2017 года S7 Airlines и Альфа-банк запустили в эксплуатацию[32] блокчейн-платформу автоматизации торговых операций с агентами на базе Ethereum.

Земельный реестр

Швеция[33], Украина[34] и ОАЭ[35] планируют вести земельный реестр при помощи технологии блокчейн.

Правительство Индии борется с земельным мошенничеством при помощи блокчейн[36]. Андхра-Прадеш стал первым индийским штатом, где правительство предприняло шаги по внедрению блокчейн решений[37]. Для этого в городе Вишакхапатнам будет создан технологический парк при участии блокчейн компаний Apla, Phoenix и Oasis Grace[38].

В первом полугодии 2018 года будет проводиться эксперимент по использованию технологии блокчейн в целях мониторинга достоверности сведений Единого государственного реестра недвижимости (ЕГРН) на территории Москвы[39].

Удостоверение личности

В 2014 году основана компания Bitnation, предоставляющая услуги традиционного государства, такие как удостоверение личности, нотариат и ряд других[40].

В июне 2017 Accenture и Microsoft представили систему цифровых удостоверений личности на блокчейне[41].

В августе 2017 правительство Бразилии начало тестирование системы удостоверений личности на блокчейн[42].

Финляндия идентифицирует беженцев при помощи блокчейн-технологий[43].

В Эстонии работает блокчейн-система электронного гражданства[44].

Платёжное средство

Всемирная продовольственная программа использует технологию блокчейн для обеспечения беженцев продовольствием через существующие на местах торговые точки и сети вместо непосредственной раздачи продовольствия или выдачи беженцам наличных денег для покупки продуктов. Идея принадлежит Хуману Хададу (Houman Haddad). Для идентификации получателей продовольствия используется биометрия (сканирование радужной оболочки глаза). Экономия в 2018 году за счёт применения этой технологии только в Иордании составила 150 000 долларов в месяц.[31]

В июле 2017 года в Новгородской области планировалась работа по запуску пилотного проекта по внедрению технологии блокчейн в работу Росреестра. В проекте должны были участвовать Внешэкономбанк и Агентство по ипотечному жилищному кредитованию.[48]

По поручению президента Татарстана экспертами компании «Киви платформа» проведено исследование о применимости технологии блокчейн в государственном управлении, и предложено внедрение технологии блокчейн в системы межведомственного документооборота, нотариата, учёта дипломов, голосования, здравоохранения, земельного кадастра, цифровой личности, регистрационных действий (гражданских состояний). Решения находятся в стадии рассмотрения.[49]

Сбербанк и SWIFT в ходе Sibos 2017 в Торонто «договорились о координации шагов по оценке возможности применения технологии блокчейн в платформах межбанковских расчётов. … Платформа SWIFT использует возможности распределённого реестра, построенного на технологии блокчейн, для выверки информации по платежам в режиме реального времени.»[50]

18 октября 2017 года Внешэкономбанк и правительство Новгородской области на международном форуме «Открытые инновации» в Москве объявили о запуске в сентябре пилотного проекта по созданию системы контроля за обеспечением жителей области лекарственными препаратами. Губернатор области сообщил, что «использование технологии блокчейн при мониторинге всей цепочки поставок лекарственных препаратов позволит предотвратить злоупотребления и выявить нелегальный оборот дорогостоящих лекарств, а также сократить случаи смертности по причине приема некачественных лекарств». В декабре 2017 года планируется завершить тестирование рабочего прототипа проекта.[51]

19 октября 2017 года стало известно, что правительство Москвы готово предоставить Росреестру вычислительный сервер для внедрения технологии блокчейн при регистрации недвижимости.[52]

1 февраля 2018 года «Газпром нефти» и «Газпромнефть-Снабжения» сообщили об успешном протестировании технологии блокчейн и концепции интернета вещей в логистике. Успешная реализация пилотного проекта подтвердила возможность применения технологии блокчейн в управлении цепочками поставок[53][54].

ru-wiki.org