Bitcoin Forum
November 24, 2017, 06:57:18 PM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Уязвимость bitcoin протокола?  (Read 551 times)
kzv
Hero Member
*****
Offline Offline

Activity: 714


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

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

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

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

Vote for Marycoin: https://www.livecoin.net/voting/index?vote=Marycoin
Donate Marycoin project development: MS12okFu6D3FzBi2fTsmGEa6iQV9h31txe
1511549838
Hero Member
*
Offline Offline

Posts: 1511549838

View Profile Personal Message (Offline)

Ignore
1511549838
Reply with quote  #2

1511549838
Report to moderator
1511549838
Hero Member
*
Offline Offline

Posts: 1511549838

View Profile Personal Message (Offline)

Ignore
1511549838
Reply with quote  #2

1511549838
Report to moderator
1511549838
Hero Member
*
Offline Offline

Posts: 1511549838

View Profile Personal Message (Offline)

Ignore
1511549838
Reply with quote  #2

1511549838
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Vadi2323
Hero Member
*****
Offline Offline

Activity: 868


💰🎮⚽


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

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

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

BitSend ◢◤Clients | Source
www.bitsend.info
█▄
█████▄
████████▄
███████████▄
██████████████
███████████▀
████████▀
█████▀
█▀












Segwit | Core 0.14 | Masternodes
XEVAN | DK3 | Electrum soon
Bitcore - BTX/BTC -Project












BSD -USDT | Bittrex | C.Gather | S.Exchange
Cryptopia | NovaExchange | Livecoin
Litebit.eu | Faucet | Bitsend Airdrop













████
 ████
  ████
   ████
    ████
     ████
      ████
       ████
        ████
       ████
      ████
     ████
    ████
   ████
  ████
 ████
████

████
 ████
  ████
   ████
    ████
     ████
      ████
       ████
        ████
       ████
      ████
     ████
    ████
   ████
  ████
 ████
████
kzv
Hero Member
*****
Offline Offline

Activity: 714


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

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

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


Vote for Marycoin: https://www.livecoin.net/voting/index?vote=Marycoin
Donate Marycoin project development: MS12okFu6D3FzBi2fTsmGEa6iQV9h31txe
kzv
Hero Member
*****
Offline Offline

Activity: 714


View Profile WWW
April 08, 2016, 12:11:08 PM
 #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

Vote for Marycoin: https://www.livecoin.net/voting/index?vote=Marycoin
Donate Marycoin project development: MS12okFu6D3FzBi2fTsmGEa6iQV9h31txe
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!