Май 28, 2018
89 Просмотров
2 0

Как запустить Blockchain на пустынном острове с помощью ручки и бумаги? Часть 2.

Автор:

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

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

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

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

Итак начнем.

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

Итак, как будет выглядеть этот лист бумаги?

Откуда взялись эти балансы? Ранее мы согласились,  что каждый из героев получает по 100 монет. Нам также понадобится один из оставшихся в живых, чтобы написать эту статью. На самом деле не имеет значения, кто, так что давайте возьмем Хьюго. Он будет опубликовывать эту статью всем и убедиться, что каждый из них сохранит копию (на острове есть удивительная копировальная машина, о которой я забыл).

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

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

Сколько людей должно подписать документ, чтобы он считался окончательным и утвержденным? Нам нужно достичь консенсуса, поэтому большинство будет делать. Поскольку у нас всего 4 человека, большинство из них.это по крайней мере 3 из 4. Вышеупомянутая бумага была подписана всеми четырьмя, так что это определенно окончательно. Почему мы не хотим требовать всех четырех подписей на всех бумагах? Потому что это позволит одному человеку подвергнуть опасности весь процесс. Если Сойер отправляется на рыбалку на несколько дней, банда не может обновлять весы, пока он не вернется. Почему нам  нужно большинство? Почему недостаточно 2 из 4 подписей? Потому что, если нам нужно только 2 из 4, мы можем в итоге с двумя людьми (например, Хьюго и Сойер) подписать одну версию балансов, а остальные 2 человека (Кейт и Джек) подписывают другую версию, которая не соответствует. Мы не можем иметь две противоречивые версии реальности, которые считаются окончательными.

Утром второго дня Кейт хочет купить помидор. Хьюго продает помидоры по 2 монеты за каждый. Она хочет передать 2 монеты Хьюго. Кейт берет новый лист бумаги и записывает перевод на него:

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

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

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

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

День 3. Система работает хорошо, и все рады провести свои монеты. Хьюго хочет купить дрова у Сойера за 10 монет. Сойер хочет получить таблетки от Джека за 25 монет, а Джек жаждет помидора и хочет дать 2 монеты Хьюго . Каждый из них создает кусок бумаги, подробно описывающий их передачу:

 

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

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

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

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

День 4, и никто не знает, где Джек. Он ловил рыбу накануне, попал в шторм и не вернулся в лагерь. Это может быть проблематично, потому что сегодня очередь Джека опубликовать обновление баланса.

Сегодня Кейт хочет сделать пару трансферов, она пишет их на листе бумаги и дает копию всем:

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

Это 5-й день, и Хьюго является ответственным за публикацию ежедневного обновления. Уже несколько дней шел дождь, и Хьюго захотел, чтобы спать было теплее. Он просит Сойера построить ему небольшую деревянную хижину. Сойер хочет 200 монет для работы. Это немного проблема, потому что у Хьюго только 98 монет. У Хьюго сумасшедшая идея, хотя он сегодня публикует баланс, так почему бы не добавить сумасшедшую передачу этой суммы  Сойеру?

Других переводов сегодня нет. У Хьюго есть передачи Кейт со вчерашнего дня. Он добавляет все это вместе со своей новой сумасшедшей передачей:

Хьюго подписывает это обновление, хотя его передача на самом деле не имеет смысла. Чтобы сделать это обновление статуса окончательным, ему нужно собрать еще 2 подписи. Когда он подходит к Сойеру и Кейт, они замечают, что на предыдущем финальном балансе (с 3-го дня) у Хьюго было 92 монеты. Как он может отправить 200  Сойеру? Они отказываются подписывать этот баланс, пока он не зафиксирует эту ошибку и не удалит эту недействительную передачу. Он неохотно соглашается и публикует новый баланс, который является правильным. Они в конце концов подписывают его.

Это обновление баланса является окончательным, поскольку оно имеет 3 подписи.

Это утро дня 6. Джек наконец возвращается в лагерь. Он попал вшторм . Он не участвовал в обсуждениях за последние два дня и пропустил объявления о новых передачах и публикациях новых обновлений баланса. Он действительно не знает, сколько монет у него есть. Он находит первого выжившего, которого он видит, и просит получить последние обновления, которые он пропустил. Ему дается окончательное обновление на 5-й день и утвержденное обновление Кейт, опубликованное на 3-й день.

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

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

 

Почему это считается блочной цепью? Во-первых, каждый лист бумаги, опубликованный ежедневно, представляет собой блок . Каждый блок пронумерован и указывает на предыдущий, образуя цепочку блоков. Чтобы проверить текущее состояние остатков, любой наблюдатель должен начинать с начала цепи (день 1 – блок генезиса ) и проверять каждый из блоков один за другим подряд. Балансы строятся постепенно.

Является ли это идеальной реализацией blockchain? Возможно нет. Его можно улучшить во многих отношениях. Например, он поддерживает только этих 4 жителей. Что произойдет, если другой оставшийся в живых потерпит крах на острове?

Продолжение следует.

 

 

 

Категории:
Новости

Читай нас в Telegram - BTCPOINT

Написать комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Авторизация
*
*
Регистрация
*
*
*
Генерация пароля
КРИПТОВАЛЮТА.РФ