Bitcoin Forum
December 18, 2017, 01:56:43 PM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Зачем проверяются блоки сначала  (Read 621 times)
Alda Gordaya
Member
**
Offline Offline

Activity: 65



View Profile
January 27, 2013, 03:43:57 AM
 #1

Зачем проверяются блоки сначала и проверка затрагивает каждый блок (а не некоторые выборочно)?

ведь у новичка пустой кошелёк - и ему не важно, чтобы были проверены все транзакции.
Ему надо, чтобы была проверена одна транзакция, которая переводит ему деньги.

Можно ли сократить время проверки, если проверять только эту транзакцию и те транзакции, на которые она ссылается входами?
1513605403
Hero Member
*
Offline Offline

Posts: 1513605403

View Profile Personal Message (Offline)

Ignore
1513605403
Reply with quote  #2

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

Posts: 1513605403

View Profile Personal Message (Offline)

Ignore
1513605403
Reply with quote  #2

1513605403
Report to moderator
1513605403
Hero Member
*
Offline Offline

Posts: 1513605403

View Profile Personal Message (Offline)

Ignore
1513605403
Reply with quote  #2

1513605403
Report to moderator
Yurock
Sr. Member
****
Offline Offline

Activity: 462


View Profile
January 27, 2013, 06:48:57 AM
 #2

Чтобы проверить блок, надо проверить все транзакци в блоке и наличие prev_block в цепочке. Чтобы убедиться, что prev_block есть в цепочке, его тоже надо проверить. И далее по рекурсии до самого первого блока, который проверяется другим способом – его хеш считается общеизвестным и зашит в программу.

Большинству пользователей не обязательно загружать и проверять всю историю транзакций. Любая транзакция может быть проверена по заголовкам блоков и хешам Merkle Tree. Программе, не проверяющей историю, могут быть подсунуты заголовки фальшивых блоков. Однако, чтобы окупить создание, скажем, 6 фальшивых заголовков, надо кого-то кинуть на крупную сумму. Большинство пользователей не имеют столько битков.
Alda Gordaya
Member
**
Offline Offline

Activity: 65



View Profile
January 27, 2013, 08:39:45 AM
 #3

Чтобы проверить блок, надо проверить все транзакци в блоке и наличие prev_block в цепочке.

почему? Нам надо проверять не блок, а транзакцию.

это значит, что нужно убедиться, что
1) блок принадлежит длиннейшей цепочке
2) контрольная сумма блока посчитана правильно

1) можно сделать поопрашивав соседей (есть же 5 подтверждений)
2) контрольные суммы всех заголовков блоков можно все посчитать, не проверяя однако при этом все транзакции

Любая транзакция может быть проверена по заголовкам блоков и хешам Merkle Tree.

непонятна эта фраза. вроде как это то же самое, что написано выше, но нет уверенности


А почему нельзя проверять с хвоста к началу до последнего блока с чекпоинтом?
т.е. все транзакции, входящие в блоки ранее блока с чекпоинтом считать проверенными другим механизмом (цифровой подписью при распространению части цепочки)
а детально проверять только последние блоки с конца?
или биткоин-клиент теперь так и работает?
Yurock
Sr. Member
****
Offline Offline

Activity: 462


View Profile
January 27, 2013, 08:55:51 AM
 #4

Нам надо проверять не блок, а транзакцию.
Чтобы проверить транзакцию, надо проверить все "входы". Каждый "вход" должен быть связан с "выходом" действительной прошлой транзакции. В данном случае, действительная транзакция – это транзакция включённая в действительный блок. Вот здесь -то и требуетя проверка всех блоков. Кроме того, чтобы проверить неподтверждённую транзакцию (которая ещё не включена в блок) надо убедиться, что её "входы" ещё не были использованы в прошлых транзакциях, для чего нужна база всех транзакций или база всех непотраченных выходов.

А почему нельзя проверять с хвоста к началу до последнего блока с чекпоинтом?
Думаю, можно. Полная база нужна, в основном, для проверки неподтверждённых транзакций.
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!