Author

Topic: Отправить не на хэш открытого, а на открыты&# (Read 133 times)

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
1. Придумываем скрипт
Я-то это прекрасно понимаю. Только учти, что с твоего адреса 3HRXf2LhE516bMUjDi3XrJLr9rJVnGgiZ3 не факт, что бабки сможет забрать владелец публичного ключа 0479be667e...
Он даже и не догадается, что ему бабло прислали, если ему про это не сказать и не показать, как выводить.
А так как транзакцию не надо подписывать приватным ключом - то слямзить бабло может любой владелец бота.

Зачем так извращаться, если на вопрос автора темы надо рассказать ему про P2PK?

Ну автор спросил: можно послать на открытый ключ? Я ответил - можно. Автор спрашивает: как? Я показываю один из способов. С помощью P2PK это может сделать только владелец крупного пула ибо транза будет нестандартной.
Кстати, а я че-то в исходниках не вижу - где там список стандартных скриптов?
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L80


Нашел, где в исходниках определяется стандартность транзакции
https://github.com/bitcoin/bitcoin/blob/master/src/script/standard.cpp#L90

И судя по этому
https://github.com/bitcoin/bitcoin/blob/master/src/script/standard.cpp#L90

транзакции типа P2PK являются стандартными.
sr. member
Activity: 770
Merit: 305
1. Придумываем скрипт
Я-то это прекрасно понимаю. Только учти, что с твоего адреса 3HRXf2LhE516bMUjDi3XrJLr9rJVnGgiZ3 не факт, что бабки сможет забрать владелец публичного ключа 0479be667e...
Он даже и не догадается, что ему бабло прислали, если ему про это не сказать и не показать, как выводить.
А так как транзакцию не надо подписывать приватным ключом - то слямзить бабло может любой владелец бота.

Зачем так извращаться, если на вопрос автора темы надо рассказать ему про P2PK?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Пишите P2SH скрипт, получаете его адрес, отправляете туда. Скрипт например такой
0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 OP_EQUALVERIFY

При чем тут P2SH скрипт и зачем получать его адрес?
Кстати, что такое адрес скрипта - я не понял.

1. Придумываем скрипт
0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 OP_EQUALVERIFY
2. Превращаем его в хекс
410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a 3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b888
3. Пишем в консоли коры
decodescript "410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a 3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b888"
4. Кора скажет
Code:
{
"result": {
"asm": "0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 OP_EQUALVERIFY",
"type": "nonstandard",
"p2sh": "3HRXf2LhE516bMUjDi3XrJLr9rJVnGgiZ3"
},
"error": null,
"id": null
}
5. Посылаем корой бабки на адрес 3HRXf2LhE516bMUjDi3XrJLr9rJVnGgiZ3
6. ...
7. ПРОФИТ!!!


sr. member
Activity: 770
Merit: 305
Пишите P2SH скрипт, получаете его адрес, отправляете туда. Скрипт например такой
0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 OP_EQUALVERIFY

При чем тут P2SH скрипт и зачем получать его адрес?
Кстати, что такое адрес скрипта - я не понял.
В общем, задурили вы человеку голову.

Тем более вариант push( pub ) OP_EQUALVERIFY не пройдет в mainnet - это нестандартный
выход, его майнеры не включат в блок, а если включат - то стыбзить бабло сможет любой человек.

Обычно в выходном скрипте пишут
OP_DUP OP_HASH160 push( hash ) OP_EQUALVERIFY OP_CHECKSIG
Это так называемый P2PKH, который вы не хотите.

Вам же надо написать
push( pub ) OP_CHECKSIG
Получится P2PK

Про то, что это можно завернуть в P2SH или в несколько вариантов сегвита автор темы не спрашивал.

Другое дело - а нафига так извращаться? Если у вас есть публичный ключ адресата - то из публичного
ключа можно получить хэш и отправить P2PKH-выход. Наоборот - в общем случае нельзя.
Не очень понятны резоны так делать - клиент у получателя по идее должен понять, что ему бабки
прислали, если пришлют именно P2PK, если сделан по канонам. Но если точно не уверен - я бы не стал
рисковать.

Или вопрос - как это сделать с помощью клиента, например BitcoinCore? Какие для этого кнопки нажимать?
Я никогда не пробовал. Могу пошаманить, но не совсем уверен, что это сейчас легко делается.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Не знал даже куда написать.. Подскажите, а можно биткоины отправить не на адрес (результат хэшей открытого), а сразу на открытый ключ?
И, если возможно, как это сделать?

То есть, можно, например отправить на:

0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8

Пишите P2SH скрипт, получаете его адрес, отправляете туда. Скрипт например такой
0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 OP_EQUALVERIFY
newbie
Activity: 57
Merit: 0
Не знал даже куда написать.. Подскажите, а можно биткоины отправить не на адрес (результат хэшей открытого), а сразу на открытый ключ?
И, если возможно, как это сделать?

То есть, можно, например отправить на:

0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
Jump to: