Почему узлы доверяют другим узлам утверждение их транзакций?

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

Следовательно, если транзакция происходит, все внутри сети должны «одобрить» транзакцию, чтобы выполнить ее.

Эти другие участники затем рассматриваются как надежные источники.

Однако что делает их надежными источниками? Допустим, участников всего три, двое совершают транзакцию и один должен решить, приемлема сделка или нет (делает клиринг). Что делает его надежным источником?

Верны ли эти мысли или где я ошибаюсь?

Я ценю ваши ответы!

Можете ли вы уточнить, что вы подразумеваете под «эти другие участники затем рассматриваются как надежные источники»? Как вы думаете, что им доверяют делать или не делать?

Ответы (3)

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

Да, у каждого полного биткойн-узла есть копия блокчейна (также известная как бухгалтерская книга).

Следовательно, если транзакция происходит, все внутри сети должны «одобрить» транзакцию, чтобы выполнить ее.

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

Эти другие участники затем рассматриваются как надежные источники.

Однако что делает их доверенными источниками. Допустим, есть только три участника, двое совершают транзакцию, а один должен решить, успешна транзакция или нет (делает клиринг). Что делает его надежным источником?

Никто не считается надежным источником. Биткойн допускает ненадежные транзакции. Если у нас есть 1000 биткойн-узлов в сети, и пользователь A совершает транзакцию, которая отправляет некоторое количество монет пользователю B, все 1000 биткойн-узлов подтвердят транзакцию. Затем, когда добытый блок будет распространен, все 1000 узлов снова проверят его. Обратите внимание, что пользователи A и B могут сами запускать или не запускать полный биткойн-узел.

Надеюсь, это немного прояснит ситуацию.

Спасибо за отличный ответ! Что вы имеете в виду all 1000 users will validate the transaction? Как они это подтверждают?
@Kare, все 1000 биткойн-узлов проверят правильность транзакции в соответствии с установленными правилами протокола . Например, если пользователь A попытается отправить 5 биткойнов пользователю B, он убедится, что вы контролируете биткойн-адреса, которые содержат биткойны, которые вы пытаетесь отправить, а также убедится, что биткойны, которые вы пытаетесь отправить, для отправки не больше биткойнов, содержащихся в ваших адресах (например, в случае, если у вас есть 2 биткойна, но вы пытаетесь отправить 5) и т. д. Проверьте ссылку на правила выше, чтобы узнать больше.
Спасибо за ваш ответ! Хорошо, я понял эту часть. Таким образом, сеть в основном проверяет транзакцию. Но когда блок добавляется в цепочку, победитель «лотереи» в основном решает, какой блок добавить в цепочку. Разве он не может решить, что в цепочку добавляется мошенническая проблема? Ценю ваш ответ!
Майнер, успешно добывший следующий блок (ему удалось решить сложную задачу, которая также требует удачи, таким образом, победитель «лотереи»), распространяет свой блок на все остальные биткойн-узлы. Затем все остальные узлы проверяют правильность решения проблемы, проверяют блок, как мы упоминали выше, и добавляют этот блок в свою локальную копию блокчейна. Если победитель добавит еще один блок в свою копию блокчейна, он будет несовместим с остальной частью сети и вскоре, для упрощения, будет проигнорирован.

все внутри сети должны «одобрить» транзакцию, чтобы сделать это.

Я думаю, что "одобрить" - не лучший выбор слов. Они только проверяют, действительна ли транзакция или нет, одобрение не требуется.

Чтобы объяснить на вашем примере с тремя участниками:

У Алисы, Боба и Чарли есть копии блокчейна. Алиса хочет отправить биткойны Бобу.
Применяются два условия:

  • У Алисы должно быть достаточно биткойнов для финансирования транзакции.
  • Транзакция должна иметь действительную подпись.

Когда Алиса транслирует свою транзакцию, все (Алиса, Боб и Чарли) могут проверить, доступны ли деньги, потому что транзакция указывает, какие монеты тратятся.
Кроме того, каждый может проверить, действительна ли подпись, потому что она может быть произведена только владельцем указанных биткойнов. Каждый пользователь сам немедленно отклонит транзакцию, если подпись недействительна или когда недостаточно средств.

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

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

Спасибо за ваш ответ! Есть ли блок-схема, описывающая этот процесс?
@Murch, то, что вы говорите, правильно, хотя UTXO смутит пользователя, который только начинает учиться. Однако я хочу перефразировать ваш вывод (я знаю, что вы имеете в виду, но я просто чувствую, что это может сбить с толку): вы доверяете алгоритмическому выполнению протокола биткойна, который обеспечивает консенсус между большинством «копий» блокчейна. Вы можете доверять своему собственному блокчейну, но остальная часть сети может не доверять.
@Kare: зацените это: Spectre.ieee.org/image/MjA3NDM1OA
@karask: Спасибо за отзыв, как это?

В первую очередь нужно понимать, что использование Биткойна вообще никем не контролируется, поэтому нет возможности проверить честность кого-либо, использующего технологию Биткойн. Имея это в виду, всегда следует быть осторожным при совершении сделок. Люди, которые успешно совершают много транзакций, считаются заслуживающими доверия (технически), но всегда есть шанс, что это изменится. Это на самом деле то же самое, что и в реальной жизни, например, когда вы заказываете что-то по почте, вы полагаетесь на доверие. Чем больше людей заказывают у одной и той же компании, тем выше будет доверие, но, как и в случае с биткойнами, это доверие может быть подорвано по многим причинам. Время, в которое мы живем, является поистине болезненным периодом в истории человечества. Так много людей пытаются обмануть друг друга любым возможным способом, включая правительства, банки и т. д. Короче говоря: вы не можете никому доверять на 100%, поэтому забудьте о доверии и будьте осторожны при отправке больших сумм биткойнов. Если вам нужно совершить крупную транзакцию с кем-то, кого вы не знаете, вы должны попытаться найти историю транзакций этого человека. Вы можете проверить информацию о блокчейне для транзакций этого человека, чтобы получить более точную оценку того, насколько надежным может быть этот человек. Я надеюсь, что этот ответ прояснил ваши вопросы.

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