Михайлов Геннадий

Человек и Гражданин


Previous Entry Share Next Entry

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

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



Блокчейн (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.

Предыдущие посты про блокчейн и криптовалюту:
Как бесплатно получить биткоины. Биткоин-краны
Жетоны в ЖЖ, это первые токены в интернете
и другие по тегу криптовалюта
сейчас в 19 выложу еще пост - Как создать Биткоин-кошелек.


Posts from This Journal by “криптовалюта” Tag


promo gmichailov september 23, 2014 11:03 8552
Buy for 100 tokens
В очередной раз провожу френдомарафон. Это будет последний или крайний. У меня все хорошие и ЖЖивые. И я заодно познакомлюсь с Вами… Нас уже 10150. Пока еще у меня есть место добавить новых и познакомиться с Вами. В комментариях к этому посту можете представить себя, рассказать о себе, о чем…

ingaret October 30th, 16:05
Чтобы во всём этом разобраться, надо быть программистом.

gmichailov October 30th, 16:15
это самое простое разъяснение

lukilukii October 30th, 16:09
Там о безопасности стоит подумать.

gmichailov October 30th, 16:14
так как раз с безопасностью там нет проблем

ilyavaliev October 30th, 16:11
Пора тебе свою крипту запускать)

rus_sumer October 30th, 16:12
Твои деньги - это только то, что ты можешь зажать в кулак.
Есть кто-то одним нажатием кнопки может отнять у тебя деньги - значит они не твои.

gmichailov October 30th, 16:15
ты ошибаешься. твоими деньгами руководит ЦБ, захочет и будет пыль из твоих денег

(no subject) (Anonymous) Expand
xslepojx October 30th, 16:15
Блокчейн войдет в историю.

gmichailov October 30th, 16:16
да он давно существует

seregalab October 30th, 16:15
Блокчейн как говориться блокчейном, но лечить - учить - гайки крутить и строить дороги тоже надо.

gmichailov October 30th, 16:17
применений у него очень много и многие еще работы лишаться

ledy_lisichka October 30th, 16:17
целый ликбез считай.
актуальный

gmichailov October 30th, 16:19
ну еще много будет постов) мне самому это интересно

knebeckaize October 30th, 16:18
Почти ничего не поняла, но хоть теперь знаю, что это слово обозначает )

gmichailov October 30th, 16:19
))

fotostep October 30th, 16:19
Спасибо, на первый взгляд все понятно.

gmichailov October 30th, 16:19
ну вот на этом простом принципе и построена вся технология

katyaleontevska October 30th, 16:30
Если это самые простые, то какие же сложные???

gmichailov October 30th, 16:31
)) дальше сложнее, но я пытаюсь находить простые статьи и объяснения

tanjacha1 October 30th, 16:32
Мне этого не понять...

gmichailov October 30th, 16:33
да ладно, просто же все

veraprok October 30th, 16:58
А можно вопрос оффтоп? Пыталась зарегистрироваться на Голосе. Там зачем-то требуют, чтобы я со своего телефона им прислала какие-то четыре цифры... это что за странности?! И не грозит ли это мне какой-нить пакостью с их стороны?

gmichailov October 30th, 17:02
нет ни чем не грозит. Это чтобы ботов не было, защита такая, хотели упростить, но видно оставили пока

bestysst October 30th, 17:36
знаем мы этот блокчейн


gmichailov October 30th, 17:39
ну да и помним футболку купленную Грефом за 50000 баксов

foxinnn October 30th, 18:02
Не пробовала с этим разбираться)

goy

bloger_d October 30th, 18:05


hex: 3716d24d85536b7e1b62902a8bd20d41cea5372843b3fbfa602a50735539f5ae

HEX: 3716D24D85536B7E1B62902A8BD20D41CEA5372843B3FBFA602A50735539F5AE

h:e:x: 37:16:d2:4d:85:53:6b:7e:1b:62:90:2a:8b:d2:0d:41:ce:a5:37:28:43:b3:fb:fa:60:2a:50:73:55:39:f5:ae

base64: NxbSTYVTa34bYpAqi9INQc6lNyhDs/v6YCpQc1U59a4=


?

Log in

No account? Create an account