lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
May 12, 2018, 12:29:07 PM |
|
если вам грустно, не значит, что грустно всем. О, детсадовское " самдурак", кто бы сомневалсо. вы молодец, держитесь до последнего, так и продолжайте если кто-то имеет более длинную цепочку и верные nonce, то принимаем его цепочку
Не, я всё равно не понимаю, как определить, с какого блока начинается альтернативная цепочка. Рассмотрим ситуацию. Китайцы решили добывать кальмаров, путём подрыва глубоководных ядерных фугасов. Капитан рыболовецкого судна "Хуй На Буй" перепутал координаты сброса фугаса, в результате чего, взрывом был повреждён подводный кабель, соединяющий Азию с Северной и Южной Америками. Связь Азии с Америками была прервана на 26 минут, столько времени понадобилось для создания альтернативного маршрута через Австралию. Кроме того, канал Европа - Азия оказался перегружен, из-за попыток перенаправить траффик из Азии в Америку через Европу. Связь между Европой Азией в это время была неустойчивой. До момента разрыва связи нода колумбийского председателя колхоза, занимающегося выращиванием коки, Педро Хуэреса, и нода его японского контрагента Тамо Херовато содержат одинаковые цепочки с последним блоком №100. жжошь если кто-то имеет более длинную цепочку и верные nonce, то принимаем его цепочку
Теперь получается, что и у Педро Хуэреса есть цепочка 100 - 101 - 102 - 103 и у Тамо Херовато есть цепочка 100 - 101 - 102 - 103, в которой блоки 100 и 103 - одинаковые, а блоки 101 и 102 - разные. Это какая-то лажа получается. Что делать? Связывать блоки друг с другом криптографически при помощи PoW. А что изменится если ты криптографически их соединишь? Вот у Педро Хуэреса есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом. Тамо Херовато есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом, в которой блоки 100 и 103 - одинаковые, а блоки 101 и 102 - разные. Что делать будешь? POW это вычисление nonce числа, где хеш вычисления от сообщения выглядит определенным образом. Что тебе мешает вычислять сам блок с транзакциями с помощью POW и не связывать его с предыдущим блоком хеш фукцией? Правильный ответ: тебе что хеш функции жалко? ps: ладно, блокчейн наше все, я так ради интереса завел дискуссию. можно закрывать. В действительно много косяков будет вскрываться, если такая система будет работать в реале.
|
|
|
|
A-Bolt
Legendary
Offline
Activity: 2335
Merit: 2384
|
|
May 12, 2018, 01:25:06 PM |
|
Вот у Педро Хуэреса есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом. Тамо Херовато есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом, в которой блоки 100 и 103 - одинаковые, а блоки 101 и 102 - разные. Что делать будешь?
Педро Хуэрес получает блоки 101 и 102 от slushpool.com, проверяет, что 101 ссылается на 100, а 102 на 101 и добавляет эти блоки в свою основную цепочку. Когда ему приходят блоки 101 и 102 от viabtc.com, он проверят, что 101 ссылается на 100, а 102 на 101, но это уже не те блоки, что есть в основной цепочке, а значит из них можно составить альтернативную цепочку с точкой разветвления на блоке 100. Дальше считается совокупная сложность основной и альтернативной цепочек: суммируются сложности блоков 101 и 102 в основной и альтернативной цепочках, и где сумма получается меньше, та цепочка и отбрасывается. Но, допустим, в нашем случае сложность не менялась, и совокупные сложности в обеих цепочках получились одинаковые. Поэтому, ничего Педро Хуэрес не отбрасывает, а ждёт следующего блока. Приходит блок 103 от viabtc.com. Педро Хуэрес точно знает из какой он цепочки, потому что блок 103 хранит хеш конкретного блока 102 из альтернативной цепочки. Теперь у Педро Хуэреса есть две цепочки разной длины: основная 101 - 102, и альтернативная 101 - 102 -103. Выживает длиннейшая (по совокупной сложности) цепочка, поэтому блоки 101 и 102 от slushpool.com выкидываются, а альтернативная цепочка 101 - 102 - 103 от viabtc.com становится основной. Как этот фокус проделать, если в блоке не будет храниться ссылка на предыдущий блок - я не в курсе.
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
May 12, 2018, 08:39:20 PM |
|
Вот у Педро Хуэреса есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом. Тамо Херовато есть цепочка 100 - 101 - 102 - 103 соединеная криптографически стоким хешом, в которой блоки 100 и 103 - одинаковые, а блоки 101 и 102 - разные. Что делать будешь?
Педро Хуэрес получает блоки 101 и 102 от slushpool.com, проверяет, что 101 ссылается на 100, а 102 на 101 и добавляет эти блоки в свою основную цепочку. Когда ему приходят блоки 101 и 102 от viabtc.com, он проверят, что 101 ссылается на 100, а 102 на 101, но это уже не те блоки, что есть в основной цепочке, а значит из них можно составить альтернативную цепочку с точкой разветвления на блоке 100. Дальше считается совокупная сложность основной и альтернативной цепочек: суммируются сложности блоков 101 и 102 в основной и альтернативной цепочках, и где сумма получается меньше, та цепочка и отбрасывается. Но, допустим, в нашем случае сложность не менялась, и совокупные сложности в обеих цепочках получились одинаковые. Поэтому, ничего Педро Хуэрес не отбрасывает, а ждёт следующего блока. Приходит блок 103 от viabtc.com. Педро Хуэрес точно знает из какой он цепочки, потому что блок 103 хранит хеш конкретного блока 102 из альтернативной цепочки. Теперь у Педро Хуэреса есть две цепочки разной длины: основная 101 - 102, и альтернативная 101 - 102 -103. Выживает длиннейшая (по совокупной сложности) цепочка, поэтому блоки 101 и 102 от slushpool.com выкидываются, а альтернативная цепочка 101 - 102 - 103 от viabtc.com становится основной. Как этот фокус проделать, если в блоке не будет храниться ссылка на предыдущий блок - я не в курсе. 1. вы принцип работы pow понимаете? pow в текущем блоке перебирает nonce, до тех пор пока хеш блока не будет иметь в начале N нулей. так проверяется блок на валидность и соединяется с предыдущим блоком. 2. альтернативная цепочка отбрасывается, если она не самая длинная, это ответ на вопрос " Как этот фокус проделать, если в блоке не будет храниться ссылка на предыдущий блок - я не в курсе." нода 1: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) нода 2: блок 100 (nonce 11111) - блок 101 (nonce 88888) - блок 102 (nonce 99999) нода 3: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) - блок 103 (nonce 44444) result:нода 2 принимает длинную цепочку по правилам сети: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) - блок 103 (nonce 44444)
|
|
|
|
A-Bolt
Legendary
Offline
Activity: 2335
Merit: 2384
|
|
May 12, 2018, 10:23:02 PM |
|
1. вы принцип работы pow понимаете? pow в текущем блоке перебирает nonce, до тех пор пока хеш блока не будет иметь в начале N нулей. так проверяется блок на валидность
Чтобы проверить блок на валидность, не нужно перебирать noncе. Нужно просто вычислить хеш блока и проверить его на соответствие алгоритму изменения сложности (на количество тех самых N нулевых бит). Перебирать noncе нужно при создании нового блока. Создание блока и его валидация - это совершенно разные операции. и соединяется с предыдущим блоком.
Чтобы текущий блок соединить с предыдущим, необходимо, чтобы на вход хеш-функции вместе с noncе подавался ещё и хеш предыдущего блока. Если вы с этим не согласны, то что вы вкладываете в понятие "соединяется с предыдущим блоком"? альтернативная цепочка отбрасывается, если она не самая длинная, это ответ на вопрос "Как этот фокус проделать, если в блоке не будет храниться ссылка на предыдущий блок - я не в курсе."
нода 1: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) нода 2: блок 100 (nonce 11111) - блок 101 (nonce 88888) - блок 102 (nonce 99999) нода 3: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) - блок 103 (nonce 44444) result: нода 2 принимает длинную цепочку по правилам сети: блок 100 (nonce 11111) - блок 101 (nonce 22222) - блок 102 (nonce 33333) - блок 103 (nonce 44444)
Чтобы отбросить альтернативную цепочку или принять её в качестве основной , нода должна её сначала составить из отдельно поступающих блоков. Вот, поступил на ноду 2 блок 103 (nonce 44444). Как этой ноде понять, что предыдущий блок для этого блока - это блок 102 (nonce 33333), а не блок 102 (nonce 99999)?
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 13, 2018, 09:53:32 AM |
|
вы молодец, держитесь до последнего, так и продолжайте Да помилуйте, какое "держитесь" - тут чисто медицинское любопытство. Вот вы, я вижу, словарик юного либерала детсадовских отвечалок плотно скурили. Просто любопытно, а своими словами умеете? (Впрочем, не трудитесь - из дискуссии вижу, что нет.)
|
|
|
|
Vtools
|
|
May 13, 2018, 04:18:50 PM |
|
Да помилуйте, какое "держитесь" - тут чисто медицинское любопытство. Вот вы, я вижу, словарик юного либерала детсадовских отвечалок плотно скурили. Просто любопытно, а своими словами умеете? (Впрочем, не трудитесь - из дискуссии вижу, что нет.)
Жесть. Зачем вы здесь?
|
• Restart of the TERA project in 2022 •
|
|
|
rumkin
Jr. Member
Offline
Activity: 54
Merit: 1
|
|
May 13, 2018, 06:14:46 PM |
|
Жесть. Зачем вы здесь?
Будьте добры, не забивайте топик выяснением отношений.
|
Blockchain Developer | https://rumk.in
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 13, 2018, 09:22:08 PM |
|
Да помилуйте, какое "держитесь" - тут чисто медицинское любопытство. Вот вы, я вижу, словарик юного либерала детсадовских отвечалок плотно скурили. Просто любопытно, а своими словами умеете? (Впрочем, не трудитесь - из дискуссии вижу, что нет.)
Жесть. Зачем вы здесь? Так ведь, я одному из поциентов (да, тепрь их оба-два) задал вопрос по теме, на который он не ответил - а между тем, он из этих своих неотвеченных вопросов продолжает строить доказательсва, что блохчейнюбераллес. Ну а потом, невежливо же сразу посылать на йух аффтора, когда он вполне культурно к тебе обращается. Вот, как вы, например.
|
|
|
|
Coin-1
Legendary
Offline
Activity: 2632
Merit: 2304
|
|
May 14, 2018, 03:15:34 PM |
|
1. вы принцип работы pow понимаете? pow в текущем блоке перебирает nonce, до тех пор пока хеш блока не будет иметь в начале N нулей. так проверяется блок на валидность и соединяется с предыдущим блоком. Дело в том, что на вход хеш-функции подаётся не только nonce, но и хеш предыдущего блока. Таким образом, получается цепочка блоков, связность которой можно легко проверить. 2. альтернативная цепочка отбрасывается, если она не самая длинная
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 15, 2018, 09:31:14 AM |
|
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы. Сразу возникает вопрос: как эта затраченная работа суммируется? Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью?
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
May 15, 2018, 01:43:01 PM |
|
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы. Сразу возникает вопрос: как эта затраченная работа суммируется? Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью? Нет. Затраченная работа суммируется в блоках как неделимых еденицах, сложность которых, или количество нулей в них, может быть каким угодно, но не может быть меньше таргета сложности алгоритма консенсуса по которому строится блокчейн.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 15, 2018, 02:02:30 PM |
|
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы. Сразу возникает вопрос: как эта затраченная работа суммируется? Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью? Нет. Затраченная работа суммируется в блоках как неделимых еденицах, сложность которых, или количество нулей в них, может быть каким угодно, но не может быть меньше таргета сложности алгоритма консенсуса по которому строится блокчейн. То есть, предыдущий автор был не совсем прав. Тогда другой вопрос: откуда берётся "таргет сложности" "исторических" блоков? Т.е., я взял и начал переписывать блохчейн с начала: переписал почти весь на околонулевой сложности, а последних пару блоков - на текущей, и мой блохчейн получился длинее и толще. Или не получился?
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
May 15, 2018, 02:57:25 PM |
|
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы. Сразу возникает вопрос: как эта затраченная работа суммируется? Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью? Нет. Затраченная работа суммируется в блоках как неделимых еденицах, сложность которых, или количество нулей в них, может быть каким угодно, но не может быть меньше таргета сложности алгоритма консенсуса по которому строится блокчейн. То есть, предыдущий автор был не совсем прав. Тогда другой вопрос: откуда берётся "таргет сложности" "исторических" блоков? Т.е., я взял и начал переписывать блохчейн с начала: переписал почти весь на околонулевой сложности, а последних пару блоков - на текущей, и мой блохчейн получился длинее и толще. Или не получился? Не получился. В биткоине сложность пересчитывается каждые 2016 блоков - https://bitcoinwisdom.com/bitcoin/difficultyЭти 2016 блоков должны быть найдены в течении 2 недель. Если это количество находится быстрее 2 недель - сложность увеличивается; если медленнее - уменьшается. Это нужно для того, что бы средний промежуток времени между блоками соответствовал 10 минутам. Таким образом если первые 2016 блоков околонулевой сложности находятся за минуты, то для нахождения уже следующих 2016 блоков при таком же хешрейте потребуется охулион лет времени или что то близкое к этому. Предыдущий автор прав.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 15, 2018, 03:20:15 PM |
|
Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы. Сразу возникает вопрос: как эта затраченная работа суммируется? Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью? Нет. Затраченная работа суммируется в блоках как неделимых еденицах, сложность которых, или количество нулей в них, может быть каким угодно, но не может быть меньше таргета сложности алгоритма консенсуса по которому строится блокчейн. То есть, предыдущий автор был не совсем прав. Тогда другой вопрос: откуда берётся "таргет сложности" "исторических" блоков? Т.е., я взял и начал переписывать блохчейн с начала: переписал почти весь на околонулевой сложности, а последних пару блоков - на текущей, и мой блохчейн получился длинее и толще. Или не получился? Не получился. В биткоине сложность пересчитывается каждые 2016 блоков - https://bitcoinwisdom.com/bitcoin/difficultyЭти 2016 блоков должны быть найдены в течении 2 недель. Если это количество находится быстрее 2 недель - сложность увеличивается; если медленнее - уменьшается. Это нужно для того, что бы средний промежуток времени между блоками соответствовал 10 минутам. Таким образом если первые 2016 блоков околонулевой сложности находятся за минуты, то для нахождения уже следующих 2016 блоков при таком же хешрейте потребуется охулион лет времени или что то близкое к этому. Предыдущий автор прав. Ну вы ж понимаете (ну, я надеюсь), что таймстамп-то можно любой поставить.
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
May 15, 2018, 05:16:58 PM Last edit: May 15, 2018, 05:39:59 PM by neiros |
|
Ну вы ж понимаете (ну, я надеюсь), что таймстамп-то можно любой поставить.
Я то понимаю, что некоторые здесь продвинуты настолько, что одной лишь только мыслью меняют любые законы мироздания... Но таймстамп здесь совсем не причём. Время здесь какое угодно можно поставить - http://90.188.88.19:3001/api/getblock?hash=0000004c78b0c1e7ae15911172ae15c3dc1768c0ed9c44226733ab2ff35caafeАлгоритм работы от этого нисколько не поменяется. P.S. Хотя, если подумать, то в каком то смысле это некоторая теоретическая уязвимость, которую вполне возможно реализовать на практике...
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 15, 2018, 08:41:05 PM |
|
Я то понимаю, что некоторые здесь продвинуты настолько, что одной лишь только мыслью меняют любые законы мироздания... О, как. Ну точно, как я и предполагал: святой блохчейн нам даден свыше, божественный и непогрешимый. (Или дадён, как правильно-то?) Алгоритм работы от этого нисколько не поменяется. "Алгоритм работы" - это что, какая-то старуха с клюкой, как говаривал тов. Преображенский? Которая приходит, и гадит в сортирах "работает"...?
|
|
|
|
lapitsky (OP)
Member
Offline
Activity: 202
Merit: 27
Atom foundation
|
|
May 15, 2018, 11:39:05 PM |
|
Чтобы проверить блок на валидность, не нужно перебирать noncе. Нужно просто вычислить хеш блока и проверить его на соответствие алгоритму изменения сложности (на количество тех самых N нулевых бит). Перебирать noncе нужно при создании нового блока. Создание блока и его валидация - это совершенно разные операции.
Чтобы проверить блок на валидность, не нужно перебирать noncе. - это да, а как другие участники сети проверят? вы же отправляете доказательство работы, а это и есть nonce. А nonce перебирать надо, чтобы выполнить определенную сложность работы, получить нужный хеш и отправить всем доказательство. Создание блока и его валидация - это совершенно разные операции.
Я и говорю, валидация может быть по проверке подписей внутри блока, создание блока по pow. отправка всем доказательства. все Чтобы текущий блок соединить с предыдущим, необходимо, чтобы на вход хеш-функции вместе с noncе подавался ещё и хеш предыдущего блока. Если вы с этим не согласны, то что вы вкладываете в понятие "соединяется с предыдущим блоком"?
можно просто создавать следующий блок n+1, проводить pow блока, достигать консенсуса в сети. Чтобы отбросить альтернативную цепочку или принять её в качестве основной , нода должна её сначала составить из отдельно поступающих блоков. Вот, поступил на ноду 2 блок 103 (nonce 44444). Как этой ноде понять, что предыдущий блок для этого блока - это блок 102 (nonce 33333), а не блок 102 (nonce 99999)?
а как это происходит в биткони? так же и тут. Пример с битка: Вот, поступил на ноду 2 блок 103 (nonce 44444 + хеш блока 102). Как этой ноде понять, что предыдущий блок для этого блока - это блок 102 (nonce 33333 + хеш блока 101), а не блок 102 (nonce 99999 + хеш блока 101)? вы молодец, держитесь до последнего, так и продолжайте Да помилуйте, какое "держитесь" - тут чисто медицинское любопытство. Вот вы, я вижу, словарик юного либерала детсадовских отвечалок плотно скурили. Просто любопытно, а своими словами умеете? (Впрочем, не трудитесь - из дискуссии вижу, что нет.) Я смотрю вы окулист, раз так много видите нюансов. Хорошо, что на форуме есть такие важные профессии. Хотите показаться умным? Пока производите впечатление зануды, ну давайте дальше, нам не жалко. Так ведь, я одному из поциентов (да, тепрь их оба-два) задал вопрос
если бы вы были внимательны, то прочитали ответ на свой вопрос, в ответе другому собеседнику. можете общаться у себя в голове и ждать ответа на свой вопрос. свой горящий пукан можешь успокоить, ветку завел интереса ради, а не для способа доказать свою правоту Главная цепочка должна быть не только длиннее по количеству блоков, чем конкурирующая, но на неё ещё дожно быть затрачено больше работы.
Да, нет никаких противоречий. Я так понимаю сложность работы это динамический показатель, который пересчитывается системой и не связана с самой базой блокчейн Скажем, лишний ноль в хэше - грубо соответствует в два раза большей сложности. Т.е., если мне повезло намайнить лишних 4 нуля - магнолия могу ли я одним таким блоком заорфанить три других, с обычной сложностью?
Дааа, и ты тут еще пациентов ищешь?)
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
May 16, 2018, 01:38:02 AM |
|
Я то понимаю, что некоторые здесь продвинуты настолько, что одной лишь только мыслью меняют любые законы мироздания... О, как. Ну точно, как я и предполагал: святой блохчейн нам даден свыше, божественный и непогрешимый. (Или дадён, как правильно-то?) Всё тобой написанное или сказанное в ту же секунду автоматически становится правильным. По-моему мало уже у кого остались на счёт этого какие-либо сомнения.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 16, 2018, 08:48:29 AM |
|
Всё тобой написанное или сказанное в ту же секунду автоматически становится правильным. Тут ведь какое дело: в этой теме я пока что, в основном, задавал вопросы. А неправильными неудобные для них вопросы - они обычно да, только с точки зрения сектантов и бывают. В некоторых других темах - я давал ссылки на сторонние работы. Ну, и на педивикию, куда ж без неё.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 16, 2018, 08:57:31 AM |
|
... Пока производите впечатление зануды... если бы вы были внимательны, то прочитали ответ на свой вопрос, в ответе другому собеседнику. Вот если бы ВЫ были внимательны, а не занимались выяснением, кто какое впечатление производит или у кого какие пуканы - то заметили бы, что спрашивал я совсем не это, да и автор изначально утверждал одно, а потом ловко подменил своё утверждение совершенно другим. Поэтому для отставших от поезда торопыг вопрос не жалко и повторить: а в биткойне как нода определяет, какая транзакция "правильная", а какая - нет, при получении одновременно двух разных транзакций с одного выхода, ещё не включенных в блок? свой горящий пукан можешь успокоить О чём бы человек не говорил - он всегда говорит о себе(с) не помню, кто.
|
|
|
|
|