Как фальшивая цепочка обрабатывается в биткойнах?

Интересно, как следующий сценарий обрабатывается в биткойнах / криптовалютах: Скажем, у Evilminer 10% мощности майнинга монеты, и он тайно добывает блоки, в то время как реальная цепочка растет с 900 до 1000. Он начинает с поддельного блока 995 и останавливается на блоке 1005. На Blockheight 1000 (настоящая цепочка) он публикует его фальшивая цепочка. Теперь узел будет запрашивать / получать следующий блок. И теперь он получит блок номер 1001 от evilminer.

Что этот узел будет с этим делать? Я думаю, чтобы узнать, была ли цепочка, созданная evilminer для доказательства ошибочной или истинной, ему пришлось бы загрузить блоки с 1000 по 95, чтобы, наконец, увидеть, что блок 95 был фальшивым.

Это правильно или есть другой способ обработки этого узла?

Это вопрос не о программировании. Вы можете получить помощь на нашем дочернем сайте Биткойн.

Michael Hampton 25.10.2018 17:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
152
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ситуация, о которой вы сказали, никогда не возникнет.

  1. Если вы хотите, чтобы ваша цепочка была самой длинной, вам необходимо иметь более 50 процентов мощности майнинга, таким образом, когда-нибудь в будущем вы в конечном итоге догоните основную цепочку и превзойдете ее. Скорость наверстывания будет зависеть от того, сколько у вас больше 50 процентов. Эта атака работает, потому что таким образом вы превзошли любых других потенциальных майнеров в скорости создания новых блоков, поэтому вы всегда производите блоки быстрее, чем кто-либо другой в сети, что гарантирует, что ваша цепочка станет самой длинной.

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

Следовательно, короче говоря, единственный способ, которым злой майнер может заставить другие узлы принимать его блоки, - это сделать свою цепочку самой длинной, и это может быть сделано только в том случае, если у него более 50 процентов мощности майнинга сети.

Изменить 1: Рассмотрим вычислительную мощность каждого участника сети и предположим, что когда вы суммируете их, вы получаете 100. Теперь, если у вас есть 10 процентов от этой суммы, это означает, что ваша вероятность найти новый блок выше, чем у других, у которых меньше вычислений. власть, чем ты. Однако это не гарантирует, что вы обязательно найдете одноразовый номер первым.

Нахождение хэша, удовлетворяющего сложности, зависит от вероятности. Вы перебираете большой набор чисел, пока ваш хеш не удовлетворит сложность. Возможно, что кто-то, имеющий всего 0,5 процента общей вычислительной мощности, первым обнаружит одноразовый номер. Однако чем быстрее вы сможете вычислить эти числа, тем выше шанс, что вы первым найдете одноразовый номер.

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

Кроме того, этот процесс поиска одноразового номера повторяется для каждого блока. Так что для каждого блока работу нужно проделывать заново.

Хорошо, но как доказывается майнинговая мощность ЦЕПИ? Я знаю, что для блоков есть сложность, которая устанавливается каждые 2016 блоков, но для цепочки ??

user3776738 25.10.2018 11:32

@ user3776738 сложность блока определяет количество требуемой мощности для майнинга. Вычислительная мощность, которую вы вкладываете в поиск хэша для блока, является мерой вашей мощности майнинга. Наличие 51% означает, что у вас больше вычислительной мощности, чем у всей сети вместе взятой. Проверьте это для инфографического объяснения того же.

arjunkhera 25.10.2018 14:06

Но если он использует ту же сложность, что и основная цепочка, значит, его 10 блоков имеют такую ​​же вычислительную мощность, необходимую для того, чтобы быть законными, как и другие блоки. В каждом блоке должно быть что-то, что вычисляет сложность всех блоков вместе. Таким образом, n-й блок должен иметь сложность всех предыдущих блоков + n-й блок. Я не знаю, что такое поле в заголовке блока.

user3776738 25.10.2018 14:47

@ user3776738 Похоже, вы не знаете, как работает биткойн. Вы прочитали статью, на которую я ссылаюсь?

arjunkhera 25.10.2018 14:53

Я просто не понимаю, как нельзя подделать высоту блока. Если кто-то утверждает, что это блок номер 1001, как вы можете доказать, что он ошибается, потому что может случиться так, что ваша цепочка - неправильная цепочка, поэтому вы должны ее проверить, Правильно?

user3776738 25.10.2018 14:55

Что вы имеете в виду под претензией? Вы в курсе, как блок добавляется в цепочку?

arjunkhera 25.10.2018 14:56

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

arjunkhera 25.10.2018 15:00

Да, но вы можете добывать этот блок с мощностью хеширования 10% в 10 раз. Это то, что я имел в виду, когда майнил блоки с 995 по 1005, в то время как основная цепочка добывает от 900 до 1000.

user3776738 25.10.2018 15:02

@ user3776738 проверьте отредактированный ответ. Если у вас есть другие вопросы, я перенесу это обсуждение в чат, поскольку это политика SO, чтобы предотвратить расширенные обсуждения в чате.

arjunkhera 25.10.2018 15:15

Извините, но вы так и не поняли мой вопрос.

user3776738 25.10.2018 15:20

Позвольте нам продолжить обсуждение в чате.

arjunkhera 25.10.2018 15:21

Другие вопросы по теме