Тал Кол, создатель Orbs.com, широкомасштабной инфраструктуры публичного блокчейна для пользовательских приложений, на примере сериала Lost («Остаться в живых») рассказывает о том, как можно в условиях необитаемого острова наладить торговлю с помощью технологии блокчейн. Предлагаем вам перевод второй статьи из этого цикла, оригинал которой опубликован на сайте Hacker Noon.
Если вам выпадет судьба оказаться на необитаемом острове, знание о том, как наладить работу децентрализованного консенсуса (иначе говоря, вручную управлять очень простым блокчейном) может принести немалую пользу. Всё, что для этого нужно, — энное число других обитателей острова, данная статья и несколько листков бумаги.
Если вы не уверены, что этот навык полезен для выживания, непременно прочтите первую статью о том, как можно с помощью блокчейна значительно улучшить жизнь на острове.
Давайте вернёмся к изначальной истории и пункт за пунктом разберём процесс, в котором принимают участие наши бесстрашные герои, чей самолёт потерпел крушение где-то в южной части Тихого океана: Хьюго, Сойер, Кейт и Джек.
Краткое содержание первой статьи: обитатели острова пытаются наладить обращение революционно новой монеты IslandCoin, призванной покончить с ущербной бартерной островной экономикой. Члены группы соглашаются, что будет справедливо, если первоначальный запас, принадлежащий каждому, составит 100 монет. Поскольку им недоступен металл для чеканки физических денег, они вынуждены обходиться листками бумаги. Из-за недостатка взаимного доверия члены группы не могут договориться о том, кто станет вести бухгалтерский учёт. Единственное, что остаётся, — делать это совместно.
Мы начнём с модели, которая будет, возможно, самым примитивным внедрением блокчейна в рамках нашего островного сценария использования. В будущих статьях мы изучим другие модели внедрения и привяжем их к концептам доказательства выполнения работы (PoW) и доказательства доли владения (PoS), что поможет нам понять их преимущества и недостатки. Однако начнём мы с самого простого.
Чего мы пытаемся достичь? На самом деле задача очень проста: вести учёт остатка денежных средств на листке бумаги. Этот табель будет показывать, сколько у каждого из наших героев монет. Секрет в том, что у нас нет одного листка бумаги, играющего роль единственного источника истины: мы намерены сохранять объективность, давая каждому участнику возможность поддерживать собственную версию, — в этом и состоит децентрализация. Естественно, мы надеемся, что все четыре листка бумаги в конечном счёте будут показывать один результат — это консенсус.
Как будет выглядеть листок бумаги?
Это первый листок с данными, относительно которых мы приходим к согласию, поэтому он маркирован как день 1. Откуда взялись эти цифры? Мы уже согласились, что будет справедливо, если каждый член группы получит по 100 монет. Кроме того, чтобы составить списки, нам понадобится помощь одного из членов группы. Не имеет значения, кто это будет, поэтому мы назначаем на эту роль Хьюго. С помощью замечательного ксерокса, о существовании которого на острове я забыл упомянуть, он распечатает списки и обеспечит каждого копией.
По мере изменения баланса в конце каждого нового дня мы будем создавать обновлённую версию документа. Однако не всегда этим будет заниматься Хьюго, ведь мы хотим создать максимально честную и прозрачную систему.
Другое важное условие состоит в том, что из-за недостатка взаимного доверия каждый член группы должен в индивидуальном порядке подтверждать обновление статуса. Этого легко можно достичь, позволив каждому обитателю острова подписывать каждую бумагу, но только в том случае, если все согласны с тем, что в ней написано.
Сколько человек должны подписать бумагу, чтобы она имела силу действительного документа? Нам необходим консенсус, поэтому речь идёт о большинстве. Поскольку всего у нас четыре человека, большинство — это как минимум трое. Бумагу (выше) подписали все четверо, поэтому она явно имеет законную силу. Почему мы не требуем поставить подписи от всех участников? Потому что это может поставить под угрозу весь процесс. Если Сойер на несколько дней отлучится на рыбалку, во время его отсутствия члены группы не смогут обновлять баланс, что предоставит одному человеку чрезмерную власть. Зачем нам вообще нужно большинство?
Почему недостаточно двух из четырёх подписей? Если бы их было достаточно, то вышло бы так, что два человека (скажем, Хьюго и Сойер) подписывают одну версию баланса, а другие (Кейт и Джек) — иную. Невозможно две противоречащие друг другу версии реальности считать окончательными.
Утром второго дня Кейт желает купить помидор. Хьюго продаёт помидоры по две монеты за штуку. Кейт хочет перевести Хьюго две монеты. Она берёт новый листок бумаги и записывает на нём трансфер:
Это первое действие Кейт, и она обозначает его таковым. Кроме того, Кейт ставит подпись, которая служит гарантией того, что никто не сумеет подделать просьбу о трансфере от её имени.
Второй день близок к завершению, и члены группы хотят опубликовать обновлённую версию документа с данными по остатку на счетах. Хьюго опубликовал документ за первый день и собрал подписи всех участников. Есть смысл делать это поочерёдно. Члены группы соглашаются установить простой порядок ротации: Хьюго, Сойер, Кейт, Джек, Хьюго, Сойер и так далее. Это значит, что за публикацию отчёта за второй день отвечает Сойер. Документ, который он публикует, отражает трансфер Кейт:
Однако документ не носит окончательного характера, поскольку его подписал только Сойер. Ему нужно собрать больше подписей. Сойер обращается ко всем остальным участникам с просьбой проверить документ и подписать его. Верифицировать его очень легко. Прежде всего верифицирующий должен обратиться к собственной коллекции бумаг и найти документ, демонстрирующий состояние счёта в предыдущий день (день 1 в этом случае). Затем верифицирующий должен перейти к новому списку трансферов. В нашем случае мы имеем только один трансфер, осуществляемый Кейт. Его очень легко проверить: мы можем гарантировать, что документ действительно подписала Кейт, у которой достаточно монет на счету, чтобы передать требуемое количество Хьюго.
Когда все обитатели острова завершают процесс верификации и подписывают бумагу, у Сойера наконец-то есть окончательный вариант документа за второй день, который теперь можно опубликовать для всеобщего обозрения. Каждый делает копию, и все, довольные, расходятся спать.
Наступает день 3. Система работает отлично, и всех радует возможность потратить монеты. Хьюго хочет купить у Сойера дрова за 10 монет. Сойер желает купить у Джека несколько таблеток за 25 монет, а Джеку хочется помидоров, и он готов отдать Хьюго две монеты за одну штуку. Каждый из них на отдельном листке бумаги записывает свой трансфер:
Приближается вечер, и баланс сегодняшнего дня предстоит опубликовать Кейт. Чтобы убедиться, что Кейт включает эти трансферы в список заявок, каждый должен передать ей копию просьбы. Есть смысл раздать копии всем, поскольку человек, желающий осуществить трансфер, не обязательно помнит, чья сегодня очередь публиковать очередное обновление.
Мне нравится тема: «Примитивные технологии и блокчейн»