Bitcoin Forum
May 08, 2024, 06:43:54 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Уязвимость bitcoin протокола?  (Read 609 times)
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
April 07, 2016, 07:49:17 PM
 #1

Прочитал в доках формат в котором отправляется raw-транзакция: https://en.bitcoin.it/wiki/Protocol_documentation#Transaction_Verification
Получается, что когда я отправляю транзакцию в сеть, то все ноды могут видеть мою подпись под входами...

Возникла мысль: если в сети появится нода, которая будет оставлять мою подпись (не менять scriptSig), а вместо моих выходов писать свои (менять scriptPubKey)... Если эта нода оставит большую комиссию для майнера, то с большей вероятностью эта подделанная транзакция и будет включена в блок и мои деньги уйдут мошеннику!

Я не вижу в протоколе никакой защиты от такой подделки. Может я не туда смотрю или чего-то недопонимаю?

OpenTrade - Open Source Cryptocurrency Exchange
You get merit points when someone likes your post enough to give you some. And for every 2 merit points you receive, you can send 1 merit point to someone else!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715150634
Hero Member
*
Offline Offline

Posts: 1715150634

View Profile Personal Message (Offline)

Ignore
1715150634
Reply with quote  #2

1715150634
Report to moderator
1715150634
Hero Member
*
Offline Offline

Posts: 1715150634

View Profile Personal Message (Offline)

Ignore
1715150634
Reply with quote  #2

1715150634
Report to moderator
1715150634
Hero Member
*
Offline Offline

Posts: 1715150634

View Profile Personal Message (Offline)

Ignore
1715150634
Reply with quote  #2

1715150634
Report to moderator
Vadi2323
Legendary
*
Offline Offline

Activity: 2044
Merit: 1231


View Profile
April 08, 2016, 09:18:37 AM
 #2

Сумма запирающего и отпирающего скриптов выдаст FALSE и мошенник пойдёт лесом. Транзакция валидацию не пройдёт.

Долго объяснять, можешь почитать тут, в разделе "Transaction Scripts and Script Language"
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
April 08, 2016, 09:46:54 AM
 #3

Сумма запирающего и отпирающего скриптов выдаст FALSE и мошенник пойдёт лесом.

Объясните на примере если не сложно?
Вот транзакция: https://blockchain.info/ru/tx/acde538ceab00a0a1f7ff7a13df4f33351e85afa186255a095e3c2c235b438d8
Один вход, 100500 выходов.
Если хакерская нода прежде чем релеить такую транзакцию поменяет половину исходящих скриптов на свой скрипт, то почему этот новый скрипт вернет FALSE?


OpenTrade - Open Source Cryptocurrency Exchange
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
April 08, 2016, 12:11:08 PM
Last edit: April 08, 2016, 01:30:42 PM by kzv
 #4

В английской ветке сказали, что scriptSig содержит подпись хэша транзакции, поэтому если в транзакции что-то поменять, то ее придется переподписывать.
Вот нашел в доках:
Quote
More precisely, the second component is an ECDSA signature over a hash of a simplified version of the transaction. It, combined with the public key, proves the transaction was created by the real owner of the address in question. Various flags define how the transaction is simplified and can be used to create different types of payment.

Пишут, что есть какая-то упрощенная версия транзакции, от которой берется хэш и этот хэш подписывается.
Где-то есть описание этой "упрощенной версии"? И про какие еще дополнительные флаги идет речь? Где-то еще про них написано?

PS однако из других доков следует, что кто-то меня обманывает.
https://bitcoin.org/en/developer-examples#offline-signing



Ясно видно, что подписывается только публичный скрипт предыдущей транзакции, а скрипт новой транзакции и сама транзакция остаются неподписанными и уязвимыми к изменению  Sad

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!