Pages:
Author

Topic: Как завещать свои биткоины? - page 5. (Read 4994 times)

legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
В любом случае, даже если я накосячил, и это работает, то не вижу смысла в такой конструкции. Простое изменение nLocktime делает то же, но гораздо проще.

Я глянул, мне кажется что есть ошибка. Иначе в BIP-aх и гайдах бы об этом не писали.

OP_CLTV - ты вводил в ручную или оно само вписало?

Потому что не факт, что будет коммерчески востребованным. Разве не очевидно?  Smiley

А что, все пишут программы только для того чтобы иметь коммерческий успех? Тем более если там работы кот наплакал?

Те, которые пишутся не ради бабла, то пишутся по желанию. Не хочет писать - его право. Ну а вообще идея сделать такой сервис довольно интересная, но не скажу что очень уж простая, kzv здесь ошибается.
hero member
Activity: 1232
Merit: 858
Да о чем вы вообще?
Если бы такой сервис был коммерчески востребованный, то я бы написал его за один день на коленке и зи неделю с юзерфрендли интерфесом...
Но мы же ту пофлудить просто ))

Если на это нужно так мало времени, то почему бы не сделать это?

Потому что не факт, что будет коммерчески востребованным. Разве не очевидно?  Smiley

А что, все пишут программы только для того чтобы иметь коммерческий успех? Тем более если там работы кот наплакал?

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Транзакции с нестандартными запирающими скриптами хоть и не запрещены явно, но в блоки их майнеры не включают и другие пиры их не релеят. То есть для такой транзакции нужно либо самому майнить блок, либо напрямую договариваться с владельцем пула.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
То есть вы предлагаете не делать P2SH, а просто изменить P2PKH, добавив туда кое-чего. Правильно я вас понял?

Я не знаю как более правильно, но как мне кажется, в scriptpubkey можно вставлять любые скрипты из дозволенных. Ну из той информации что я прошерстил, я так понял.

Вот что на биткоин вики в разделе Script пишут:

Code:
scriptPubKey:  OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG
scriptSig:

Очевидно что структура P2PKH а не P2SH, ну или мб я ошибаюсь.
Сомневаюсь я, что так можно, это уже какой-то несуществующий P2S (pay to script) получается.
Попробовал так сделать, может где-то ошибся. Бабки улетели хз куда.
Неподписанная транзакция выглядела так:
Code:
0200000001f47be86fa76b08df1c2a26a10fbe4bb69fc9f488f6f279aa2455df587d162dae0000000000fdffffff0120030000000000001f03fc9218b17576a914587b00fb2cb23745a5fad03e414c841b00290af988ac00000000
Подписанная, в json:
Code:
{
  "txid": "c5072b9fb144341d992f487e4d675525ddaadb196c2178d1bdd9775ade1fd9be",
  "hash": "c5072b9fb144341d992f487e4d675525ddaadb196c2178d1bdd9775ade1fd9be",
  "version": 2,
  "size": 197,
  "vsize": 197,
  "weight": 788,
  "locktime": 0,
  "vin": [
    {
      "txid": "ae2d167d58df5524aa79f2f688f4c99fb64bbe0fa1262a1cdf086ba76fe87bf4",
      "vout": 0,
      "scriptSig": {
        "asm": "304402206e1a6aaf95200f5fe2ae67553270189c87e35685e5746d46b0d4edf285da6bdd02200359b81e524fab21de8ac2cff40124784dde879198fa06e898c01c001b467ba8[ALL] 0220d77e49788d56fdf4e1330f31902f6f6ca60f1a077bda6b8e203cc77def136c",
        "hex": "47304402206e1a6aaf95200f5fe2ae67553270189c87e35685e5746d46b0d4edf285da6bdd02200359b81e524fab21de8ac2cff40124784dde879198fa06e898c01c001b467ba801210220d77e49788d56fdf4e1330f31902f6f6ca60f1a077bda6b8e203cc77def136c"
      },
      "sequence": 4294967293
    }
  ],
  "vout": [
    {
      "value": 0.00000800,
      "n": 0,
      "scriptPubKey": {
        "asm": "1610492 OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 587b00fb2cb23745a5fad03e414c841b00290af9 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "03fc9218b17576a914587b00fb2cb23745a5fad03e414c841b00290af988ac",
        "type": "nonstandard"
      }
    }
  ]
}

В любом случае, даже если я накосячил, и это работает, то не вижу смысла в такой конструкции. Простое изменение nLocktime делает то же, но гораздо проще.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
То есть вы предлагаете не делать P2SH, а просто изменить P2PKH, добавив туда кое-чего. Правильно я вас понял?

Я не знаю как более правильно, но как мне кажется, в scriptpubkey можно вставлять любые скрипты из дозволенных. Ну из той информации что я прошерстил, я так понял.

Вот что на биткоин вики в разделе Script пишут:

Code:
scriptPubKey:  OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG
scriptSig:

Очевидно что структура P2PKH а не P2SH, ну или мб я ошибаюсь.
sr. member
Activity: 1337
Merit: 288
0xbt
Вон выше предлагали с помощью CHECKSEQUENCEVERIFY и локтаймом  Smiley
Однозначно интересный вариант, а т.к. считаю себя в этом вопросе некомпетентным, то и не лезу со своими самоварами. Но читаю с большим интересом.
А вообще рад, что именно в русскоязычном сообществе эта тема получила наибольший интерес.
Одна тема здесь и две в кодерах.
Видимо выходцы из бывшего Союза привыкли выгрызать знания зубами. 
Нашел тему за 2011 год, но она к сожалению не поучила развития:
https://bitcointalksearch.org/topic/crypto-testament-is-it-possible-55591
Жаль, что не объять необъятного.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Кстати не понимаю почему все удивляются насчет скриптов и возмущаются мол сложно. В scriptpubkey обычного выхода с обычного P2PKH адреса также содержится скрипт.

Code:
OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG

Где собственно это и есть адрес который в дальнейшем может потратить эти биткоины.
OP_DUP - это дублирование (нужен чтобы копировать публичный ключ из верха стэка)
OP_HASH160 - хэширование (по сути превращает скопированный до этого пабкей в адрес)
OP_EQUALVERIFY - сверка хэшей
OP_CHECKSIG - сверка подписи с помощью публичного ключа (они оставались последними в стэке)

А что мешает расширить эти скрипты?
То есть вы предлагаете не делать P2SH, а просто изменить P2PKH, добавив туда кое-чего. Правильно я вас понял?
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
В данном варианте использовал ChronoLogic:
https://zenith.0xbt.net/zavet/v_1.html
Можно и без email, но  от нее не отказался, т.к. форс-мажор и в Африке форс-мажор.


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

По любому уже 100500 раз сделано, но никто про эти сервисы не знает потому что они Неуловимый Джо.
В мире крипты что-то начнет двигаться в направлении новых технологий не раньше, чем биток упадет до 10$, желательно ниже... До тех пор, массы кроме грядущего со дня на день туземуна (чтобы наконец продать свои 0.001 бтц за 1Е+50 усд), ничего другое интересовать не будет.
sr. member
Activity: 1337
Merit: 288
0xbt
В данном варианте использовал ChronoLogic:
https://zenith.0xbt.net/zavet/v_1.html
Можно и без email, но  от нее не отказался, т.к. форс-мажор и в Африке форс-мажор.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
Да о чем вы вообще?
Если бы такой сервис был коммерчески востребованный, то я бы написал его за один день на коленке и зи неделю с юзерфрендли интерфесом...
Но мы же ту пофлудить просто ))

Если на это нужно так мало времени, то почему бы не сделать это?

Потому что не факт, что будет коммерчески востребованным. Разве не очевидно?  Smiley

Кстати не понимаю почему все удивляются насчет скриптов и возмущаются мол сложно. В scriptpubkey обычного выхода с обычного P2PKH адреса также содержится скрипт.

Code:
OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG

Где собственно это и есть адрес который в дальнейшем может потратить эти биткоины.
OP_DUP - это дублирование (нужен чтобы копировать публичный ключ из верха стэка)
OP_HASH160 - хэширование (по сути превращает скопированный до этого пабкей в адрес)
OP_EQUALVERIFY - сверка хэшей
OP_CHECKSIG - сверка подписи с помощью публичного ключа (они оставались последними в стэке)

А что мешает расширить эти скрипты?
Здесь два варианта:
1. Или влючить мозги и написать скрипт
2. Или пользоваться услугами юристов.

А то, что по середке болтается, это извините меня непристойность  Smiley
hero member
Activity: 1232
Merit: 858

Кзв  походу  верит, что  бабушки и дедушки  бросятся изучать  опкоды биткоина, чтобы передать накопленное своим внукам.   Grin

Ну нынешние бабушки и дедушки это вряд ли, а вот через лет так 10 - 20 начнут точно появляться.
Где-то слышал фразу (она не моя): "Плохо не то, что люди смертны, а то, что они внезапно смертны". Поэтому завещать свои Биткоины можно в любой момент времени, ну или хотя бы рассказать возможным наследникам о том, что у вас есть такие монеты.



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

Если на это нужно так мало времени, то почему бы не сделать это?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Да о чем вы вообще?
Если бы такой сервис был коммерчески востребованный, то я бы написал его за один день на коленке и зи неделю с юзерфрендли интерфесом...
Но мы же ту пофлудить просто ))
hero member
Activity: 1358
Merit: 635
~

Обсуждали уже такие скрипты.
В этой ветке обсуждение решили продолжать в русле: "как это сделать только мышкой и только в уже существующих приложениях".


Далеко не все владельцы Биткоина являются гуру в кодинге. Мы же хотим чтобы Биткоином пользовалось все больше и больше людей, поэтому нужно упрощать способы взаимодействия с блокчейном Биткоина, а специалисты себе дополнительных вариантов могут хоть несколько сотен придумать на то они и спецы.
Да и вообще чем проще способ - тем меньше мест где можно допустить ошибку.



Кзв  походу  верит, что  бабушки и дедушки  бросятся изучать  опкоды биткоина, чтобы передать накопленное своим внукам.   Grin
hero member
Activity: 1232
Merit: 858
~

Обсуждали уже такие скрипты.
В этой ветке обсуждение решили продолжать в русле: "как это сделать только мышкой и только в уже существующих приложениях".


Далеко не все владельцы Биткоина являются гуру в кодинге. Мы же хотим чтобы Биткоином пользовалось все больше и больше людей, поэтому нужно упрощать способы взаимодействия с блокчейном Биткоина, а специалисты себе дополнительных вариантов могут хоть несколько сотен придумать на то они и спецы.
Да и вообще чем проще способ - тем меньше мест где можно допустить ошибку.

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
А с описанным вами методом нужно хранить redeem-скрипт, не так ли? Так какая разница, что хранить?

Зачем? Вы генерируете необходимый скрипт-условие, получаете от него хэш который как раз и хранится в блокчейне. Наследник, на своем компьютере генерирует такой же скрипт + подпись. По хэшу из блокчейна происходит проверка корректно ли сгенерировал наследник скрипт.
Ну да, может и сам, но тоже нужны все публичные ключи (если брать схему с несколькими подписями), нужно помнить сам скрипт, значение локтайм. Короче говоря, я к тому, что хранение несекретной информации - это не проблема, можно на этом не зацикливаться.
Quote
Опять таки, к примеру OP_CHECKLOCKTIMEVERIFY можно добавлять и в P2PKH выходной scriptpubkey, если мне не изменяет память. Не обязательно именно P2SH, если мы конечно не играемся с мультиподписями и прочим.
Это интересно, если это возможно. Хотелось бы подробностей.
Quote
Quote
Если нет ничего сложного, расскажите пошагово, как это сделать? Лично меня интересует, как наследнику получить потом деньги, если он не программист? Да и при создании P2SH-адреса страшновато ошибиться и послать деньги в космос, с простым локтаймом это исключено.

Надо будет расписать. Сейчас вот стало еще проще, например - https://bitcointalksearch.org/topic/writingrunning-scripts-by-pressing-buttons-in-a-friendly-gui-5204090
Где-то (кажется, в кодерах) kzv расписывал подробно первую стадию - создание скрипта и адреса для хранения. Так что распишите, если сможете, вторую стадию, как потратить с этого p2sh-адреса?
sr. member
Activity: 377
Merit: 282
Finis coronat opus
А с описанным вами методом нужно хранить redeem-скрипт, не так ли? Так какая разница, что хранить?

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

Опять таки, к примеру OP_CHECKLOCKTIMEVERIFY можно добавлять и в P2PKH выходной scriptpubkey, если мне не изменяет память. Не обязательно именно P2SH, если мы конечно не играемся с мультиподписями и прочим.

Quote
Если нет ничего сложного, расскажите пошагово, как это сделать? Лично меня интересует, как наследнику получить потом деньги, если он не программист? Да и при создании P2SH-адреса страшновато ошибиться и послать деньги в космос, с простым локтаймом это исключено.

Надо будет расписать. Сейчас вот стало еще проще, например - https://bitcointalksearch.org/topic/writingrunning-scripts-by-pressing-buttons-in-a-friendly-gui-5204090
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
~

Обсуждали уже такие скрипты.
В этой ветке обсуждение решили продолжать в русле: "как это сделать только мышкой и только в уже существующих приложениях".
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Интересная тема обсуждения.
Все здесь обсуждали LOCKTIMEVERIFY скрипт, изначальный, когда при формировании транзакции можно использовать поле locktime с указанием количества блоков или времени для ожидания. Но как правильно заметили, такую транзакцию раньше времени нельзя будет отправить майнерам (раньше, кстати, было можно. До 2012-2013). Недостаток такого метода в том, что кроме приватного ключа получателя, наследник должен хранить и саму транзакцию до нужного времени.
А с описанным вами методом нужно хранить redeem-скрипт, не так ли? Так какая разница, что хранить?
Quote
А почему бы не использовать два более продвинутых варианта, например CLTV или CSV?
[skip]
Ничего сложного нет.
Если нет ничего сложного, расскажите пошагово, как это сделать? Лично меня интересует, как наследнику получить потом деньги, если он не программист? Да и при создании P2SH-адреса страшновато ошибиться и послать деньги в космос, с простым локтаймом это исключено.
sr. member
Activity: 377
Merit: 282
Finis coronat opus
Интересная тема обсуждения.
Все здесь обсуждали LOCKTIMEVERIFY скрипт, изначальный, когда при формировании транзакции можно использовать поле locktime с указанием количества блоков или времени для ожидания. Но как правильно заметили, такую транзакцию раньше времени нельзя будет отправить майнерам (раньше, кстати, было можно. До 2012-2013). Недостаток такого метода в том, что кроме приватного ключа получателя, наследник должен хранить и саму транзакцию до нужного времени.

А почему бы не использовать два более продвинутых варианта, например CLTV или CSV?
Их транзакции вполне себе майнятся майнерами, просто вы не сможете потратить их раньше указанного блока/времени, но при этом вам не нужно будет хранить транзакцию до времени X.

Вот примерно так будет выглядеть с CLTV:

Code:
OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

Проверяется время с помощью OP_CHECKLOCKTIMEVERIFY и далее уже или выдается ошибка (если false) или идет дальнейшая работа по скрипту (если true).

CSV или OP_CHECKSEQUENCEVERIFY еще более интересный скрипт, так как позволяет создавать более усложненные условия, вплоть до целых смарт контрактов. BIP112 (https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki) дает вот такой пример

Code:
IF
        2 3 CHECKMULTISIG
    ELSE
        "30d" CHECKSEQUENCEVERIFY DROP
        CHECKSIG
    ENDIF

Тоесть, если люди не тратят до определенного числа, то включается новое условие. Такое же вполне реально можно сделать и для завщения. Ничего сложного нет.
Pages:
Jump to: