Bitcoin Forum
May 05, 2024, 09:52:40 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Отправить не на хэш открытого, а на открыты&#  (Read 133 times)
loshara (OP)
Newbie
*
Offline Offline

Activity: 57
Merit: 0


View Profile
November 08, 2018, 11:55:08 AM
 #1

Не знал даже куда написать.. Подскажите, а можно биткоины отправить не на адрес (результат хэшей открытого), а сразу на открытый ключ?
И, если возможно, как это сделать?

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

0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714902760
Hero Member
*
Offline Offline

Posts: 1714902760

View Profile Personal Message (Offline)

Ignore
1714902760
Reply with quote  #2

1714902760
Report to moderator
1714902760
Hero Member
*
Offline Offline

Posts: 1714902760

View Profile Personal Message (Offline)

Ignore
1714902760
Reply with quote  #2

1714902760
Report to moderator
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 08, 2018, 01:29:34 PM
 #2

Не знал даже куда написать.. Подскажите, а можно биткоины отправить не на адрес (результат хэшей открытого), а сразу на открытый ключ?
И, если возможно, как это сделать?

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

0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8

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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
November 11, 2018, 08:20:46 AM
Last edit: November 11, 2018, 08:35:17 AM by amaclin1
 #3

Пишите 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? Какие для этого кнопки нажимать?
Я никогда не пробовал. Могу пошаманить, но не совсем уверен, что это сейчас легко делается.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 11, 2018, 09:26:07 AM
 #4

Пишите 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. ПРОФИТ!!!



OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
November 11, 2018, 10:07:23 AM
 #5

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

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 11, 2018, 10:21:08 AM
Last edit: November 11, 2018, 10:43:18 AM by kzv
 #6

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 являются стандартными.

OpenTrade - Open Source Cryptocurrency Exchange
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!