Как работает технология Blockchain? ⋆ FINAN$I$TEM
30 октября, 2020
Как работает технология Blockchain?

Как работает технология Blockchain?

Первый блокчейн был концептуализирован человеком (или группой лиц), известным как Сатоши Накамото в 2008 году.

Он был запущен в следующем году в январе 2009 года Накамото как основной компонент криптовалюты Биткойн, где он служит в качестве публичного регистра для всех транзакций в сети.

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

Я верю, что через сто лет блокчейны будут такими же распространенными и необходимыми, как электричество сегодня. Они будут фундаментальными частями экономики, с которыми почти каждый будет взаимодействовать ежедневно. Они будут настолько нормальными, что мы забудем, что они существуют.

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

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

Почему блокчейны имеют значение

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

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

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

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

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

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

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

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

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

Примечание: о том, почему блокчейны имеют значение, можно сказать гораздо больше. Чтобы не делать эту статью безумно длинной, я сосредоточу эту статью в основном на «как», а не на «почему». Если вы хотите узнать больше о том, почему технология блокчейна имеет значение, посмотрите, почему биткойны и криптовалюта имеют ценность «Деньги, блокчейны и социальная масштабируемость», «Письмо Джейми Даймону», «За пределами пузыря биткойнов и почему важна децентрализация».

Как работает технология Blockchain?

Вот короткая версия жаргона:

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

Теперь давайте распакуем кусочки там, чтобы к концу статьи это имело смысл для вас.

Примитивы

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

Строительные блоки блокчейнов — это сюрприз, сюрприз — криптографические примитивы.

Криптография — это изучение методов безопасного общения в присутствии третьих лиц (противников АКА).

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

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

Первый строительный блок, с которого мы начнем, — это хеш-функции.

Хэш-функции

Хеш-функция — это математическая функция, которая позволяет вам шифровать данные. [1]

Хеш-функция имеет три свойства:

  • Его вход может быть любого размера.

Например. Я мог бы использовать фразу «мне нравится мороженое» в качестве ввода или я мог бы использовать весь текст «Войны и мира», и оба сработали бы.

  • Используя ввод любого размера, он дает вывод фиксированного размера, определяемый тем, какой конкретный алгоритм хеширования используется. Для простоты мы будем использовать 256-битный вывод, поскольку именно это использует биткойн, первый блокчейн.

Независимо от того, ввел ли я фразу «Мне нравится мороженое» в качестве входных данных или я использовал весь текст «Войны и мира» в качестве входных данных, оба результата дадут одинаковый размер.

Используя алгоритм SHA 256, который использует биткойн, фраза «Мне нравится мороженое» (без кавычек) создает результат:

138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634

Вся «Война и мир» (все 587 287 слов), скопированные из проекта Гутенберга, дают результат:

57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096

Несмотря на то, что ввод в 146 821 раз длиннее, вы получаете тот же размер вывода. Довольно круто и, оказывается, полезно. Подробнее об этом позже.

  • Это эффективно вычислимо. Для любой заданной входной строки вы можете вычислить вывод за разумное время.

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

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

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

Криптографическая хеш-функция требует трех дополнительных свойств:

  • Сопротивление столкновению
  • Детерминистическое сокрытие
  • Головоломки дружелюбие

Криптографические хэш-функции
Сопротивление столкновению

Столкновение — это когда два разных входа дают одинаковый выход. Хотя размер вывода будет одинаковым, сам выход не будет идентичен другим выходам. «Я люблю мороженое», и весь текст «Войны и мира» дает одинаковый размер, но персонажи разные.

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

Также следует отметить, что два «соседних» входа не приводят к соседним выходам. Хеш «Войны и мира» совершенно отличается от хеша «Войны и мира» с 1 измененным символом.

Используя SHA256, «Война и мир» создает хэш:

57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096

Если я удаляю последний период, но оставляю все то же самое, он создает хеш:

E2E2E4FFD582E20474F0310C2132EAE5F2D766C6A253C1BC4AF57861095B30FA

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

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

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

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

