Почему всегда есть неподтвержденные транзакции?

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

Тем не менее, все еще есть некоторые транзакции, которые нелегко подтвердить (или вообще не подтвердить) в биткойнах .

Может ли кто-нибудь объяснить мне, почему это может произойти? Это из-за какого-то механизма выбора транзакций, который используют майнеры? или это из-за ненадежности соединения между узлами? или что-то другое?

Ответы (3)

Жизненный цикл транзакции выглядит следующим образом:

  1. Создание транзакции:
    отправитель создает транзакцию, включает список получателей, определяет, какие предыдущую транзакцию вывести, и подписывает ее. Разница между общей суммой вывода и общей суммой ввода определяет комиссию за транзакцию.
  2. Ретрансляция:
    отправитель отправляет транзакцию в сеть Биткойн. Он просто отправляет его своим сверстникам, которые, в свою очередь, передают его своим. В конце концов транзакция будет видна всем, поскольку она распространяется по сети.
  3. Выбор транзакции:
    из всех транзакций, о которых в настоящее время знает майнер («мемпул»), каждый майнер выбирает подмножество, которое он хочет включить в блок. Обычно они включают столько, сколько разрешено (1 МБ), и выбирают для получения наибольшего дохода для себя (сначала самая высокая плата). Тем не менее, майнерам разрешено делать любой выбор, даже если они вообще не включают транзакции (кроме требуемой транзакции coinbase).
  4. Обнаружение блока:
    примерно каждые десять минут одному из майнеров удается создать блок. Этот блок подтверждает транзакции, которые он ранее выбрал, записывая их в блокчейн (при условии, что этот блок оказывается частью цепочки с наибольшей работой). Этот блок, в свою очередь, ретранслируется по сети для обновления всех узлов нового состояния сети. В этот момент платеж считается совершенным (с высокой степенью уверенности, хотя несколько лишних подтверждений не помешают).

Существует несколько причин, по которым транзакция не может быть подтверждена:

  1. Транзакция недействительна, например, из-за расходования недоступных денег, неправильного формата, конфликта с подтвержденной транзакцией или неверной подписи. Узлы не будут передавать недействительные транзакции, а если они уже есть, удалять их из своего мемпула.
  2. Транзакция не ретранслируется. Это происходит, например, когда комиссия за транзакцию ниже, чем minRelayTxFeeу партнеров отправителя. Отправители не добавят такую ​​транзакцию в свой мемпул и не будут ретранслировать ее.
  3. Транзакция не выбирается для шаблонов блоков. Если транзакция не входит в топ-1 МБ по ставке комиссии за транзакцию, она, как правило, будет значительно отложена до тех пор, пока ставка не упадет до своей собственной, она не станет недействительной из-за конкурирующей транзакции или майнер не будет стимулирован другим способом. включить его в блок. Время ожидания таких транзакций в конечном итоге может истечь ( Как транзакции покидают пул памяти? ), но они могут оставаться действительными неограниченное время.

Итак, 1) существует строгое ограничение на предоставление блочного пространства с 1 МБ за ~10 минут, и 2) биткойн-транзакции полезны во многих отношениях, само собой разумеется, что всегда будет какая-то минимальная ставка за использование блочного пространства. (например, консолидация неизрасходованных выходных данных с низкой стоимостью, временные метки, приложения с цветными монетами, децентрализованные резервные копии, поэзия…). Из этого следует, что спрос на блочное пространство всегда будет больше, чем предложение, и цена на блочное пространство найдет своего рода баланс при такой ставке комиссии, при которой спрос и предложение совпадают. Поэтому всегда будет какая-то неподтвержденная транзакция.

Например minRelayTxFee, есть ли верхняя граница для сборов?
Я считаю, что некоторые кошельки не будут ретранслировать транзакцию со слишком высокой комиссией, чтобы защитить пользователей от ошибок (например, случалось, что пользователи перепутали комиссию за транзакцию и сумму отправки и заплатили комиссию за транзакцию в размере 300 BTC), но, кроме того, не совсем один.

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

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

Если бы вы владели пекарней и выпекали 1000 буханок хлеба в день, но у вас было бы 1500 покупателей, стали бы вы продавать их кому-то, кто предлагает 0,10 доллара, когда другие люди предлагают 1 доллар и выше?

Если это так, то это означает, что система не гарантирует, что моя транзакция будет подтверждена. Кроме того, такая политика сборов создает свободный рынок, на котором сборы всегда растут. В этом случае, что привлекает людей к использованию Биткойна (если только он не занимается незаконными/скрытыми вещами)? В чем логика такой политики комиссий за транзакции?
«Какова логика такой политики комиссий за транзакции?» Майнеры должны как-то получать деньги; они покупают и эксплуатируют дорогие специализированные компьютеры и потребляют много электроэнергии, что стоит больших денег. Как бы вы предложили, чтобы майнеры получали оплату, если не через сборы?
@ÖnderGürcan Вы предполагаете, что блоки всегда полны, в дни, когда в ваш магазин заходит всего 500 человек, вы можете продать парню, который хочет, за 0,10 доллара, хотя вы не обязаны. Как только проблема масштабирования биткойнов будет решена, комиссии должны начать снижаться. Но вряд ли это изменится к лучшему в краткосрочной перспективе, ни одно из решений не предлагает краткосрочных решений.
Я же понимаю. Но есть ли статистика, показывающая, сколько стоит майнеру создание блока? Мы все знаем, что он получает at least25 BTC за генерацию блока (что сейчас составляет около 60000 долларов). Я не против того, что майнеры должны зарабатывать деньги, но зарабатывают ли они разумные деньги или они зарабатывают слишком много? 1 к 10 или 1 к 1 миллиону?
После последнего халвинга майнеры получают 12,5 BTC за блок. Создание блоков — довольно популярная тема, но обычно это приводит к комиссионным сборам в несколько тысяч долларов, лично я считаю это чрезмерным, но у них могут быть разные мнения. Майнеры также могут добывать пустые блоки (без транзакций), и на самом деле это может быть хорошей идеей (хотя и немного злой с точки зрения пользователя), поскольку узлы могут передавать это быстрее, чем блок размером 1 МБ.

если вы не вносите достаточную комиссию, вы можете долго ждать завершения транзакции.

вчера я совершил транзакцию на 1000 евро и заплатил комиссию за 100 евро - это было сделано и принято через 3-4 часа.

.. выстраивается очередь - если у вас гонорар 0,10 цента, а у другого парня 1-2-3 евро и больше.

они будут первыми размещены перед вами!..

так что если вам не повезет, все транзакции будут до вас размещены ..

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

я надеюсь, что я могу помочь вам--

делай этот трюк, как я - каждый раз плати в 3 раза больше, чем обычно. и все в порядке :)