О Блокчейне для "чайников"

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

Блокчейн (blockchain, цепочка блоков) разрабатывался разными компаниями в течение как минимум 20 лет. По сути это база данных в виде непрерывной системы, в которой хранятся сведения обо всех совершенных в ней операциях. Система работает по принципу пиринговой сети (это означает взаимопроникновение): без выделенных серверов; копии истории операций доступны всем пользователям (пирам), которым открыт доступ.

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

А вот сам текст и объяснение) дальше слово автору
Я покажу, что на самом деле всё там очень просто, и доступно даже пятикласснику. Не верите? Просто читайте дальше. Но для этого сначала нужно пояснить, что такое хэш. Без этого никак, увы.

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

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

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

А теперь, чтобы стало ещё понятнее, продемонстрирую на практике. Вбейте в гугле «sha256 онлайн» (именно эту функцию мы будем использовать во всех примерах). Поиграйте с ней, вбивая разные данные.

Например, хэш от слова TJournal:

7db3a63e07638d7c795ee95210497048a7cc976f98f11ca8d5e2fc10b4dc374f

А вот от tjournal:

c3ea30a9f5a650ee53db452cf17209412abbcee72b264ebfb1c7fa49b57fd8c9

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

Сделай сам
Всё. Этих знаний уже достаточно чтобы создать простой блокчейн. Удивительно, правда? Блокчейн — цепочка криптографически связанных блоков.

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

Открываем ваш любимый блокнот и создаём первый файл:
Маша → Ваня :: 10 рублей
Ваня → Лиза :: 20 рублей
Маша → Саша :: 50 рублей

Хэш тут не для чего считать, поэтому всё. Сохраняем его с именем 1.txt в специальной папочке (FYI: в блокчейне криптовалют такой блок называется Genesis block, и да, там его тоже прописывают вручную). Сохранили? Идём на один из прежде нагугленных сайтов (можно догадаться, что настоящие блокчейны ни на какие сайты не ходят, а вызывают заранее запрограмированные в них функции, но для нашего простейшего случая сделаем всё вручную), и считаем хэш для этого файла.

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

Теперь создайте следующий файл и назовите его 2.txt. Запишите в него несколько новых «транзакций»:
Таня → Катя :: 10 рублей
Макс → Витя :: 10 рублей

И последней строчкой добавьте результат хэширования предыдущего файла. Вот так:
Таня → Катя :: 10 рублей
Макс → Витя :: 10 рублей
7f17d67621afd2a661bc0a552735745b8a2c424cff28e523b94f1d1b4615f5

Готово? Сохраняем, и считаем хэш уже от этого, нового файла ЦЕЛИКОМ. У меня получилось db45d94b529fbf8c5fb1decd89f5d0ff62bbca86a02bc4f943eac42ff33dd486.

По аналогии создаём третий файл:
Митя -> Тёма :: 90 рублей
Жора -> Вася :: 10 рублей
Анна -> Люда :: 60 рублей
db45d94b529fbf8c5fb1decd89f5d0ff62bbca86a02bc4f943eac42ff33dd486

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

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

И снова к нашим баранам. Можете создать все файлы самостоятельно, а можете скачать мой архив из 10 файлов и контрольного, содержащего только хэш последнего «блока» и ничего больше.

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

Я сделал наипримитивнейший скриптик с пояснениями, можете посмотреть его по ссылке, а без пояснений он включён в вышеуказанных архив. Написан он на самом популярном в терминах проникновения языке в мире — баше, а значит у пользователей GNU/Linux, MacOS, Android (окружение Termux) — не возникнет проблем с запуском.

Пользователям Windows можно посоветовать установить cygwin или Linux subsystem for windows, появившийся в Windows 10.

Можно заметить, что в коде нет ничего, проверяющего напрямую содержимое файлов
Итак, после запуска скрипта должны получить что-то вроде:
10 blocks
chain is flawless
final hash = 23cbc83ca6a2cf2e75ae5ca76fb087ef11ff36fb0065c301557c8152a5bc530f

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

chain is corrupted

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

К криптовалютам активно присматриваются финансовые компании, хотя они и считаются консервативными институтами: среди желающих попробовать блокчейн финансовые гиганты Goldman Sachs, JPMorgan Chase и Bank of America. В России пионером применения блокчейна стал Сбербанк, который в 2016 году запустил пилотный проект по работе с доверенностями населения с помощью этой технологии.

Сегодня большинство технологических гигантов используют блокчейн в разных отраслях, от финансового документооборота до торговли нефтепродуктами. Так, в апреле 2017 года Natixis, IBM и Trafigura представили решение для нефтяной отрасли на основе блокчейна, основная задача которого — обеспечить прозрачность взаимодействия контрагентов.

Летом российский Альфа-банк заявил о внедрении блокчейн-платформы совместно с компанией S7 Airlines. Она используется для торговых операций между авиакомпанией и одним из билетных агентств. Среди преимуществ компании указывают снижение времени расчетов и подтверждения сделки обеими сторонами на порядки: сокращаются документооборот и трудозатраты персонала. «Весь цикл операций, включая формирование заявки на платеж, проверку средств на счете, их списание и обновление статуса, выполняется системой автоматически. В результате время проведения транзакции снизилось с 14 дней до 23 секунд», — говорят в S7.

голосgolosблокчейн
25%
14
67
2.012 GOLOS
0
В избранное
Геннадий Михайлов
На Golos с 2017 M07
67
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (2)
Сортировать по:
Сначала старые