Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
7 августа 2014, 7:08:37 PM   # 1
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Всем привет,

Недавно я попал в сцену развития Bitcoin и пытаюсь очень трудно понять, как сделки начала. Я использую вики Bitcoin, а также следующее руководство для ознакомления: https://bitcoin.org/en/developer-guide#transactions

Мне было интересно, если кто-нибудь может помочь мне пройти через мою логику (ниже), и указать, какие недоразумения я могу иметь. Любая помощь приветствуется!

Ради понимания, давайте предположим, что отправитель Алиса, и приемник Боб.

1) Приемник (Боб) должен сгенерировать закрытый ключ, и, следовательно, открытый ключ, и, следовательно, Bitcoin адрес (который является pubkeyhash?). Он посылает Алисе (отправителя).

2) Алиса должна подписать ее UTXOs (неизрасходованные выходы) с помощью своего закрытого ключа (с помощью ECDSA подписать?) И добавить свою подпись (от того, что я понимаю, подпись сделана из P2SH или P2PKH сценариев, но то, что делает "присоединять" имею в виду?).

3) Она также добавляет адрес Боба к ее выходам данных ему (опять же, что делает "присоединять" значит, технически?).

4) Она передает это к сети Bitcoin и один раз шахтер проверяет, что это было на самом деле ее UTXO использовать, сделка сама по себе проверено.

5) Боб теперь имеет свой UXTO потратить. Это где я запутаться. Как Боб доказать, что это его UTXO сейчас? Так как это было Алиса, кто его подписал, как он это доказать?

Прошу прощения, если это может показаться тривиальным для некоторых из вас, но для меня, новичка, все это очень сбивает с толку. Я был бы признателен за любую помощь, которую вы, ребята, можете сэкономить. Заранее спасибо!
nickp3 сейчас офлайн Пожаловаться на nickp3   Ответить с цитированием Мультицитирование сообщения от nickp3 Быстрый ответ на сообщение nickp3


Как заработать Биткоины?
Без вложений. Не майнинг.


7 августа 2014, 7:41:21 PM   # 2
 
 
Сообщений: 96
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Получил 1806 Биткоинов
Реальная история.





Это осложняется тем, что p2pkh, p2pk, p2sh сделки являются лишь подмножеством всех действительных сделок.
Вы можете пойти на много глубины здесь, на самом деле.

5) Боб теперь имеет свой UXTO потратить. Это где я запутаться. Как Боб доказать, что это его UTXO сейчас? Так как это было Алиса, кто его подписал, как он это доказать?

Входы транзакций «решены» и подписаны Элис. В случае расточных операций, как правило, означает решение доказав у вас есть ключ и подписать с ним.

Выходы также подписаны Элис; поэтому они не могут быть изменены без своего закрытого ключа.

Выходы содержат условия для их расходов; "Если вы можете решить этот сценарий, он твой.
В случае ОЙ оплаты за Публичные, решение «примерно», чтобы подписать вход с закрытым ключом, соответствующего этому Публичным.
Обращайте к Публичному-хэшу; знак ввод с помощью закрытого ключа, который соответствует Публичных, что хэш-хэш заданной.

Боб «доказывает, что это его UTXO», потому что он может подписать с Публичным, что Алиса решила бы условие расходов. (Перед началом мероприятия Потратьте, никто на самом деле «не имеет» выход На самом деле, «собственность», возможно, некорректная аналогия вообще, здесь,. Вы можете произвести UTXO что это unspendable).

Техническое описание:
Выходы содержат поле scriptPubKey.
Входы содержат поле scriptSig и ссылку на предыдущий вывод.
Условием действительности входа является то, что Exec (scriptSig + scriptPubKey) == True.
azeteki сейчас офлайн Пожаловаться на azeteki   Ответить с цитированием Мультицитирование сообщения от azeteki Быстрый ответ на сообщение azeteki

7 августа 2014, 8:42:55 PM   # 3
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Спасибо за ответ azeteki,

Из того, что я понимаю, что вы сказали, в основном потому, что Алиса (отправитель) прилагается (приемник) адрес Боба (и, следовательно, открытый ключ) к выходам. Если он может затем, подписать выходы (в настоящее время считаются входами для своей следующей сделки) с его открытым ключом, то он сможет потратить? Я был в предположении, что вы можете подписать только с закрытым ключом?

