Мне нужно сгенерировать адрес получения, напрямую связанный с некоторыми метаданными M, которые являются частью проверяемого контракта.
Я требую, чтобы клиенты могли убедиться, что адрес действительно был сгенерирован из определенного контрактного сообщения, но я не хочу, чтобы у них был закрытый ключ к этому адресу.
Очевидно, я не хочу раздувать блокчейн и использовать нестандартные транзакции. P2SH также невозможен, поскольку многие провайдеры онлайн-кошельков по-прежнему не поддерживают его.
Итак, вот моя первая попытка, основанная на ( https://bitcointalk.org/index.php?topic=108423.0 )...
# generate an EC key pair for the company
issuer_public_key = issuer_private_key * G
# create a contract message string, M
M = 'Terms of contract bla bla and also includes issuer_public_key for safety'
# generate a hash of the message
e = SHA256(M)
# create an EC point that is known to both parties
contract_point = (e * issuer_public_key)
# generate a public key for this contract to form our receive address. Customer agrees to contract when they send BTC to receive address.
receive_public_key = contract_point + issuer_public_key
# the private key for the receive address is thus
receive_private_key = contract_point + issuer_private_key
Обратная связь очень ценится
Это все хорошо, но оказывается, что суды не интересуются "математическими доказательствами" (не без оснований). Я рекомендую прочитать все книги Брюса Шнайдера.
Допустим, у вас есть кто-то, кто заплатит вам в receive_public_key
. Означает ли это, что он согласился на контракт M
? Нет.
Судам по-прежнему необходимо будет ознакомиться с документацией, подтверждающей, что ваш партнер действительно видел договор и согласился с ним M
. Вы могли бы написать этому парню по электронной почте и сказать: «Я дам тебе 10 долларов, если ты отправишь биткойны на адрес receive_public_key
, а потом заявишь, что он согласился заключить контракт M
.
То же самое произошло в 90-х, когда поставщики заявляли, что криптографические цифровые подписи обладают свойством неотказуемости . Но суды не согласились. Например, кто-то может приставить пистолет к вашей голове и заставить вас «подписать» контракт (цифровой или иной). Ни один суд не сочтет это действительным контрактом, причудливой математикой или не причудливой математикой.
земля