Всё ещё не разобрались, как работает Blockchain? А зря, несмотря на застой в индустрии, перспективы есть. Объясняем на покемонах.
Представьте, что вы вернулись в детство и сейчас сидите в школьном коридоре. У вас с другом есть карточки с покемонами, и вы ими меняетесь. Просто две карты на две другие карты − ничего сложного. Их стоимость вы сочли эквивалентной, ни у одного из участников обмена нет претензий.
Важно, что учитель вас не контролировал − вы дети ответственные, следить за тем, чтобы один не обманул другого, необязательно. Тем более, что все остальные узнали о сделке уже через несколько минут.
В этом процессе не замешаны деньги, но давайте представим, что прошло несколько лет и меняться просто так стало неинтересно. Чтобы получить карточку с покемоном, теперь нужно платить.
Допустим, самая ценная карта была у вашего друга. Точно таких же больше не существует, а вам очень хочется её получить, и вы решаетесь купить её.
Но тут появляются сомнения: а вдруг товарищ сделал копию этой карточки, или даже тысячу, а вдруг кто-то уже купил такую карточку, думая, что она уникальна? Причём нет ни единой возможности проверить, было оно или не было − покупать карту, которая может не стоить ничего, довольно рискованно.
Что такое двойное расходование
Подобную ситуацию называют double spending или проблемой двойного расходования: когда вы обмениваетесь цифровыми товарами, откуда вы знаете, что кто-то не отправил один и тот же актив нескольким людям одновременно? Как можно убедиться, что друг не сделал цифровую копию карты с покемоном, которую вы хотите купить?
В теории можно было бы использовать книгу учета и записывать там информацию о том, что вообще происходило с картой. Контролировать процесс должны Nintendo, как наименее заинтересованное лицо.
Однако у этого подхода есть проблема. Теперь, когда в торговле участвует посредник, то всё придётся делать через него. Нет больше двух друзей, потому что между ними появился третий. А кто этот третий − неизвестно. А вдруг сотрудник Nintendo проник в базу и решил скопировать карту для своего брата?
И получается, что проблема двойного расходования остаётся актуальной − мы всё ещё не можем быть уверены, что все действуют по правилам.
Но вот одна бредовая, на первый взгляд, идея: а что если мы отправим копию книги учёта каждому, кто меняется карточками с покемонами, вместо того, чтобы доверять Nintendo? В мире существуют тысячи покефанов, если у всех будет копия книги, продать подделку уже не получится. Книги сказали бы, что существует только одна из этих карт, если кто-то продублирует ее в тайне, чтобы оставить себе, то его книга будет отличаться от других. Тогда провести операцию не получится − все знают, что продавец обманывает.
Как работают узлы
Вы можете спросить: с чего это все игроки в покемонов будут сверять свои книги? На самом деле, на практике это выглядит посложнее. Для примера рассмотрим ситуацию, в которой участвует 1000 компьютеров-фанатов игры в покемонов − назовём их узлами.
На всех этих компьютерах есть копия общей книги, все они работают под управлением бесплатного программного обеспечения, которое позволяет им общаться с другими компьютерами в сети. Их задача состоит в том, чтобы самостоятельно проверять каждую сделку, в которой замешаны карточки с покемонами.
После совершения сделки, она будет перемещена в раздел неподтверждённых транзакций, затем группа узлов займётся проверкой всех неподтверждённых транзакций за последние 10 минут.
Эти узлы называют «майнерами»: они стремятся первыми проверить эту группу транзакций, называемую «блоком», чтобы получить набор карточек за свою работу.
Блок − это набор недавних транзакций, которые были сгруппированы для проверки. История всех сделок с покемонами хранится в виде цепочки этих блоков, которая составляет общую книгу учёта.
Затем майнеры соревнуются друг с другом, чтобы первыми проверить новый блок. Они делают это, затрачивая огромные вычислительные ресурсы, пытаясь разгадать криптографические загадки.
Звучит немного странно, конечно. Сеть вынуждает майнеров сильно напрягаться для проверки каждого блока, чтобы не допустить мошенничества − вы вряд ли будете долго возиться, когда знаете, что на кону набор новых карточек.
Как только один майнер нашел решение криптографической загадки, которая проверяет блок, он подписывает блок цифровой подписью, чтобы доказать факт проверки и объявляет об этом сети узлов.
Затем, он рассылает проверенный блок всем остальным, чтобы пополнить список блоков на проверку новыми транзакциями и забирает приз за работу.
Однако ни один из узлов в сети на самом деле не доверяет друг другу. При каждой передаче нового блока, узлы проверяют все транзакции в блоке, на случай, если произошло двойное расходование. Так сеть достигает консенсуса − примерно так работает Blockchain.
Что происходит с транзакцией после оплаты
Но давайте представим, что друг отправил вам одну из его карточек в обмен на что-то в реальном мире − скажем, ваш обед. Что произойдет, если он совершит эту сделку с вами, заберёт обед и тут же попытается отправить эту карточку ещё кому-нибудь?
Допустим, отправка А была вам, а отправка Б была стороннему лицу − происходит запрещённое двойное расходование.
Проблема в том, что сеть не знает, какая из транзакций, A или B, является честной. Обе записи отправляются в пул неподтверждённых транзакций, затем распределяются по блокам. Блокчейн проверяет транзакции в хронологическом порядке − то есть, чем раньше произошла транзакция в цепочке, тем выше вероятность, что она правильная.
Невозможно, чтобы обе этих операции были подтверждены, одна будет отклонена. Если вы ждёте больше 10 минут (иногда дольше), проверьте, что транзакция А действительно принята, у вас есть карта с покемонами, тогда можно безопасно отдать другу обед.
Что будет, если друг не захочет играть по таким правилам? Что мешает ему позже зайти в книгу и удалить первую транзакцию из списка, чтобы он мог снова обменять карту и получить больше обедов?
Поскольку эта сделка хранится в блоке информации, блоки связаны линейно во времени, изменить содержимое блока уже нельзя. Скажем, со времени первой сделки было добавлено девять новых блоков, друг смог найти десятый блок, в котором записана сделка и удалить его.
Помните ту цифровую подпись, которая ставится на каждом блоке? Она генерируется на основе информации в блоке, изменение данных (то есть удаление сделки) автоматически меняет подпись.
И что еще хуже для него, каждая подпись в каждом блоке тоже изменится, ему придётся исправить подпись и на других девяти блоках в цепочке.
Эти изменения происходят только в одной книге, а все остальные компьютеры смотрят в свои записи и видят, что вы обманываете. Чтобы обмануть и их, нужно внести изменения на 50% компьютерах в сети − здесь работает Blockchain-принцип − большинство решает.
Более того, цифровые подписи серьёзно нагружают ваш компьютер, а значит, чтобы внести изменения в несколько блоков во всей сети, потребуются гигантские вычислительные и финансовые ресурсы.
Совершенно очевидно, что обед не стоит того.
Заключение
Вот так мы создали открытую, децентрализованную, необратимую, защищенную от взлома цифровую сеть для торговли ценными активами.
Это упрощенная версия того, как работает Blockchain и Bitcoin, но она наглядно демонстрирует их преимущества. Теперь вы понимаете эти технологии на 95% лучше, чем остальные люди на планете. Круто, правда?
Понравилась статья о том, как работает Blockchain? Возможно, вас заинтересует следующее:
- От новичка до профи в блокчейн-технологиях за 2 месяца
- Как понять, что пришло время строить свой blockchain?
- Ресурсы для изучения блокчейн-разработки с нуля
Источник: Объясняем на карточках − как работает Blockchain on Medium
Комментарии