Jump to content
Sign in to follow this  
nikkolo

Идентификация блоков

Recommended Posts

Каждый блок который хранится на узле и идентифицируется своим хешем, что делается и делается ли вообще для решения проблемы когда два разных блока имеют одинаковый хеш? При запросе блока с определенным хешем возвращается два и более? В книге Mastering Bitcoin не нашел ответа, сомневаюсь что это не предусмотрено. Я представляю как можно решить эту проблему, но хотелось поинтересоваться как это реализовано в Bitcoin.

Share this post


Link to post
Share on other sites

Кто первый, тот и прав, а второй - становится orphan.

Share this post


Link to post
Share on other sites
7 минут назад, Lexis77 сказал:

Кто первый, тот и прав, а второй - становится orphan.

Я думал что это относится к ситуации разветвления, а в ситуации когда разветвления нет и блок валидный просто необходимый ему идентификатор на узле занят. И даже если это так, то каким образом добавить блок, изменять его и искать другой nonce? 

Share this post


Link to post
Share on other sites

Все правильно сказали. Если на узел пришло два разных блока с одинаковым номером, это и есть ветвление.

 

Bitcoin-Blockchain-fork.png

 

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

 

Bitcoin-blockchain-merge.png

 

 

 

Share this post


Link to post
Share on other sites

 

Позволю себе вставить код из книжки Mastering Bitcoin:

$ bitcoin-cli getblockhash 277316
0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4
$ bitcoin-cli getblock
0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4

 

{
"hash" : "0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4", #### Вот про этот хеш я говорю
"confirmations" : 35561,
"size" : 218629,
"height" : 277316,
"version" : 2,
"merkleroot" :
"c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e",
"tx" : [
"d5ada064c6417ca25c4308bd158c34b77e1c0eca2a73cda16c737e7424afba2f",
"b268b45c59b39d759614757718b9918caf0ba9d97c56f3b91956ff877c503fbe",
... еще 417 транзакций ...
],
"time" : 1388185914,
"nonce" : 924591752,
"bits" : "1903a30c",
"difficulty" : 1180923195.25802612,
"chainwork" : "000000000000000000000000000000000000000000000934695e92aaf53afa1a",
"previousblockhash" :
"0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569",
"nextblockhash" :
"000000000000000010236c269dd6ed714dd5db39d36b33959079d78dfd431ba7"
}

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

Edited by nikkolo

Share this post


Link to post
Share on other sites
7 минут назад, nikkolo сказал:

 

Позволю себе вставить код из книжки Mastering Bitcoin:

$ bitcoin-cli getblockhash 277316
0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4
$ bitcoin-cli getblock
0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4

 

{
"hash" : "0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4", #### Вот про этот хеш я говорю
"confirmations" : 35561,
"size" : 218629,
"height" : 277316,
"version" : 2,
"merkleroot" :
"c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e",
"tx" : [
"d5ada064c6417ca25c4308bd158c34b77e1c0eca2a73cda16c737e7424afba2f",
"b268b45c59b39d759614757718b9918caf0ba9d97c56f3b91956ff877c503fbe",
... еще 417 транзакций ...
],
"time" : 1388185914,
"nonce" : 924591752,
"bits" : "1903a30c",
"difficulty" : 1180923195.25802612,
"chainwork" : "000000000000000000000000000000000000000000000934695e92aaf53afa1a",
"previousblockhash" :
"0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569",
"nextblockhash" :
"000000000000000010236c269dd6ed714dd5db39d36b33959079d78dfd431ba7"
}

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

А вы о каком случае говорите? Что 2 блока с одинаковым хешем пришло? Это невозможно, при изменении хотябы одного бита данных в блоке изменится не менее половины всех битов результирующего хеша этого блока, читаем лавинный эффейкт, криптография 1й класс. Еще минусов понаставили, офигеть :rtfm:

 

 

Share this post


Link to post
Share on other sites
1 час назад, nikkolo сказал:

При запросе блока с определенным хешем возвращается два и более? В книге Mastering Bitcoin не нашел ответа, сомневаюсь что это не предусмотрено

Точно не знаю, но это вполне может не быть предусмотрено. Дело в том, что хеш из 256 бит, возможных хешей 2**256=115792089237316195423570985008687907853269984665640564039457584007913129639936, а блоков не так уж и много - около полумиллиона. Вероятность того, что хеши у блоков совпадут, очень мала.

 

Можем даже посчитать, сколько лет понадобится сегодняшней сети биткоина, если вместо обычной работы она будет искать блоки с совпадающими хешами. Текущий хешрейт сети 25*10**18 хеш/сек, 2**128 вместо 2**256 из-за  "парадокса дней рождения". Считаем: 2**128/(25*10**18)/60/60/24/365=431611322832 лет!