Входы (относительно расходов сделки Боба с кем-то еще), решаются Алисе (как выходы их обмена)?

И, наконец, по-вашему, если я просто пытаюсь реализовать функцию для создания транзакции, будет p2pkh быть самый простой способ создания действительного сделки? Еще раз спасибо! Я действительно ценю любую помощь!
nickp3 сейчас офлайн Пожаловаться на nickp3   Ответить с цитированием Мультицитирование сообщения от nickp3 Быстрый ответ на сообщение nickp3

7 августа 2014, 9:07:21 PM   # 4
 
 
Сообщений: 96
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Из того, что я понимаю, что вы сказали, в основном потому, что Алиса (отправитель) прилагается (приемник) адрес Боба (и, следовательно, открытый ключ) к выходам. Если он может затем, подписать выходы (в настоящее время считаются входами для своей следующей сделки) с его открытым ключом, то он сможет потратить? Я был в предположении, что вы можете подписать только с закрытым ключом?

Рассмотрим вывод, как "головоломка будет решена.

Алиса создает свою сделку и гарантирует, что выход головоломка только разрешим Бобом.

Вот псевдо пример достаточной головоломки;

Должна быть предусмотрена подпись. Эта подпись должна быть проверяемой по Y. открытого ключа

Единственный способ (посильнее) продукция сказал подпись, будет находиться в распоряжении секретного ключа X, который соответствует открытому ключу Y.

Алиса знает открытый ключ Боба. Или же, она знает, что хэш его публичного ключа (1 ... адрес).

Но она не знает своего закрытого ключа.

Головоломка реализуется на практике с использованием опкодов Script.

Цитата: bitcoin_it_wiki
Стандартная сделка по Bitcoin адресу (оплата за Публичным-хэш)

scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
scriptSig: <сиг> <Публичных>

Обратите внимание, что они распределены по двум сделкам.

scriptPubKey является частью вывода, в TX 1.
scriptSig является частью входного сигнала, в ОМ 2. Входной ссылается на соответствующий выходе в TX 1.

То есть; Алиса производит scriptPubKey. Боб производит scriptSig.

Алиса знает , Это просто декодируется Bitcoin адрес. Так что она может сделать scriptPubKey.
То, что она и никто другой, но Боб может сделать, это предоставить scriptSig. Боб является единственным, что может привести к действительному <сиг>,

Боб является единственным, кто может потратить на выход. Это равносильно тому, что он единственный, с возможностью получения соответствующего действительного ввода.
azeteki сейчас офлайн Пожаловаться на azeteki   Ответить с цитированием Мультицитирование сообщения от azeteki Быстрый ответ на сообщение azeteki

7 августа 2014, 9:44:39 PM   # 5
 
 
Сообщений: 96
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Обратите внимание, что подпись scriptSig не подписывала только входы.
Насколько мне известно, вся сделка будет подписана (за исключением других подписей, потому что это было бы рекурсивным).

Выходы должны включены в подписи тоже (с правильным ключом, как описано на входе), так как в противном случае злоумышленник может повторно использовать входную подпись Боба и изменить выходы.
azeteki сейчас офлайн Пожаловаться на azeteki   Ответить с цитированием Мультицитирование сообщения от azeteki Быстрый ответ на сообщение azeteki

7 августа 2014, 11:30:41 PM   # 6
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Таким образом, в tx2, Боб создает подпись (scriptSig), который базируется на его закрытый ключ. ScriptSig может быть использован для входа входов, а также всю транзакцию (как в целом блок транзакции? Или другие элементы этого блока?).

Алиса уже создала scriptPubKey из TX1, содержащий открытый ключ Боба (или его pubkeyhash).

В tx2, Боба scriptSig должна произвести значение проверяемого по pubkeyHash (из TX1). На более низком уровне, его подпись сравнивается с его открытым ключом от pubkeyhash?

Кроме того, когда вы заявили: "Выходы должны включены в подписи тоже (с правильным ключом, как описано на входе), так как в противном случае злоумышленник может повторно использовать входную подпись Боба и изменить выходы."
Выходы (я предполагаю, что большое число, подобные адреса), которые встроены в scriptSig, а? Но я предполагаю, что есть подпись часть scriptSig, что подписывает сделку?

