Криптовалюта для чайников: Биткойн и не только
Опубликовано: 2022-03-11Биткойн вызвал много шума в Интернете. Его высмеивали, на него нападали, и в конце концов он был принят и стал частью нашей жизни. Однако Биткойн не одинок. На данный момент существует более 700 реализаций AltCoin, использующих схожие принципы и различные алгоритмы криптовалюты.
Итак, что вам нужно, чтобы создать что-то вроде Биткойна?
Не пытаясь понять вашу личную мотивацию создания децентрализованной анонимной системы обмена деньгами/информацией (но все же надеясь, что она находится в рамках морально-правовой деятельности), давайте сначала разберем основные требования к нашей новой платежной системе:
- Все транзакции должны совершаться через Интернет
- Мы не хотим иметь центральный орган, который будет обрабатывать транзакции.
- Пользователи должны быть анонимными и идентифицироваться только по их виртуальной личности.
- Один пользователь может иметь столько виртуальных удостоверений, сколько ему или ей нравится.
- Предложение стоимости (новые виртуальные счета) должно добавляться контролируемым образом
Децентрализованный обмен информацией через Интернет
Выполнение первых двух требований из нашего списка, удаление центрального органа для обмена информацией через Интернет, уже возможно. Что вам нужно, так это одноранговая (P2P) сеть.
Обмен информацией в сетях P2P аналогичен обмену информацией между друзьями и семьей. Если вы поделитесь информацией хотя бы с одним членом сети, в конечном итоге эта информация дойдет до каждого другого члена сети. Разница лишь в том, что в цифровых сетях эта информация никак не будет изменена.
Вы, наверное, слышали о BitTorrent, одной из самых популярных систем обмена файлами P2P (доставки контента). Еще одним популярным приложением для обмена P2P является Skype, а также другие системы чата.
Суть в том, что вы можете внедрить или использовать один из существующих протоколов P2P с открытым исходным кодом для поддержки вашей новой криптовалюты, которую мы назовем Topcoin .
Алгоритм хеширования
Чтобы понять цифровые удостоверения, нам нужно понять, как работает криптографическое хеширование . Хеширование — это процесс преобразования цифровых данных любого произвольного размера в данные фиксированного размера. Проще говоря, хеширование — это процесс извлечения некоторой информации, которую можно прочитать, и создания чего-то, что не имеет никакого смысла.
Вы можете сравнить хеширование с получением ответов от политиков. Информация, которую вы им предоставляете, ясна и понятна, а вывод, который они предоставляют, выглядит как случайный поток слов.
Есть несколько требований, которым должен соответствовать хороший алгоритм хеширования:
- Выходная длина алгоритма хеширования должна быть фиксированной (хорошее значение — 256 байт).
- Даже самое незначительное изменение входных данных должно привести к значительной разнице в выходных данных.
- Один и тот же ввод всегда будет производить один и тот же вывод
- Не должно быть никакого способа обратить выходное значение для вычисления входного
- Вычисление значения HASH не должно быть интенсивным и должно быть быстрым.
Если вы посмотрите на простую статистику, у нас будет ограниченное (но огромное) количество возможных значений HASH просто потому, что длина нашего HASH ограничена. Однако наш алгоритм хеширования (назовем его Politician256) должен быть достаточно надежным, чтобы он производил повторяющиеся хэш-значения для разных входных данных примерно так же часто, как обезьяне в зоопарке удается правильно напечатать Гамлета на пишущей машинке!
Если вы думаете, что «Гамлет» — это просто имя или слово, пожалуйста, перестаньте читать сейчас или почитайте о теореме о бесконечной обезьяне.
Цифровой подписи
При подписании документа все, что вам нужно сделать, это добавить свою подпись к тексту документа. Цифровая подпись аналогична: вам просто нужно добавить свои личные данные к документу, который вы подписываете.
Если вы понимаете, что алгоритм хеширования придерживается правила, согласно которому даже самое незначительное изменение входных данных должно привести к значительной разнице в выходных данных , то очевидно, что значение HASH, созданное для исходного документа, будет отличаться от значения HASH, созданного для документа. с приложенной подписью.
Сочетание исходного документа и значения HASH, созданного для документа с добавленными вашими личными данными, является документом с цифровой подписью .
И вот как мы получаем вашу виртуальную личность , которая определяется как данные, которые вы добавили к документу до того, как создали это значение HASH.
Далее вам нужно убедиться, что вашу подпись нельзя скопировать, и никто не сможет выполнить какую-либо транзакцию от вашего имени. Лучший способ убедиться, что ваша подпись защищена, — оставить ее себе и предоставить другому человеку другой способ проверки подписанного документа. Опять же, мы можем прибегнуть к уже имеющимся технологиям и алгоритмам. Нам нужно использовать криптографию с открытым ключом , также известную как асимметричная криптография .
Чтобы это работало, вам нужно создать закрытый ключ и открытый ключ . Эти два ключа будут находиться в каком-то математическом соотношении и будут зависеть друг от друга. Алгоритм, который вы будете использовать для создания этих ключей, гарантирует, что каждый закрытый ключ будет иметь отдельный открытый ключ. Как следует из их названий, закрытый ключ — это информация, которую вы будете хранить только для себя, а открытый ключ — это информация, которой вы будете делиться.
Если вы используете свой закрытый ключ (ваша личность) и исходный документ в качестве входных значений для алгоритма подписи для создания значения HASH, предполагая, что вы сохранили свой ключ в секрете, вы можете быть уверены, что никто другой не сможет создать такое же значение HASH для этого документа. .
Если кому-то нужно проверить вашу подпись, он или она будет использовать исходный документ, созданное вами значение HASH и ваш открытый ключ в качестве входных данных для алгоритма проверки подписи, чтобы убедиться, что эти значения совпадают.
Как отправить биткойн/деньги
Предполагая, что вы внедрили P2P-связь, механизмы для создания цифровых удостоверений (закрытые и открытые ключи) и предоставили пользователям способы подписывать документы с помощью своих закрытых ключей, вы готовы начать отправлять информацию своим коллегам.
Поскольку у нас нет центрального органа, который будет проверять, сколько у вас денег, системе придется каждый раз спрашивать вас об этом, а затем проверять, солгали вы или нет. Таким образом, ваша запись транзакции может содержать следующую информацию:
- У меня есть 100 топкоинов
- Я хочу отправить 10 монет своему фармацевту за лекарством ( вы должны указать здесь открытый ключ вашего фармацевта )
- Я хочу передать системе одну монету в качестве комиссии за транзакцию ( мы вернемся к этому позже )
- Я хочу оставить себе оставшиеся 89 монет
Единственное, что осталось сделать, это поставить цифровую подпись записи транзакции с помощью вашего закрытого ключа и передать запись транзакции вашим коллегам в сети. В этот момент все получат информацию о том, что кто-то (ваша виртуальная личность) отправляет деньги кому-то другому (виртуальная личность вашего фармацевта).
Ваша работа сделана. Однако ваше лекарство не будет оплачено до тех пор, пока вся сеть не согласится с тем, что у вас действительно есть 100 монет, и, следовательно, вы можете выполнить эту транзакцию. Только после того, как ваша транзакция будет подтверждена, ваш фармацевт получит средства и отправит вам лекарство.