Так что это возможно, но есть много других, более серьезных проблем, о которых мы должны сначала побеспокоиться.

Детерминистическое сокрытие

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

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

То есть сторонний наблюдатель не может знать, что 138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634 означает «Мне нравится мороженое».

Однако, если я знаю, что введено «Я люблю мороженое», тогда я легко могу проверить, знаете ли вы это, проверяя ваш хэш.

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

Головоломки дружелюбие

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

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

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

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

Наличие этого качества важно, потому что блокчейн представляет собой «очевидную подделку», защищенную от подделки запись транзакций.

Свойство дружелюбия к загадкам делает его очевидным. Если бы я захотел заменить запись типа «Мне нравится мороженое», для меня было бы невозможным сделать это, не имея возможности узнать об этом других участников.

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

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

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

Транзитивные хеш-функции в блокчейне

Предыдущий раздел о хеш-функциях, приведенный выше, на самом деле является большим введением в то, как хешировать один фрагмент информации, например слова в книге или пароль.

Что, если вы хотите хешировать коллекции данных, такие как пакет документов или последовательность транзакций?

Давайте начнем с линейной последовательности вещей, которые вы можете последовательно хэшировать. Вы начинаете с некоторой части данных, A, и вы хешируете ее, чтобы получить A #.

Теперь вы хотите «смешать» B. Таким образом, вы просто добавляете B (A # + B) и берете хэш всего этого. Теперь у вас есть новый хеш (B #), в котором есть некоторая информация как о A (из хеша A #, который вы использовали), так и о B.

Вам нужна хеш-функция, для которой изменение чего-либо в A или B приведет к другому окончательному хешу. Это транзитивная хеш-функция.

Блокчейн — это цепочка хэшей.

Когда люди говорят о блокчейнах, одно из часто встречающихся слов — «минимизировано доверие».

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

Это большое дело, потому что это легко увидеть, если кто-то подделывает данные.

Если бы у нас был блокчейн из 100 блоков, а десятый блок содержал хэш всей рукописи «Война и мир», и я изменил одну букву в рукописи, это изменило бы указатель хеша в этом блоке и во всех последующих блоках. [2]

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

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

Меркле деревья

Теперь, что если вы хотите хешировать не просто линейную последовательность, а последовательность наборов, например набор транзакций Биткойна в своей последовательности блоков. Новая вещь, в которой вы нуждаетесь, — это правило о том, как обходить каждый набор данных, снова сводя проблему к шифрованию последовательного ряда вещей (A #, B # и т. Д.)

Дерево Меркле именно это. Это позволяет вам группировать блоки данных и объединять их в структуру, которая выглядит как, ну, в общем, ветвь дерева с листьями.

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

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

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

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

Blockchains

Мы начали с рассмотрения хеш-функций.

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

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

Когда мы добавляем дерево Меркля в транзитивную криптографическую хеш-функцию, мы получаем блокчейн. Каждый блок содержит набор «мерклизированных» транзакций, и блоки объединены в цепочку.

Доказательство работы блокчейнов

Инновация Сатоши Накомото, анонимного создателя (-ей) Биткойна, заключалась в том, чтобы сделать еще одно правило. Когда вы добавляете новый набор транзакций (AKA блок) в существующую цепочку, вам приходится решать сложную и неиграбельную проблему.

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

Среди криптографов изобретение этого «блокчейна доказательства работы» стало самым большим прорывом Сатоши Накамото.

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

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

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

и

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

Блокчейн с наибольшим накопленным доказательством работы (то есть самым сложным и дорогим в создании) считается истинным блокчейном.

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

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

По состоянию на середину 2018 года для покупки компьютеров и электричества потребовалось бы миллиарды долларов, чтобы переписать блокчейн Биткойн с нуля.

Примечание: (Mining, Proof of Work, Proof of Stake и другие согласованные алгоритмы заслуживают совершенно другого поста, но я хотел бы хотя бы упомянуть их здесь в контексте блокчейнов.)

Цифровые подписи (криптография с секретным / открытым ключом AKA)

Цифровая подпись является последним примитивом блокчейнов. Успешная схема цифровой подписи работает более или менее так же, как рукописная подпись с двумя основными свойствами.

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

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

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

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

Ваш открытый ключ — это хэш вашего закрытого ключа. Ваш адрес, например, «Какой у вас биткойн-адрес, чтобы я мог вам заплатить?» — это хэш вашего открытого ключа.

Закрытый ключ == хэш ==> Открытый ключ == хэш ==> Адрес

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

Второе свойство — это ковкость. Ваша подпись связана с конкретным документом. Вы не хотите, чтобы кто-то мог «снять» вашу подпись с одного документа и приклеить его к нижней части другого (как, например, тот, кто говорит, что вы должны им деньги!).

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

Блокчейны как Книги …

Один из самых простых способов думать о блокчейнах — это страницы в книге. Книга представляет собой цепочку страниц с:

  • Данные — (АКА текст) на каждой странице.
  • Метаданные — Метаданные — это информация о себе. В верхней или нижней части каждой страницы есть некоторая информация о книге, такая как название книги, название главы и номер страницы.

Блокчейн представляет собой цепочку блоков с

  • Данные — содержимое блока
  • Метаданные — данные о блоке, включая ссылку на предыдущий блок и хэш данных, содержащихся в этом блоке.

Если вы вырвали все страницы из книги, вы могли бы вернуть их в порядок, где история имела смысл, используя номер страницы.

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

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

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

Объяснение блокчейна: эволюция технологии блокчейна

Теперь давайте возьмем эти примитивы и посмотрим, как их можно использовать для создания простой цепочки блоков.

Эти типы блокчейнов являются основой для криптовалют, таких как Биткойн и Эфириум. Поняв, как они работают, у вас будет основание для понимания всех различных проектов блокчейна и криптовалюты.

Goofy Coin

GoofyCoin — самый простой блокчейн, который мы можем себе представить.

Есть три правила GoofyCoin.

  • Гуфи может создавать новые монеты, когда захочет, и эти вновь созданные монеты принадлежат ему. Монета имеет уникальный идентификатор монеты, который Гуфи подписывает своим ключом, чтобы любой мог использовать открытый ключ Гуфи, чтобы подтвердить, что монета является действительной монетой GoofyCoin.
«Подписано pkGoofy» означает, что Гуфи подписал транзакцию (в данном случае создание новой монеты), используя его пару открытых / закрытых ключей.
  • Тот, кто владеет монетой, может передать ее кому-либо, используя криптографические операции. Если Гуфи хочет передать монету Алисе, он создает транзакцию с надписью «Заплатите эту монету Алисе». Поскольку монеты могут быть отправлены только с помощью криптографических операций, «this» — это хеш-указатель, который указывает на данную монету. Затем Гуфи подписывает эту транзакцию, используя свой секретный ключ, что делает ее действительной. Любой может проверить, является ли это действительной транзакцией, подтвердив подпись Гуфи.

Любой может проверить действительность монеты и того, кому она принадлежит, следуя цепочке хэш-указателей (блокчейн), до ее создания Гуфи, убедившись, что все хеши верны на своем пути. В приведенном выше примере любой может проверить, что Гуфи создал действительную монету и что он сделал действительный перевод Алисе. Тем не менее, есть проблема безопасности с GoofyCoin. Давайте посмотрим на пример. Со своей новой GoofyCoin Алиса может подписать сделку, заплатив Бобу за бутерброд.

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

Но что, если Алиса использует ту же самую монету, чтобы заплатить Чаку за молочный коктейль?

И Боб, и Чак теперь думают, что у них есть GoofyCoin. Это похоже на действительную транзакцию, потому что и Чак, и Боб видят, что Алиса подписала ее, и проследуют за ней на блокчейне, чтобы увидеть, как Гуфи создал ее как действительную монету.

Это называется атакой с двойным расходом. Алиса тратит одну и ту же монету дважды, а мы не хотим, чтобы деньги работали. Вы не можете отдать один и тот же счет в 10 долларов одному человеку за сэндвич, а другому — за молочный коктейль.

Атака с двойным расходом является одной из основных проблем, от которых защищает функциональная криптовалюта.

Чтобы решить проблему двойных расходов, нам нужно создать новую монету под названием ScroogeCoin.

ScroogeCoin

ScroogeCoin работает так же, как GoofyCoin, с несколькими различными настройками.

В отличие от Goofy Coin, Scrooge публикует блокчейн с историей всех транзакций.

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

Поскольку Скрудж просматривает каждую транзакцию, он может быть уверен, что никто не потратит дважды. Если Алиса использует монету для покупки сэндвича у Боба, Скрудж позаботится о том, чтобы она не могла использовать эту же монету для покупки молочного коктейля у Чака, отказавшись подтвердить эту транзакцию.

Поскольку все блоки соединены хэш-указателями в блокчейн, Алиса, Боб, Чак и все, кто использует ScroogeCoin, могут отслеживать, что Скрудж не собирается возвращаться, чтобы изменить какие-либо данные. Хотя они не могли помешать Скруджу сделать это, так как он контролирует блокчейн, они, по крайней мере, будут знать, что он это сделал.

Если бы год назад Алиса заплатила Бобу 1 ScroogeCoin за бутерброд, а Скрудж вернулся и изменил его, сказав, что он заплатил 10 ScroogeCoins, он поменяет хеш-указатели каждого последующего блока, что позволит легко узнать, что Скрудж подделал данные. Это свойство головоломки, на которое мы смотрели ранее.

Это позволяет верить в правильность данных, а не в том случае, если бы это были просто записи, хранящиеся в большой электронной таблице, контролируемой только Скруджем, где он мог вернуться и изменить одну из предыдущих записей, чтобы получить больше денег. [3]

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

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

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

Вы можете заменить «Скрудж» на «Ситибанк», и это мало чем отличается от того, как работает существующая банковская система. Мы доверяем банкам или другим финансовым посредникам не лгать о сделках. По большей части это работает довольно хорошо. Эти учреждения регулируются федеральными властями и подвергаются некоторому уровню конкуренции со стороны других фирм, что побуждает их быть честными и эффективными. Многие люди, особенно те, которые провели всю свою жизнь в развитых странах, не видят особой ценности в блокчейне, потому что существующая система работает довольно хорошо.

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

Однако бывают ситуации, когда это выходит из строя. Гиперинфляция, когда страна печатает новые деньги, обесценивая имеющуюся денежную массу, случалась много раз в истории, включая Веймарскую Германию в 1930-х годах, Аргентину и Зимбабве в начале 2000-х и Венесуэлу в 2010-х.

Во всех этих случаях это был эквивалент Скруджа, решившего сделать больше монет Скруджа для себя.

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

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

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

Как блокчейны достигают децентрализации: общедоступные (без разрешения AKA) и частные (разрешенные с помощью AKA)

Существует два основных пути, по которым блокчейн может перейти от централизованного (например, ScroogeCoin) к децентрализованному.

  • Приватные блокчейны (AKA разрешенные блокчейны)
  • Публичные блокчейны (AKA Permissionless blockchains)

Разница между публичным и частным блокчейном связана с тем, кому разрешено участвовать в сети.

Публичная сеть блокчейнов полностью открыта, и каждый может присоединиться и принять участие. Биткойн и Эфириум являются примерами публичных блокчейнов.

Частная сеть блокчейн требует приглашения. Это разрешенная сеть, которая накладывает ограничения на то, кому разрешено участвовать в сети и в каких транзакциях. Примерами частных блокчейнов являются MultiChain, Rord’s Corda, Hyperledger Fabric и Chain Core.

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

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

Разрешенный или частный блокчейн — это блокчейн, где процесс консенсуса (то есть работа Скруджа) контролируется заранее выбранным набором участников (например, отдельные лица, компании, члены консорциума). Например, у вас может быть 15 банков, каждый из которых имеет разрешение на запись в регистр, и каждый из них должен подписывать каждый блок, чтобы блок был действительным.

Это более децентрализовано, чем наличие одной стороны, ответственной за проверку всех транзакций, что имеет несколько преимуществ.

Преимущества и примеры частных блокчейнов

Основная причина, по которой компании могут использовать закрытую цепочку блоков, заключается в повышении прозрачности и доверия к своим процессам со своими партнерами в сети. Поскольку блокчейн функционирует как журнал несанкционированного доступа, каждая компания (например, группа из 15 банков) может доверять тому, что никто не вмешивался в уже существующие данные.

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

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

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

Алмазная индустрия имеет высокий уровень краж, потому что алмазы маленькие. Существует также много мошенничества из-за подделки документов (ложь о качестве или размере бриллиантов) и синтетических бриллиантов, используемых вместо настоящих бриллиантов.

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

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

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

Эта информация затем вставляется в блокчейн, где она становится очевидной. [4] Каждый раз, когда алмаз продается или передается другому игроку в цепочке поставок (например, от горнодобывающей компании до компании, которая его обрабатывает и полирует), эта передача также записывается в блокчейне.

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

В жизни бриллианта может быть более десятка различных заинтересованных сторон. Если вы хотите получить более подробную информацию, вы можете посмотреть, как Линн подробно расскажет о бизнесе Everledger.

Это также позволяет страховщикам знать, что они оплачивают законные требования.

Другим примером частного блокчейна является Construtivo, бразильская софтверная компания, которая в течение последних пятнадцати лет управляла проектными данными для крупных проектов строительства инфраструктуры. Они помогают убедиться, что все заинтересованные стороны имеют единое представление о статусе и ходе проекта.

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

Дело против частных блокчейнов

Одна из распространенных критических замечаний в отношении частных блокчейнов заключается в том, что они являются «просто общими базами данных».

То есть закрытые цепочки блоков — это все равно, что иметь общую электронную таблицу Документов Google, где вы никому больше не доверяете вернуться и изменить введенные данные.

Частные цепочки блоков утверждают, что защищают данные, контролируя, кто получает доступ к сети, но они по-прежнему уязвимы для того же типа сетевых взломов, которые мы видели с частными корпорациями, такими как Yahoo и Equifax.

Публичные блокчейны не имеют этой проблемы, потому что все общедоступно, то есть нет сети для взлома. Консенсус не зависит от возможности проникнуть в сеть; это зависит от того, кто тратит энергию реального мира таким образом, который невозможно подделать и который делает блокчейн намного более дорогим для «взлома» (как обсуждалось в разделе «Доказательство работы» выше).

Блокчейны, как открытые, так и частные, страдают от необходимости защиты пользователями своих закрытых ключей. И пользователи постоянно не могут сделать это правильно, поэтому людей взламывают — у многих людей украли их биткойны — даже если система этого не делает.

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

Преимущества и примеры публичных блокчейнов

Публичные цепочки блоков, вероятно, те, о которых вы слышали больше всего, и включают такие сети, как Биткойн и Эфириум.

Одно из самых больших преимуществ общедоступных блокчейнов связано с ценностью открытых (AKA private AKA разрешено) по сравнению с закрытыми (AKA public AKAинтессесс) сетей.

Самое простое сравнение — это закрытые сети и интернет в 90-х годах. Сначала было несколько компаний, работающих с закрытыми / разрешенными сетями, такими как Compuserve и Prodigy. Они связывали компьютеры с центральным сервером, с новостями и другой информацией, но не с широким Интернетом.

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

Интернет выиграл у закрытых систем, таких как Compuserve и Prodigy, потому что в Интернете в 100 раз больше разработчиков, чем в любой отдельной интрасети.

Сегодня в мире насчитывается около 20 миллионов хороших разработчиков, а в крупнейших компаниях (Facebook, Google и Amazon) работает не более нескольких десятков тысяч. Это означает, что 99% лучших разработчиков в мире всегда работают на кого-то другого.

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

Другое основное преимущество публичных блокчейнов (по крайней мере, в теории) состоит в том, что они более децентрализованы и, следовательно, более устойчивы к цензуре.

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

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

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

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

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

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

Это увеличило ценность сети Ethereum более чем в 100 раз. Такая волна инноваций была бы невозможна, если бы Ethereum был частной цепочкой блоков, для которой требовалось получить индивидуальное разрешение для каждого проекта.

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

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

Вывод

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

Затем мы исследовали примитивы блокчейна или криптографические хеш-функции, которые имеют три важных свойства:

  • Сопротивление столкновению — две одинаковые строки текста дают очень разные результаты. Если вы измените только один символ в рукописи «Война и мир», вы получите совершенно разные результаты.
  • Детерминированное сокрытие — сторонний наблюдатель не может знать, что 138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634 означает «Мне нравится мороженое».
  • Дружественность к головоломкам. Если кто-то хочет создать хеш, который дает тот же результат, что и «Я люблю мороженое», чрезвычайно трудно найти другое значение, которое точно соответствует этой цели.

Затем мы рассмотрели, как хеш-функции можно объединить в транзитивную хеш-функцию. Когда мы добавляем дерево Меркля в транзитивную криптографическую хеш-функцию, мы получаем блокчейн. Каждый блок содержит набор «мерклизированных» транзакций, и блоки объединены в цепочку.

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

Затем мы исследовали Goofycoin и Scroogecoin, чтобы увидеть, как технология блокчейна развивалась с течением времени для решения проблемы двойных расходов.

Наконец, мы рассмотрели, как публичные и частные блокчейны пытаются добиться децентрализации.

Блокчейны — это еще очень молодая технология. Они существуют только с 2009 года, и мы должны ожидать, что в ближайшие десятилетия мы увидим взрыв различных приложений и сетей блокчейна.

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

Теперь у вас есть понимание основ технологии блокчейна и того, как работают блокчейны.

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

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

Благодарности: Многие изображения и идеи, представленные в этой статье, взяты из курса Coursera Bitcoin и Cyrptocurrency Technologies, разработанного Арвиндом Нараянаном и предлагаемого бесплатно. Я бы порекомендовал. Я также прочитал и рекомендовал бы сопроводительный учебник. Все изображения также относятся к ним, если не указано иное. Спасибо Гэри Бэйзину, Друву Бансалу, Джо Келли и Джувони Бекфорду за их обширную обратную связь о ранних проектах.

Сноски

[1] Еще один способ сказать, что это просто способ отображения одного текста A на другой B таким образом, что затрудняет повторное получение A, если все, что у вас есть, это B, а также где очень мало разных текстов C , D, E и т. Д. Будут генерировать одинаковые выходные данные при прохождении через одну и ту же функцию (минимальная тенденция создавать «коллизии»)

[2] (поскольку хеш устойчив к столкновениям — два разных входа эффективно никогда не выдают один и тот же вывод)

[3] Для простоты объяснения каждый блок в ScroogeCoin имеет только одну транзакцию, но на практике вы бы поместили несколько транзакций в один блок, а Scrooge просто отклонил бы любые попытки двойного расходования внутри блока.

[4] Когда вы имеете дело с отслеживанием реальных событий или предметов, в отличие от цифровых, вы обязательно заново вводите проблему скруджа. В случае с Everledger мы зависим от некоторой сущности, подобной Скруджу, для ввода данных на каждом этапе пути (известная как проблема оракула — вам нужно доверять какому-то «оракулу», чтобы получить данные «по цепочке».) Как только эти данные попадают в цепочку, они становятся очевидными.)

Тейлор Пирсон является автором книги «Конец рабочих мест» и пишет о предпринимательстве, истории, сложности и технологиях блокчейна на TaylorPearson.me. Подпишитесь, чтобы получать его популярную рассылку и обновления.

Добавить комментарий