Таким образом, как правило, выходы к Бобу содержат scriptPubKey от отправителя (Alice). Для использования в качестве входов и используется, приемник (Боб) должны производить scriptSig, который удовлетворяет scriptPubKey. Таким образом, в контексте его расходов на третий человек, он должен приложить новый scriptPubKey к этому входу (стать выходом в tx2)? И третий человек должен производить sigScript3rd, чтобы быть в состоянии провести его?


Спасибо за вашу помощь еще раз. Прошу прощения, если это может показаться немного медленно.
nickp3 сейчас офлайн Пожаловаться на nickp3   Ответить с цитированием Мультицитирование сообщения от nickp3 Быстрый ответ на сообщение nickp3

7 августа 2014, 11:58:21 PM   # 7
 
 
Сообщений: 96
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Вот что сделка выглядит, интерпретирована с https://bitcoin.it/wiki/Transactions.

Зачистка из метаданные, которые на самом деле не актуальны:

вход 0
вход 1
вход 2
...
входной п

выход 0
выход 1
выход 2
...
выход п

Вот и все. Остальные биты перечислены на вики, но они не очень актуальны здесь.
Хэшировано, все ТЙ имеет «TXID». И каждый выход пронумерован.

Вход обычно выглядит как это:

prev_txid: Vout scriptSig

где prev_txid = предыдущая сделка, Vout = предыдущий выход, и scriptSig = решение scriptPubKey этого предыдущего выхода.

Выход обычно выглядит как это:
значение scriptPubKey

где значение = количество подлежащих передаче, и scriptPubKey = «на» головоломку, которую необходимо решить с помощью входа, который впоследствии может пожелать, чтобы погасить его.

«В контексте Боб расходов на третий человек»: он создает совершенно новую транзакцию и эта формулировка начинает все сначала. Его входы выходы предыдущей транзакции, его выходы, что он хочет (например, расходы на третий человек).

Я предлагаю вам прочитать страницу вики о сделках; в противном случае, кажется, что вы пытаетесь изобрести велосипед

scriptSig это не подпись ECDSA. Это решение головоломки scriptPubKey; подпись в общем смысле.
Сценарий не должен требовать подписи ECDSA на всех; но в большинстве случаев они используются, чтобы другие модификации сделки до ее включения в блок.
Bitcoin сценарий действительно достаточно мощный. Я советую читать вышеуказанную связанную страницу и ограничивая себя в конкретных случаях на первый, а не пытаться понять всю модель.
azeteki сейчас офлайн Пожаловаться на azeteki   Ответить с цитированием Мультицитирование сообщения от azeteki Быстрый ответ на сообщение azeteki

8 августа 2014, 10:32:13 AM   # 8
 
 
Сообщения: 1260
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

котировка
5) Боб теперь имеет свой UXTO потратить. Это где я запутаться. Как Боб доказать, что это его UTXO сейчас? Так как это было Алиса, кто его подписал, как он это доказать?

Боб также проверяет все транзакции. Если он-лайн - он получит сделку Алисы дважды - первый раз в "дикий" состояние, и во-вторых, включенных в блок. Боб знает его адрес и фильтрует все операции ищут средства, посланные к нему. Это "клиент синхронизации"

Так, Боб уверен, что Алиса послала ему деньги. И все в сети, кто знает Bobs адрес также можно проверить.

Но реальное доказательство будет, когда Боб будет посылать эти биткоен Чарли
amaclin сейчас офлайн Пожаловаться на amaclin   Ответить с цитированием Мультицитирование сообщения от amaclin Быстрый ответ на сообщение amaclin

8 августа 2014, 11:47:59 PM   # 9
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

azeteki, спасибо за упрощение его для меня. Я ценю ваши последовательно подробные ответы 
Я бы потерял, когда я сначала попытался прочитать эту страницу. Таким образом, в основном, scriptPubKey была предоставлена ​​Алисе в качестве выхода из TX1 и Боба, желая провести его, необходимо обеспечить его scriptSig как вход в tx2 (для третьего человека - Чарли).

amaclin, спасибо за пробили в и помогать. Так, насколько я понимаю, вы говорите, что Боб видит сделку Алисы ему изначально, но видит его снова, когда он становится "официальный" когда он включен в блок (блок транзакции в блоке цепи я полагаю?). реальное доказательство Боба приходит, когда он пытается отправить его Чарли - через средство обеспечения его scriptSig на вход (соответствует выходу его сделки с Алисой)?

