Применение встроенной электронной цифровой подписи сети «Сибирский Червонец» для создания цифровых обязательств.
Введение
Использование цифровой подписи ECDSA
Сеть «Сибирский Червонец» использует асимметрический алгоритм шифрования на базе эллиптических кривых (ECDSA) для создания «адресов» (счетов) в системе. Для создания адреса генерируется приватныи ключ, из которого, в свою очередь, вычисляется публичный ключ, а из него, – путем двойного хеширования и использования кодировки base58, получается адрес.
Основной функцией приватного ключа является подпись транзакций, для передачи червонцев, по сути, – это ключ к средствам. Однако, есть возможность и другого использования. Как в клиентском, так и в серверном приложении есть возможность подписи произвольного сообщения и проверки этой подписи.
Рассмотрим использование подписи на примере:
- Сгенерим новый адрес, например: SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv
Теперь мы хотим подписать сообщение следующего вида:
«I hereby confirm that I'm owner of address SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv»
Самый простой путь для этого это открыть клиентское приложение для ПК, в нем в основном меню выбрать
«Фаил» → «Подписать сообщение», выбрать нужный адрес и вставить туда текст.
Получим следующую подпись:
IMu4Fyz8fJfAaJnTlQ5Rc2OOOASgqrJZW1LrvI0zm5UPbq1p23okFkrjEvalnLT7xttjDXcp uV7n4a49+gQnQ9s=
Теперь мы можем отправить любому человеку наш адрес, исходный текст и подпись, используя которые, он сможет легко проверить, что сообщение подписано именно этим адресом. Для этого в клиентском приложении, в основном меню есть вкладка «
Фаил» → «Проверить сообщение».
а же самая функциональность имеется и в серверном приложении, команды signmessage и verifymessage, что дает возможность создавать и верифицировать подписи, обращаясь по API к серверному приложению.
Варианты применения в жизни
На самом деле их огромное количество. Самый простой пример – это гарантийное письмо:
Допустим, какой-нибудь сервис geniy-realta.io ИП Сидоров гарантирует своим клиентам возврат принятого аванса в Червонцах в случае неоказания своих услуг по поиску жилья в течение 14 дней.
Этот сервис имеет адрес в сети «Сибирский Червонец», опубликованный на их сайте: SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv
При поступлении аванса он выдает клиенту фаил следующего вида:
Код:
-----START SIGNING SIBCOIN ADDRESS-----
SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv
-----END SIGNING SIBCOIN ADDRESS-----
-----START LETTER OF GUARANTEE-----
Настоящим письмом мы подтверждаем, что geniy-realta.io сгенерировал адрес SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv с целью приёма авансовых платежей за услуги ИП Сидоров по поиску аренды жилья в г. Сосенки.
ЗаказNo 6765
Сумма принятого аванса: 1000Ч (50% от стоимости услуг)
txid: 0e6ce96debfb2849df8eec08cdeddfe44df8b1d104bd4b631b31cabb6442e943
Гарантируем возврат средств в размере 90% (10% комиссия агентства) в случае, если договор аренды не будет заключен в течение 14-ти дней с момента получения аванса, то есть до 6.05.2017 14:56:12 GMT
This letter is digitally signed by our main account: SZqRAE9oEMEy7r6PqQa8y1DawsokMTVoWv. Stay protected and thank you for your services.
-----END LETTER OF GUARANTEE-----
-----START DIGITAL SIGNATURE-----
... [подпись] ...
-----END DIGITAL SIGNATURE-----
Таким образом, давая пользователю возможность подтвердить в суде, или в любом другом месте, факт использования сервиса в случае споров или каких-то непредвиденных обстоятельств.
Аналогично могут подписываться любые документы. Например, контракты, векселя, расписки и т.п.
Хранение в блокчеин
На текущий момент возможность хранения данных в блокчейн весьма ограничена. Существует возможность создавать транзакции «без выхода», при помощи инструкции OP_RETURN. Их нельзя потратить, но зато вместо выхода можно записать 80 байт данных. Конечно, 80 байт это крайне мало для записи контракта или других существенных данных, однако в них можно записать хеш документа, что, при наличии самого документа, будет служить доказательством времени его создания.
Заключительные положения
Как мы увидели выше, создать обязательство c цифровой подписью в сети Червонца не представляет никакой сложности. Это может быть складская расписка, может быть вексель, может быть другое обязательство.