Добавить в цитаты Настройки чтения

Страница 10 из 12



Биткоин для «чайников»

Электронная цифровая подпись (ЭЦП) документа – это аналог обычной подписи, но возможности её гораздо шире.

Как работает ЭЦП? Как отправить по каналам связи (например, по электронной почте) заверенный и подписанный электронный документ? Попробуем разобраться…

С обычной бумажной почтой нет проблем – подписываете документ; заверяете его у нотариуса; отправляете заказным письмом. Всё! Ваш адресат, получив такое письмо, уверен, что документ подписан лично вами.

С электронной почтой (e-mail) так не получится. Конечно, можно отсканировать заверенный нотариусом документ и отправить его в виде файла, присоединенного к электронному письму. Но распечатка этого файла не будет легитимной.

Как же быть? На помощь приходит криптография!

Ранее в главе «Шифрование с открытым ключом: Наглядная иллюстрация» было рассказано об асимметричном шифровании, когда отправитель шифрует послание открытым (публичным) ключом, а получатель его расшифровывает соответствующим открытому закрытым (приватным) ключом.

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

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

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

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

Но в реальности нет необходимости зашифровывать само послание. Достаточно вычислить его хэш-код (см. главу «Хэширование: Просто и наглядно»), затем зашифровать этот хэш приватным ключом и присоединить к тексту сообщения. Вот этот зашифрованный хэш и есть ЭЦП – электронная цифровая подпись сообщения.

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

Но это еще не все! Использование хэширования послания позволяет также контролировать и его целостность – не были ли по пути к адресату в письмо внесены несанкционированные изменения?

Действительно, если расшифрованная ЭЦП не совпадает с хэшем текста послания, то из этого могут следовать две вещи:

В любом случае, получатель не может считать принятое сообщение достоверным – оно подделано!

Остается вопрос: Как получатель сообщения узнает, каким публичным ключом надо расшифровывать ЭЦП? Ведь для каждого приватного ключа существует свой уникальный публичный ключ.



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

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

Сертификат вместе с ЭЦП прикрепляется к отправляемому посланию и получатель по сертификату идентифицирует личность отправителя и получает публичный ключ, соответствующий приватному ключу отправителя.

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

Алгоритмы создания ЭЦП и её проверки.

Краткий вводный курс в технологические основы Биткоина

Как это ни странно звучит, но «биткоин-кошельки» не содержат биткоинов!

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

Что же такое транзакция и как работают т.н. «биткоин-кошельки» (под этим термином будем подразумевать программное обеспечение, при помощи которого совершаются транзакции)? Попробуем разобраться…

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

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

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

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

Рассмотрим блокчейн Биткоина (гроссбух – ledger) и записи транзакций в нем. Представьте себе большую таблицу, в каждой строке которой содержатся следующие данные (поля):

Это и есть запись транзакции.