Например, если вы подписываете хеш-указатель, который был в конце цепочки блоков, результатом будет то, что вы эффективно подписываете весь контент этой цепочки блоков.
Это пример цифровой подписи с использованием алгоритма RSA.
Биткойн использует определенную схему цифровой подписи, которая называется ECDSA.
Это алгоритм эллиптической кривой Elliptic Curve Digital Signature Algorithm.
И это стандарт правительства США.
Мы не будем вдаваться во все детали того, как работает ECDSA.
Он полагается на сложную математику.
И поверьте мне, вы не хотите видеть все детали того, как это работает. Поэтому мы это пропустим.
Одна вещь, которую я хочу заметить, это то, что для ECDSA важна хорошая рандомизация. Хорошая случайность особенно важна для ECDSA.
Если вы используете плохую рандомизацию для генерации ключей или даже подписи, вы можете дать доступ к своему секретному ключу.
Это свойство ECDSA, что, если вы используете плохую случайность, создавая подпись с использованием совершенно хорошего ключа, это может дать доступ к приватному ключу.
Поэтому вы должны быть особенно внимательны к этому на практике. Это распространенная ошибка.
Теперь, если мы возьмем публичный ключ, общедоступный ключ проверки цифровой подписи, то мы можем приравнять его к идентичности.
То есть, идентифицировать с помощью него личность человека, или действие, или систему.
Поэтому, если вы видите подпись сообщения, верифицированную или подтвержденную с помощью публичного ключа, тогда вы можете думать об этом как о том, что публичный ключ представляет сообщение.
Вы можете думать о публичном ключе, как о своего рода участнике в системе, потому что за публичным ключом находится приватный ключ, который может принадлежать только одной личности.
Если мы собираемся рассматривать публичные ключи как личности, одним из последствий этого является то, что вы можете создать новую идентичность с помощью создания новой пары случайных ключей – секретный ключ и публичный ключ, используя операцию генерации ключей.
И публичный ключ будет публичным именем личности, хотя на практике используется хэш из публичного ключа, так как публичные ключи большие.
Вы контролируете личность, потому что только вы знаете секретный ключ, и, если вы сгенерировали ключи случайным образом, тогда никто не может знать, кто вы.
Вы можете создавать свежие идентичности, которые выглядят случайными.
Это подводит нас к идее децентрализованного управления идентификацией, где вместо того, чтобы иметь центральное место, куда вы должны пойти, чтобы зарегистрироваться как пользователь в системе, здесь вам не нужно получать имя пользователя.
Вам не нужно сообщать кому-то, что вы собираетесь использовать определенное имя.
Если вам нужна новая личность, просто создайте ее.
Любой может создать новую личность в любое время и может сделать их столько, сколько захочет.
Если вы захотите быть под пятью именами, без проблем, просто сделайте пять идентификаторов.
Если вы хотите быть анонимным, вы можете создать новую личность, использовать ее только на некоторое время, затем выбросить ее.
Все это возможно с помощью децентрализованного управления идентификацией.
И нет центральной точки контроля, так что вам не нужно иметь кого-то, кто отвечает за идентификацию.
Система работает полностью децентрализованным способом.
И таким способом Биткойн создает личности.
Эти личности называются адресами в терминологии Биткойна.
И поэтому, когда вы слышите термин «адрес» в разговоре о биткойне и криптовалютах, на самом деле это просто открытый ключ или хэш открытого ключа.
Это личность, которую кто-то создал в рамках децентрализованной схемы управления идентификацией.
Теперь возникает вопрос, когда вы говорите о децентрализованном управлении идентификацией и людях, создающих эти личности, насколько это конфиденциально?
И ответ в том, что это сложно.
С одной стороны, адреса, составленные таким образом, не связанны с вашей реальной личностью в реальном мире.
Вы выполняете рандомизированный алгоритм, он создает какой-то публичный ключ, который выглядит случайным.
И изначально ничего не существует, что может связать это с тем, кто вы есть на самом деле.
Вы можете сделать это конфиденциально.
Но плохая новость в том, что даже если вы хотите действовать конфиденциально, и, если этот адрес, эта личность делает ряд утверждений со временем, если этот адрес участвует в ряде действий, люди могут увидеть, кто сделал эту определенную последовательность действий, и они смогут связать этот адрес с конкретным человеком.
Поэтому вопрос конфиденциальности в криптовалюте является сложным вопросом.
Простые криптовалюты
Теперь поговорим о некоторых упрощенных криптовалютах, чтобы потом понять, как работают такие системы, как BitCoin.
И сначала поговорим о GoofyCoin.
GoofyCoin – это простейшая криптовалюта, которая подчиняется двум правилам.
Первое правило состоит в том, что Гуфи может создавать новые монеты, когда он захочет, и когда он создает новую монету, она принадлежит ему.
Когда Гуфи создает монету, она представлена определенной структурой данных.
Чтобы создать монету, Goofy генерирует уникальный идентификатор монеты CoinID, который он никогда не генерировал раньше, и создает строку «CreateCoin [uniqueCoinID]».
Затем он подписывает эту строку цифровой подписью с помощью своего секретного ключа.
Он вычисляет цифровую подпись этой строки с использованием своего секретного ключа.