Майнеры криптовалюты: новое поколение агентов
Шахтеры, как известно, очень трудолюбивые люди, которым, на мой взгляд, сильно недоплачивают. В цифровом мире криптовалюты майнеры играют очень похожую роль, за исключением того, что в этом случае они выполняют работу, требующую больших вычислительных ресурсов, а не копают кучу грязи. В отличие от настоящих майнеров, некоторые майнеры криптовалюты за последние пять лет заработали небольшое состояние, но многие другие потеряли целое состояние на этом рискованном предприятии.
Майнеры являются основным компонентом системы, и их основной целью является подтверждение достоверности каждой транзакции, запрошенной пользователями.
Чтобы подтвердить действительность вашей транзакции (или комбинации нескольких транзакций, запрошенных несколькими другими пользователями), майнеры сделают две вещи.
Во-первых, они будут полагаться на тот факт, что «все все знают», а это означает, что каждая транзакция, выполняемая в системе, копируется и становится доступной любому узлу в сети. Они изучат историю ваших транзакций, чтобы убедиться, что у вас действительно было 100 монет с самого начала. Как только баланс вашей учетной записи будет подтвержден, они сгенерируют определенное значение HASH. Это хеш-значение должно иметь определенный формат; он должен начинаться с определенного количества нулей .
Есть два входа для вычисления этого значения HASH:
- Данные записи транзакции
- Доказательство работы майнера
Учитывая, что даже малейшее изменение входных данных должно привести к значительной разнице в выходном значении HASH , перед майнерами стоит очень сложная задача. Им нужно найти конкретное значение для переменной доказательства работы , которая создаст ХЭШ, начинающийся с нулей. Если ваша система требует минимум 40 нулей в каждой проверенной транзакции, майнеру потребуется вычислить примерно 2^40 различных значений HASH, чтобы найти правильное доказательство работы .
Как только майнер находит подходящее значение для доказательства работы, он или она имеет право на комиссию за транзакцию (единая монета, которую вы готовы заплатить), которая может быть добавлена как часть подтвержденной транзакции. Каждая проверенная транзакция передается одноранговым узлам в сети и сохраняется в базе данных определенного формата, известной как блокчейн .
Но что произойдет, если количество майнеров увеличится, а их оборудование станет намного эффективнее? Биткойн раньше добывался на процессорах, затем на графических процессорах и ПЛИС, но в конечном итоге майнеры начали разрабатывать свои собственные чипы ASIC, которые были намного более мощными, чем эти ранние решения. По мере роста скорости хеширования растет и сложность майнинга, что обеспечивает равновесие. Когда в сеть вводится больше вычислительной мощности, сложность возрастает, и наоборот; если многие майнеры решат отключиться, потому что их работа больше не приносит прибыли, сложность корректируется, чтобы соответствовать новой скорости хеширования.
Блокчейн для чайников: глобальный реестр криптовалют
Блокчейн содержит историю всех транзакций, совершенных в системе. Каждая подтвержденная транзакция или пакет транзакций становится еще одним звеном в цепочке. Каждая компания по разработке блокчейнов полагается на этот публичный реестр.
Итак, блокчейн Биткойн — это, по сути, публичный реестр, в котором транзакции перечислены в хронологическом порядке.
Первое кольцо в блокчейне Биткойн называется Genesis Block.
Чтобы узнать больше о том, как работает блокчейн, я предлагаю прочитать «Объяснение технологии блокчейна: питание биткойнов» Нермина Хайдарбеговича.
Нет ограничений на количество активных майнеров в вашей системе. Это означает, что два или более майнера могут подтвердить одну и ту же транзакцию. Если это произойдет, система проверит общие усилия, которые каждый майнер вложил в проверку транзакции, просто подсчитав нули. Майнер, который приложил больше усилий (нашел больше нулей в начале), победит, и его или ее блок будет принят.
Контроль денежной массы
Первое правило системы биткойнов заключается в том, что может быть сгенерировано максимум 21 000 000 биткойнов. Это число до сих пор не достигнуто, и, согласно современным тенденциям, считается, что это число будет достигнуто к 2140 году.
Это может заставить вас усомниться в полезности такой системы, потому что 21 миллион единиц звучит не так уж и много. Однако система Биткойн поддерживает дробные значения до восьми знаков после запятой (0,00000001). Эта наименьшая единица биткойна называется сатоши в честь Сатоши Накамото, анонимного разработчика протокола биткойн.
Новые монеты создаются в качестве вознаграждения майнерам за проверку транзакций. Это вознаграждение не является комиссией за транзакцию , которую вы указали при создании записи транзакции, а определяется системой. Сумма вознаграждения со временем уменьшается и в конечном итоге будет обнулена, как только будет достигнуто общее количество выпущенных монет (21 миллион). Когда это произойдет, комиссия за транзакцию будет играть гораздо более важную роль, поскольку майнеры могут предпочесть отдавать приоритет более ценным транзакциям для проверки.
Помимо установки верхнего предела максимального количества монет, система Биткойн также использует интересный способ ограничения ежедневного производства новых монет. Путем калибровки минимального количества начальных нулей, необходимого для расчета доказательства работы, время, необходимое для проверки транзакции и получения вознаграждения в виде новых монет, всегда устанавливается примерно на 10 минут. Если время между добавлением новых блоков в цепочку блоков уменьшается, система может потребовать, чтобы доказательство работы генерировало 45 или 50 начальных нулей.
Таким образом, ограничивая скорость и количество новых монет, которые могут быть сгенерированы, система Биткойн эффективно контролирует денежную массу.
Начните «печатать» свою собственную валюту
Как видите, создать собственную версию Биткойна не так уж и сложно. Используя существующие технологии, реализованные инновационным способом, у вас есть все, что нужно для криптовалюты.
- Все транзакции осуществляются через Интернет с использованием связи P2P, что устраняет необходимость в центральном органе.
- Пользователи могут выполнять анонимные транзакции, используя асинхронную криптографию, и они идентифицируются только по комбинации закрытого и открытого ключей.
- Вы реализовали проверенную глобальную книгу всех транзакций, которая была безопасно скопирована на каждый пир в сети.
- У вас есть защищенная, автоматизированная и контролируемая денежная масса, которая обеспечивает стабильность вашей валюты без необходимости участия центральной власти.
Последнее, о чем стоит упомянуть, это то, что по своей сути криптовалюта — это способ передачи анонимной ценности/информации от одного пользователя к другому в распределенной одноранговой сети .
Рассмотрите возможность замены монет в записи транзакции случайными данными, которые могут быть даже зашифрованы с помощью асинхронной криптографии, чтобы их могли расшифровать только отправитель и получатель. А теперь подумайте о том, чтобы применить это к чему-то вроде Интернета вещей !
Ряд технологических тяжеловесов уже изучают использование технологии блокчейна на платформах IoT, но это не единственное потенциальное применение этой относительно новой технологии.
Если вы не видите причин создавать собственную альтернативную валюту (кроме розыгрыша), вы можете попробовать использовать тот же или аналогичный подход для чего-то еще, например, для распределенной аутентификации, создания виртуальных валют, используемых в играх, социальных сетях. и другие приложения, или вы можете приступить к созданию новой программы лояльности для своего бизнеса электронной коммерции, которая вознаградит постоянных клиентов виртуальными токенами, которые можно будет обменять позже.