Используйте систему Bitcoin в локально-сохраненный файл wallet.dat может быть дополнено добавлением сопроводительного ключа для каждого соответствующего адреса. в спецификация протокола, структура сообщения полезная нагрузка должна быть в состоянии иметь шифрованный закрытый ключ, присоединенный к нему без побочных эффектов, что я могу видеть. Так как сделки будут в blockchain, они, очевидно, будут доступны всем.
Это потенциально опасно, но риск может быть в значительной степени уменьшены с помощью различных методов (посола, н-фактор аутентификации, и т.д.), и это будет также служить средством восстановления потерянных транзакций должен ли стать wallet.dat непоправимо поврежден или недоступен. Эта функциональность не должна быть использована и может оставаться полностью опциональны в любых опорных узлах, так как это скорее расширение протокола, чем радикальная модификация. Если метод защиты должен быть изменен, все, что требуется операция.
Пароль или другой метод подписи необходимо надлежащим образом обезопасить секретный ключ адреса ассоциированных. Он также будет необходим иметь средства идентификации, какие операции являются владелец - помечено как-то. Это может быть сделано путем присоединения хэша с владельцем указанием фразы или ключевым словом с добавленным или предварённым счетчиком, увеличивающейся для каждой отдельной операции (замена другого вопрос). Для того, чтобы различать конце адреса Bitcoin (который может варьироваться) и пары ключ / метки, разделитель символов будет необходимо. Для аргумента, труба «|» будет использоваться символ.
Порядок вставки ключа / тега может быть значительным, а также, например, что метки могут прийти до ключей. Во время поиска, то blockchain можно искать с помощью тега строки хэши. После того, как метка находится, оставшееся содержимое после разделителя (закрытого ключа) расшифровываются. Ключ и / или тег может быть закодирован с использованием различных методов. Массовое использование приведет к увеличению размера blockchain, но не неуправляемому уровне, особенно с продолжающимися достижениями в области хранения данных, обработке и скорости сети. Нахождение сделок происходит только на узле, используя локальную копию blockchain.
Пример:
Код:
Адреса
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
1QGeDMDivf0BPTfTLSLm9fi752A1zP1eP
Закрытые ключи (закодированные с помощью «GPG -ac» с паролем: «thefutureiscosbycoin»)
1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj (GPG: jA0EAwMCs8547HQSJb5gyTn5hHFR / c94Tsh + NJzW9BtynpjFYQa8ImpLx + WCadAYs2sQksum + CU9XVacDn0fGG4BzgeNjDdetDo == / ГМД)
1dtwXUWMKjJAffpuzAdC3X2gu5894fTUWu (GPG: jA0EAwMCYxGfRhRH2g9gyTnr2UI1OfLxg8iJtfPOvL4mxIhh1bk1DPwZnzoUSEXRAZQBHq3kDYxYtIWm3TnACfZQb5UiLxxwJQc == В1 / U)
Ключевые строки (хэшированные с помощью «sha1sum» за один проход)
SuperCow0 (sha1: 933953264ed6afa72a9b5f0d5c03baaf33439d9a)
SuperCow1 (sha1: daa82ed09f30dadb0fcd69c56b105e8de8122553)
Используя приведенный выше пример данных, две полезные нагрузки будет затем следующим образом:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | jA0EAwMCs8547HQSJb5gyTn5hHFR / c94Tsh + NJzW9BtynpjFYQa8ImpLx + WCadAYs2sQksum + CU9XVacDn0fGG4BzgeNjDdetDo == / yMD933953264ed6afa72a9b5f0d5c03baaf33439d9a
1QGeDMDivf0BPTfTLSLm9fi752A1zP1eP | jA0EAwMCYxGfRhRH2g9gyTnr2UI1OfLxg8iJtfPOvL4mxIhh1bk1DPwZnzoUSEXRAZQBHq3kDYxYtIWm3TnACfZQb5UiLxxwJQc == B1 / Udaa82ed09f30dadb0fcd69c56b105e8de8122553
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
1QGeDMDivf0BPTfTLSLm9fi752A1zP1eP
Закрытые ключи (закодированные с помощью «GPG -ac» с паролем: «thefutureiscosbycoin»)
1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj (GPG: jA0EAwMCs8547HQSJb5gyTn5hHFR / c94Tsh + NJzW9BtynpjFYQa8ImpLx + WCadAYs2sQksum + CU9XVacDn0fGG4BzgeNjDdetDo == / ГМД)
1dtwXUWMKjJAffpuzAdC3X2gu5894fTUWu (GPG: jA0EAwMCYxGfRhRH2g9gyTnr2UI1OfLxg8iJtfPOvL4mxIhh1bk1DPwZnzoUSEXRAZQBHq3kDYxYtIWm3TnACfZQb5UiLxxwJQc == В1 / U)
Ключевые строки (хэшированные с помощью «sha1sum» за один проход)
SuperCow0 (sha1: 933953264ed6afa72a9b5f0d5c03baaf33439d9a)
SuperCow1 (sha1: daa82ed09f30dadb0fcd69c56b105e8de8122553)
Используя приведенный выше пример данных, две полезные нагрузки будет затем следующим образом:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | jA0EAwMCs8547HQSJb5gyTn5hHFR / c94Tsh + NJzW9BtynpjFYQa8ImpLx + WCadAYs2sQksum + CU9XVacDn0fGG4BzgeNjDdetDo == / yMD933953264ed6afa72a9b5f0d5c03baaf33439d9a
1QGeDMDivf0BPTfTLSLm9fi752A1zP1eP | jA0EAwMCYxGfRhRH2g9gyTnr2UI1OfLxg8iJtfPOvL4mxIhh1bk1DPwZnzoUSEXRAZQBHq3kDYxYtIWm3TnACfZQb5UiLxxwJQc == B1 / Udaa82ed09f30dadb0fcd69c56b105e8de8122553
Есть более эффективные способы достижения безопасных результатов; Эти примеры предназначены только обрисовать процесс. Он также не полностью устранить потенциал для потерянных монет / операций. При отсутствии wallet.dat владелец должен заучивать и зашифрованный ключ пароля / подпись, а также тег фразу / строку. Если используются любые неясные или нестандартные способы кодирования или шифрования, те, все они должны быть отозваны.
Ответственность остается непосредственно с владельцем; это дает еще один вариант. Наиболее важным аспектом является то, не обязательно пароль / подпись / фраза / теги / и т.д. - сочетание методов, используемых для защиты закрытого ключа может быть более важным.
Там нет никаких серьезных проблем с обратной совместимостью или интеграции, которые я могу видеть с этим подходом, но, очевидно, больше глаз может найти что-то я упускать из виду. Любое представление или советы будут оценены.
Интересный потенциал, если / когда namecoin созревает может быть с помощью NMC адрес в качестве тега, особенно при рассмотрении вопроса о возможности договоров Bitcoin на основе ...