Еще раз спасибо вам обоим.
nickp3 сейчас офлайн Пожаловаться на nickp3   Ответить с цитированием Мультицитирование сообщения от nickp3 Быстрый ответ на сообщение nickp3

9 августа 2014, 6:50:32 AM   # 10
 
 
Сообщения: 141
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

реальное доказательство Боба приходит, когда он пытается отправить его Чарли - через средство обеспечения его scriptSig на вход (соответствует выходу его сделки с Алисой)?

Да, вы его получили.
Как azeteki писал: Боб «доказывает, что это его UTXO», потому что он может подписать с Публичным, что Алиса решила бы условие расходов. (Перед началом мероприятия Потратьте, никто на самом деле «не имеет» выход На самом деле, «собственность», возможно, некорректная аналогия вообще, здесь,. Вы можете произвести UTXO что это unspendable).
раппорт сейчас офлайн Пожаловаться на раппорт   Ответить с цитированием Мультицитирование сообщения от раппорт Быстрый ответ на сообщение раппорт

14 августа 2014, 12:36:49 AM   # 11
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Спасибо вам всем за наш вклад! За последние несколько дней изучения, я [думаю, что я] понять все основы сделок сейчас Я действительно ценю это.

Я не начинаю знакомиться с процессом написания сценариев. Я понимаю, что scriptPubKey устанавливает условия, которые необходимо решить с помощью scriptSig. Я также понимаю, что существуют различные способы сделать это. Вот стандартный один я нашел на вики: https://en.bitcoin.it/wiki/Script#Standard_Generation_Transaction_.28pay-to-pubkey.29

Один перед ним, P2PKH кажется намного сложнее. https://en.bitcoin.it/wiki/Script#Standard_Transaction_to_Bitcoin_address_.28pay-to-pubkey-hash.29

Мой вопрос, есть преимущество, которое P2PKH предлагает более Стандарт с точкой зрения безопасности? Если бы я пытался реализовать свою собственную транзакцию, которая одна я должен следовать? Благодаря передовой за любую помощь!
nickp3 сейчас офлайн Пожаловаться на nickp3   Ответить с цитированием Мультицитирование сообщения от nickp3 Быстрый ответ на сообщение nickp3

14 августа 2014, 6:05:14 AM   # 12
 
 
Сообщения: 141
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Спасибо вам всем за наш вклад! За последние несколько дней изучения, я [думаю, что я] понять все основы сделок сейчас Я действительно ценю это.

Я не начинаю знакомиться с процессом написания сценариев. Я понимаю, что scriptPubKey устанавливает условия, которые необходимо решить с помощью scriptSig. Я также понимаю, что существуют различные способы сделать это. Вот стандартный один я нашел на вики: https://en.bitcoin.it/wiki/Script#Standard_Generation_Transaction_.28pay-to-pubkey.29

Один перед ним, P2PKH кажется намного сложнее. https://en.bitcoin.it/wiki/Script#Standard_Transaction_to_Bitcoin_address_.28pay-to-pubkey-hash.29

Мой вопрос, есть преимущество, которое P2PKH предлагает более Стандарт с точкой зрения безопасности? Если бы я пытался реализовать свою собственную транзакцию, которая одна я должен следовать? Благодаря передовой за любую помощь!

На самом деле вы увидите, что P2PKH является гораздо более распространенным, чем P2PK.
Вы должны использовать P2PKH над P2PK. P2PKH скрывает открытый ключ, пока вы не потратите. Это более безопасно, чем P2PK: в будущем, если есть способ, чтобы вычислить privkey от Публичных, используя pubkeyhash добавит дополнительный шаг, поскольку взлом потребует перехода от pubkeyhash->pubkey->privkey. (Другие могут быть написано / объяснено лучше)
раппорт сейчас офлайн Пожаловаться на раппорт   Ответить с цитированием Мультицитирование сообщения от раппорт Быстрый ответ на сообщение раппорт

21 августа 2014, 12:14:50 AM   # 13
 
 
Сообщения: 696
Цитировать по имени
цитировать ответ
по умолчанию Re: высокий уровень Bitcoin понимания сделки

Спасибо за это описание. Я очень рад, чтобы найти эти разработчик руководство, связанное в этой теме. Теперь время, чтобы закончить его изучение!
медицина сейчас офлайн Пожаловаться на лекарства   Ответить с цитированием Мультицитирование сообщения от медицины Быстрый ответ на сообщение медицины



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW