Я знаю, что доказательство работы показывает, что человек потратил некоторое время и силы на обработку. Я также знаю, что майнинг биткойнов добавляет транзакцию в блокчейн, а затем майнеру нужно будет решить проблему с pow.
Почему нам это надо? Что, если мы исключим этап доказательства работы для майнеров, и каковы будут последствия этого?
Представьте, что у меня есть 1 биткойн. И представьте, что я могу сформировать транзакцию, чтобы отправить этот биткойн Алисе, или я могу сформировать транзакцию, чтобы отправить этот биткойн Чарли.
Что мешает мне оформить обе сделки? Ничего такого.
Итак, если я это сделаю, как люди узнают, какая транзакция действительна? Очевидно, что без надежного способа определить, какая из этих двух транзакций действительна, система обречена.
Это то, что делает PoW. Майнер не может вносить PoW в обе транзакции одновременно — он должен выбрать одну.
Доказательство работы (PoW) в основном гарантирует, что майнеры не мошенничают.
Невозможно быть уверенным, что все в сети честны, поэтому должен быть какой-то способ помешать майнерам создавать новые блоки, которые приносят им выгоду. Это работает следующим образом: у вас есть группа людей, пытающихся угадать ответ на математическую задачу, и никто не знает, кто первым даст правильный ответ. Тот, кто первым получит правильный ответ, получит вознаграждение, но только в том случае, если все остальные майнеры согласятся принять эту запись транзакции (если станет очевидным, что определенный майнер создает мошеннические транзакции, тогда другие майнеры могут коллективно отказаться принимать свои взносы). Вот почему процесс создания нового блока спроектирован так, чтобы быть энергоемким, так что создание каждого нового блока связано с затратами. Это не позволяет майнерам просто создавать целую кучу новых мошеннических блоков в надежде, что, возможно, они будут приняты, потому что затраты на это компенсируют потенциальное вознаграждение. Это помогает думать о доказательстве работы как о возможном решении спама в электронной почте. Если бы требовалось, чтобы каждый компьютер потратил минуту на решение проблемы PoW перед отправкой каждого письма, то только люди с подлинными сообщениями согласились бы затратить усилия. Одна минута компьютерного времени стоит очень дешево для человека, но парень, рассылающий 10 миллионов спам-писем, не может позволить себе ждать 10 миллионов минут, чтобы сделать это. Итак, возвращаясь к биткойну, шанс каждого отдельного майнера решить каждый блок довольно мал, и, поскольку для решения блоков требуется много усилий, они не могут просто спамить сеть решениями.
Надеюсь, это имеет смысл.
Это лучшая разбивка, которую я смог найти ( http://nakamotoinstitute.org/mempool/the-proof-of-work-concept/ )
delaying mechanism
. Таким образом, это заставляет всех медлить и делать паузы. И раз эта обязательная задержка есть, каблам, то получается последовательное упорядочение. Я не уверен, что в этом весь смысл. Я только начал читать на Mastering Bitcoin
прошлой неделе. Пожалуйста, поправьте меня, если я ошибаюсь.То, как я понимаю, как работает доказательство работы ( PoW ), таково: его основная цель — предотвратить мошенничество или создание противоречивого представления о распределенном реестре.
Представьте себе сценарий двойной траты , когда участник А может потратить только 1 БК. Но, он создает две независимые транзакции или «тратит» на каждую по 1 БК. Затем он представляет каждую расходную транзакцию двум разным сторонам B и C как действительные платежи. Поскольку нет понятия сериализации транзакций (как это было бы в централизованной базе данных с атомарными фиксациями), возможно, что некоторые участники сети сначала записали платеж A в адрес B , в то время как другие записали платеж A. сначала на С. В то же время некоторые в конечном итоге откажутся от последнего платежа (поскольку А может потратить только 1 БК).
В идеальном мире, если обе транзакции могут быть строго сериализованы (как, например , платеж А в адрес Б будет записан в распределенном реестре до того , как может быть записан дублирующий платеж А в адрес С ), не будет необходимости в распределенный консенсус. В идеальном мире, где время транзакций может быть отмечено с помощью «центральных» часов, видимых каждому участнику, у нас было бы простое решение.
Процесс PoW решает эту проблему алгоритмически , устанавливая нетривиальную конечную задержку для отправки и фиксации блока транзакций. В схеме биткойнов, где транзакции должны совершаться с детализацией на уровне блоков , транзакция двойного расхода А имеет две возможности:
В последнем случае несоответствие легко обнаруживается и помечается. В первом случае также легко обнаружить несоответствие и пометить одно и то же, но это возможно сделать только тогда, когда обе транзакции (хорошая и плохая) сгруппированы в одном блоке. Это невозможно, если размеры блоков слишком малы или могут быть зафиксированы узлами очень быстро. Вот где PoW пригодится — он требует достаточно времени, чтобы составить новый блок и зафиксировать его всеми участниками.
Вопрос, который мне не был ясен, заключается в следующем: Биткойн использует определенный вариант вычисления прообраза хеш-значения SHA-256. Поскольку цель PoW состоит только в том, чтобы отсрочить создание новых блоков на достаточное время, эта головоломка для решения может быть любой — как, например, решение проблемы размещения 16 ферзей на шахматной доске или что-то в этом роде. Неясно, действительно ли головоломка должна иметь корреляцию с фактическими данными в фиксируемом блоке.
Без подтверждения работы любой может начать с блока генезиса и создать длинную цепочку поддельных транзакций. Как определить, какой регистр является правильным?
Здесь в игру вступает доказательство работы. Узлы принимают цепочку, для создания которой потребовалось больше всего усилий, и отвергают все остальные. Это сильно стимулирует майнеров к построению существующей цепочки, а также затрудняет создание поддельной цепочки. Чтобы создать фальшивую цепочку, противник должен работать быстрее, а также должен догнать остальную часть сети, чтобы его фальшивая цепочка была принята, что практически невозможно для устоявшихся криптовалют, таких как биткойн.
короткий ответ :
доказательство работы — это защита и решение византийской общей проблемы, без которого майнеры легко мошенничают, ничего не теряя, поэтому они устанавливают эту систему POW, чтобы заставить участников терять деньги, если они мошенничают (вы теряете вложенные деньги в процессе POW (расход электроэнергии и бесполезно вложенный бюджет в железо)) вместо этого у вас есть стимул, если вы не обманываете. Помимо того, что POW используется для управления временными окнами добычи (10 минут), мы можем контролировать сложность, чтобы сделать добычу легкой или сложной.
Он предоставляет Доказательство консенсуса между узлами Биткойн, которое устанавливает действительность любого данного блока, если на нем есть около 6 блоков, добытых поверх него, и это самая длинная цепочка в сети.
Поскольку добыча блоков требует больших вычислительных ресурсов, маловероятно, что один майнер сможет добывать несколько блоков подряд. Остальная часть сообщества майнеров будет добывать блоки намного быстрее и создавать более длинную цепочку.
Таким образом, при заданном блоке А, чтобы иметь 6 блоков, добытых выше блока А в самой длинной цепочке, большой процент майнеров в сообществе майнеров биткойнов должен работать над цепочкой, включающей блок А.
Тот факт, что было доказано, что так много майнеров работают над цепочкой, включающей блок A, означает, что сообщество пришло к консенсусу в отношении того, что блок A является действительным блоком.
Таким образом, Доказательство консенсуса было достигнуто.
Зачем нужно это Доказательство консенсуса? Он защищает цепочку блоков от разветвления (преднамеренного или непреднамеренного). Другие ответы описывают, почему кто-то может попытаться намеренно разветвить блокчейн (см. сценарий «Двойная трата»).
брек
I also know that bitcoin mining is adding a transaction into the blockchain and then the miner will need to solve a pow problem.
Майнинг — это создание блока транзакций и, если повезет, решение проблемы PoW для этого блока до того, как какой-либо другой майнер добавит блок, а затем добавит блок в цепочку блоков.Марч