Edited by sankopolo

Share this post


Link to post
Share on other sites
2 минуты назад, vvvb1 сказал:

А вы о каком случае говорите? Что 2 блока с одинаковым хешем пришло? Это невозможно, при изменении хотябы одного бита данных в блоке изменится не менее половины всех битов результирующего хеша этого блока, читаем лавинный эффейкт, криптография 1й класс. Еще минусов понаставили, офигеть :rtfm:

 

 

Ой я специально минусов не ставил

А как отменить?

Edited by nikkolo

Share this post


Link to post
Share on other sites

ага,

 

18 минут назад, sankopolo сказал:

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

431,611322832 млрд лет!

 возраст Вселенной — 14 млрд лет.

 

18 минут назад, nikkolo сказал:

Ой я специально минусов не ставил

А как отменить?

 

кликнуть по стрелки и вбрать зеленую вместо красной

aaf82893c043d33c456f88e5271e4a6a.jpeg

 

Edited by vvvb1

Share this post


Link to post
Share on other sites

large.5ab2afc0735c3_.PNG.be47395fdcefd6c2c80a2e908cc28787.PNG

29 минут назад, vvvb1 сказал:

ага,

 

 возраст Вселенной — 14 млрд лет.

 

 

кликнуть по стрелки и вбрать зеленую вместо красной

aaf82893c043d33c456f88e5271e4a6a.jpeg

Я или слепой или их у меня нет

Как я её нажал если её нет?)))

Edited by nikkolo

Share this post


Link to post
Share on other sites

Спасибо большое за разъяснения, извините за минус я правда не понимаю куда я кликнул на форме что он появился.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Topics

    • Атака на блокчейн Tron остановила создание блоков на два часа

      Блокчейн Tron был атакован во время обновления утром 2 ноября – создание блоков приостановилось на два часа. Разработчики устранили уязвимость и восстановили работу сети. Как сообщил в серии записей в Твиттере генеральный директор Tron Джастин Сан (Justin Sun), во время обновления блокчейна Tron до версии 4.1 основная сеть «была атакована вредоносным контрактом». По словам Сана, злоумышленник инициировал вредоносные транзакции, в результате чего «суперпредставитель приостановил создание б

      in Новости криптовалют

    • Google Cloud стал кандидатом в производители блоков в сети EOS

      Облачный провайдер Google Cloud присоединился к сообществу EOS и пополнил ряды кандидатов в производители блоков этой сети. На фоне это новости курс EOS прибавил более 10%. Создатели блоков — один из ключевых элементов экосистемы EOS, а взаимодействие с такими провайдерами как Google Cloud – важное событие в истории проекта. Google Cloud считается одним из мировых лидеров технологических инноваций, поэтому привлечение такого крупного партнера будет способствовать внедрению блокчейна на ко

      in Новости криптовалют

    • MyEtherWallet запустил собственный обозреватель блоков Эфириума

      Популярный кошелек MyEtherWallet запустил собственный обозреватель блоков Эфириума с открытым исходным кодом. Новый сервис EthVM должен стать более удобным и прозрачным обозревателем по сравнению с проектами Etherscan и Ethplorer. Разработчикам будет проще учитывать пожелания пользователей и, возможно, создавать новые решения на базе EthVM. В статье в блоге MyEtherWallet подчеркивается:   «Прошло более пяти лет с момента создания MyEtherWallet. Теперь он стал целой платформой, на

      in Новости криптовалют

    • SmartID - идентификация кошельков Яндекс.Деньги онлайн

      Уважаемые форумчане! Наш партнёр SmartID совместно с платёжной системой Яндекс.Деньги запустили сервис по онлайн-идентификации кошельков.   На сегодняшний день услуга доступна владельцам карт следующих украинских банков: «ПриватБанк», «А-Банк», «Банк Пивденный», «Банк Конкорд», «ПУМБ».   Преймущества: -вся процедура занимает не более 10 минут; -кошелёк мгновенно получает статус "Идентифицированный".   На данный момент SmartID работает в режиме BETA, поэтому

      in Электронные деньги

    • Латиноамериканские производители блоков EOS создали альянс LatamLink

      Производители блоков EOS Costa Rica, EOS Argentina и EOS Venezuela сформировали альянс LatamLink для расширенного внедрения блокчейна EOS в Латинской Америке. Производители блоков выполняют функцию валидаторов в блокчейне EOS, подтверждая транзакции. Это возможно лишь при использовании механизма консенсуса делегированного доказательства доли (DPoS) – одной из разновидностей алгоритма консенсуса Proof-of-Stake (PoS).    Альянс был сформирован для создания тестовой сети, обладающей п

      in Новости криптовалют

×
×
  • Create New...