== Введение ==
P2Pool является децентрализованным бассейном, который работает путем создания P2P сетей hashers. Эти hashers работают на цепи акций, подобных blockchain Bitcoin в. Каждая мясорубка работает на блоке, который включает в себя выплату владельцев предыдущих акций, а сам узел. Точка объединения является уменьшение дисперсии выплат, даже если в среднем награда одно и то же (или меньше с платой). Спрос на страхование, а также жидкие рынки вариантов показывают, что разница действительно есть расходы, которые люди готовы платить, чтобы избежать.
Вот пример сделки p2pool coinbase: https://blockchain.info/tx/d1a1e125ed332483b6e8e2f128581efc397582fe4c950dc48fadbc0ea4008022
Это 5803 байт, который при ставке вознаграждения 350 сидевших / б стоит 0,02031050 BTC блока пространства, p2pool не может продать в любую другую сделку. Как Bitcoin инфляция идет вниз и шахтеры финансируются более за счет сборов, это ставит p2pool на все более и более невыгодное положение по сравнению с доверяющих сторонних бассейнов горных работ.
Поскольку каждая мясорубка уделяются их собственный адрес Bitcoin, это ограничивает число hashers, принимающее участие в добавлении несколько отдельных людей к сделке выплат увеличивает его размер. Также небольшие выплаты стоят непропорционально в шахтерских сборах на самом деле тратить деньги, которые больно маленькие шахтеры, которые имеют важное значение для децентрализованной горной экосистемы.
Это может быть может быть решена путем сохранения отдельного состояния баланса для каждого пользователя, который не зависит от выплат, и сделать выплаты только тогда, когда это состояние баланса превышает некоторый разумный порог. Но это увеличивает дисперсию, которая идет вразрез с целью объединенной добычи.
== Оплата == каналы
Что нужно, это способ использования вне цепи платежей, когда любое число платежей может быть отправлены каждым отдельным Hasher без использования blockchain. Тогда все параметры p2pool могут быть изменены, чтобы резко уменьшить выплаты дисперсии. N из разовой платы за последние-N-акций (PPLNS) от p2pool может быть увеличен на что-то вроде 6-12 месяцев акций и так до тех пор, как маленький шахтер может добывать долю каждые несколько месяцев, они всегда получат выплаты, когда p2pool находит блок. Платежные каналы были бы в системе ступица-и-спицы и будет работать аналогичным образом, чтобы coinswap, молнии сети, атомных свопы кросс-цепи или любого другого договора с участием hashlocks и timelocks.
Там еще будет sharechain но hashers оплачивающего всего блока награду хаба. Этот центр будет иметь платежный канал одностороннюю открыт для каждого Hasher в p2pool и там будет создана ситуация, в которой, если концентратор получает оплачиваемую то hashers не может не получить деньги. Потому что обман невозможно, ступица и hashers согласятся просто освободить деньги друг другу, не прибегая к blockchain.
Coinbase адрес scriptPubKey, где блок вознаграждение выплачивается бы это:
Код:
2of2 multisig ступицы + успешного Hasher
ИЛИ
Концентратор Публичных + Н (Х)
ИЛИ
Концентратор Публичных + Н (Х)
2of2 multisig между ступицей и "успешный" Hasher, который нашел блок, хотя и с hashlock и TimeLock. Н (Х) представляет собой значение хеш-функции, где прообразом Х представляет собой случайным образом сгенерированный одноразовый номер, который хранится в секрете от ступицы, но Х должен быть раскрыта, если втулка проводит с помощью этого пути выполнения.
Каждый платежный канал между ступицей и Hasher является 2of2 multisig между ними.
В hashers шахта sharechain, решаемая доля содержит hashers Публичного. Концентратор отстает от sharechain и объявляет частично подписанные сделки, идущие к каждому Hasher. Сделки обновляются состояние канала оплаты, они платят деньги каждого Hasher пропорционально работу, что мясорубка способствовала sharechain.
Это форма обновленного состояния канала оплаты:
Код:
2of2 multisig UTXO ----> [Всего - баланс BTC] Концентратор-Публичный
----> [Баланс BTC] Hasher-Публичный + Н (Х)
----> [Баланс BTC] Hasher-Публичный + Н (Х)
При трансляции, эта сделка позволит мясорубке взять баланс канала оплаты, но только если он знает значение X.
Если мясорубка успешна и находит свою долю, которая также действует блок Bitcoin, они передают его в сеть.
Теперь, ступица может потратить вознаграждение блока денег самостоятельно, но только путь выявления X. Каждый мясорубка мог тогда считать, что X и объединить его с обновленной государственной сделкой, чтобы получить свои деньги. Таким образом, если концентратор получает деньги то hashers не может не получить деньги. Так как дезертировать бессмысленно, хаб создает новый частично подписанную сделку просто тратить 2of2 multisig выход к каждому Hasher, который в настоящее время не имеет каких-либо условий hashlock. Мясорубка может в любой момент знаком с их собственным ключом и трансляции, чтобы получить деньги поселились на blockchain. После этого успешная мясорубка подписывает 2of2 multisig блок награды посылающего вознаграждения блока деньги на ступицу. Успешная мясорубка получает небольшой бонус с помощью обновленного платежного состояния канала для нахождения блока, чтобы препятствовать отказывая же, как сегодняшний p2pool. Если все пойдет хорошо, то ступица никогда не показывает X, для добычи нового блока он объявляет новое значение H (X).
Эти платежные каналы могут быть открыты до бесконечности, так как новые блоки найдены p2pool хаб создает новые обновленные состояния с больше денег собираются каждый Hasher. Когда мясорубка хочет прекратить добычу и получить деньги, они могут добавить свою собственную подпись и транслировать последнее состояние в сеть.
== == концентраторы
Концентратор является центральной точкой отказа. Он не может украсть деньги, но если он получает DDOS'd или просто становится злом, то все, что бы прекратить работу. Эта проблема может быть смягчена при наличии федеративной системы, где есть несколько концентраторов на выбор и hashers имеет платежные каналы открытые с каждым из них. Стоит отметить, что если кто-то имеет сильный ботнет они могли бы, вероятно, DDOS отдельные hashers p2pool таким же образом они DDos концентраторы или даже централизованные бассейны добывающие.
Концентратор нужно будет иметь много биткойны, чтобы иметь платежные каналы во время ожидания блоков, которые будут добываться. Может быть, в 50 раз блок награда, которая сегодня будет около 650 Bitcoins. Концентратор должен получать небольшой процент от каждого блока вознаграждения предоставить им стимул, мы знаем из JoinMarket, что этот процент будет, вероятно, около 0,1% или меньше для больших количеств Bitcoin. Prospostive операторы ступиц должны написать свои предложения на форуме где-то и есть их детали добавлены к некоторому списку на GitHub. Hashers должен иметь интерфейс для занесения в черный список, белого список, снижение и повышение приоритета для отдельных узлов в случае операторы ступиц ведут себя плохо.
Так же, как смарт-контракт, есть дилемма эффекты Итерированных заключенные между ступицей и hashers. Если концентратор взаимодействует он может ожидать, чтобы сделать предсказуемый доход с низким уровнем риска от своих проведенных Bitcoins в течение длительного времени, чтобы прийти, если он делает что-то плохое то hashers может легко вызвать с сделку. Оператор ступицы потребует много прибыли для того, чтобы записать свою репутацию и будущий поток доходов, и повреждая Bitcoin экосистемы будет косвенно поврежденной своим собственной проведенным биткойны. Справедливый план ценообразования, вероятно, ступица с небольшим процентом, чтобы начать с, а затем через 12 месяцев этот процент доходит до принимать во внимание улучшенной репутацию концентратора.
== Выбор транзакции ==
Все hashers и ступице нужно знать точное значение награды блока заранее, это означает, что они должны знать, что плата шахтера будет. Это, пожалуй, самая серьезная проблема, с этим предложением.
Одним из возможных путей решения этой проблемы является помоему сделок в акции и таким образом использовать sharechain, чтобы сделать все hashers и концентраторы прийти к консенсусу о том, какие именно сделки они будут Моими, и так точно, что общая плата шахтера будет. Проблема здесь в том, что этот механизм консенсуса медленно, сразу же после того, как Bitcoin блок найден все p2pool hashers придется подождать 30-120 секунд, прежде чем они знают, что операции на шахте, так что это сделает их неконкурентоспособными как горные работы.
Еще один способ справиться с этим, чтобы ступица просто выбрать все операции, объявляя сделки, общую плату шахтера и корень Merkle для hashers помоему. Это будет работать, но позволяет ступицу контролировать и цензурировать Bitcoin сделки, которые в основном поражения точки p2pool как улучшение в Bitcoin шахтер централизации.
Другой способ иметь hashers и ступицу оценку того, что общая стоимость плата шахтера будет. Оценка может исходить из средней платы шахтера последних нескольких блоков, или из следующих 1Мб в mempool. Концентратор объявит все частично подписанные сделки с каждым Hasher, а затем периодически (скажем, каждые 60 секунд) объявляет обновленные версии в зависимости от того, как изменяется mempool. Давайте проанализируем, что происходит, если предполагаемые и фактические вознаграждения различны. Если фактическое вознаграждение блок ниже расчетного вознаграждения, то ступица может обновить состояние оплаты канала немного более низкие значения, чтобы принять это во внимание. В hashers не может использовать более высокое состояние канала, не зная X. Успешный Hasher получат свой бонус для нахождения блока, который должен помочь в стимулировании их на самом деле подписать сделку о выплатах концентратора. Если фактическая награда блока выше, чем оценка награды, ступица, мы надеемся, еще обновит состояния оплаты канала в Hasher из-за последствий interated заключенные-дилеммой. Но если фактическая награда намного выше, то концентратор может оказаться выгодным, чтобы сжечь свою репутацию и взять деньги, раскрыв X, одна ситуации, когда это может произойти, если кто-то случайно платит очень высокую плату шахтера и А мясорубку рудники без него принимаются во внимание при регулярных обновлениях состояния оплаты канала концентратора. Помимо этого очень конкретной ситуации, эта схема оценки общей платы шахтера должна работать. Обратите внимание, что hashers может выбрать концентратор помоему для от их федерации центров, они должны избегать горнодобывающих операций, которые делают блок вознаграждение гораздо выше, чем объявлено состояние оплаты канала, это должно избежать этой проблемы.
== Заметки ==
*) Блочные награды заблокированы на 100 блоков, прежде чем они могут быть потрачены, поэтому совместные подписи должны быть заменены после того, как 100 блоков только в случае, если блок получает из несвежего / сиротого. В то время как hashers ждут на период погашения 100 поощрений, они должны добывать с другим концентратором в качестве выплаты.
*) Сегодня p2pool имеет функцию для пожертвования отдельных hashers, это может быть воспроизведено в системе оплаты канала при наличии в hashers подписать код платежа LN, используя то же Публичное, который появляется в sharechain. Каждый код платежа LN затем подарен пропорционально работа в sharechain. После p2pool созревает должно быть организовано общественное движение с просьбой о пожертвованиях к p2pool hashers. Экономическое большинство имеет стимул для поддержки децентрализованной добычи, и в прошлом, когда статус-кво p2pool было больше, то он действительно получил их, так что это реалистический спросить. Движение UASF было успешным, поэтому мы знаем, что такие социальные движения возможны. Привод пожертвования должен продолжаться, пока все государственные централизованные бассейны горнодобывающих не имеют низкое хеширование силы.
*) Каждая мясорубку, вероятно, следует сделать, чтобы оплатить некоторые биткойна в адрес канала оплаты тоже, чтобы остановить Дозаторы блокировки всех биткойнов концентратора. Если мясорубка не находит свою долю в течение некоторого промежутка времени, то концентратор должен закрыть канал оплаты. Другим способ скорости предел DOS для концентратора требовать решаемой POW вызова перед открытием канала.
*) Теперь, когда мы segwit все эти схемы оплаты канала гораздо проще кода.
*) В hashers должен держать свои деньги заперты в канале оплаты за несколько месяцев до достаточно коллектов. Это может быть проблемой, потому что некоторые шахтеры не очень хочется провести Bitcoin долгий срок. Интересно, если Тереза каким-то образом связать эти каналы LN, чтобы они могли продаваться сразу. Они могли бы также использовать фьючерсные контракты, чтобы продать монеты сегодня со скидкой и на самом деле доставить монеты позже, когда они закрывают канал. Edit: в соответствии с roasbeef такой связи с LN действительно возможно, то hashers бы получить биткойно в их LN бумажнике, которые были бы доступны для проведения сразу.
*) Для того, чтобы остановить или разбойные нападения выкупа, есть дополнительный путь выполнения OP_CSV в coinbase. Выход coinbase на самом деле имеет этот скрипт:
Код:
2of2 multisig ступицы + успешного Hasher
ИЛИ
Концентратор Публичных + Н (Х)
ИЛИ
успешная мясорубка Публичный + OP_CSV 6 месяцев
ИЛИ
Концентратор Публичных + Н (Х)
ИЛИ
успешная мясорубка Публичный + OP_CSV 6 месяцев
Тогда хаб имеет ограничение по времени для тратить coinbase и выявление X, если они этого не делают, то успешный мясорубка может украсть всю coinbase через 6 месяцев.
== Ссылки ==
*) https://en.bitcoin.it/wiki/P2Pool как p2pool работы
*) что Масштабируемость проблема p2pool
*) что делает окно PPLNS больше
*) Книга: Эволюция Сотрудничеству Роберта Аксельрод, для объяснения дилеммы эффектов Итерированных заключенных в деталях
Благодаря veqtrus разработчиков p2pool для рассмотрения этого
Это также размещается в списке Bitcoin DEV рассылки: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-August/014893.html