2 октября в блоге Coinbase её сотрудники Брок Миллер и Эли Хеймз представили подробное описание новой техники, используемой биржей для упрощения обработки транзакций в блокчейне биткоина.

В компании решение прозвали «Ребёнок платит за родителя» (CPFP).
Вот как излагается основная проблема, которую пытается решить Coinbase:

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

Например, в декабре 2017 года некоторые транзакции пользователей «застревали» из-за роста комиссий и общей перегрузки сети биткоина.

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

Возникает много обращений к техническим специалистам Coinbase с требованием расследования ситуации, которая не находится под их контролем.


Для полной ясности Миллер и Хеймз описывают, как происходит традиционная транзакция:

Когда клиент хочет отправить некоторое количество биткоинов на другой адрес в сети, есть два основных фактора, которые мы как биржа пытаемся сбалансировать: 1.

комиссия за транзакцию (то, сколько клиент платит за свою транзакцию, которая должна быть включена в блок), 2.

скорость включения этой транзакции.


Если сборы по кредитным картам рассчитываются в процентах, то биткоин представляет собой «рынок комиссий».

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

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

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

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

Если вы купили что-то, вы должны «ввести» наличные средства в сеть продавца.

Когда он в свою очередь использует эти средства для покупки чего-либо, он «выведет» их в другую сеть.

Его покупка считается «ребёнком» вашей, «родительской» покупки, так как она может существовать только благодаря вашему финансированию.
Представьте тот же процесс с небольшими изменениями.

Если вы заплатите $10 за пятидолларовую покупку, то полученная сдача («выход сдачи») будет расходоваться из сети продавца.

Этот «выход сдачи» — «ребёнок» транзакции, где сети продавца и покупателя рассматриваются как «родители».

У каждой биткоин-транзакции есть «выход сдачи», что и позволяет реализовать решение CPFP.
Такие «дочерние» транзакции не могут быть добавлены в блок до тех пор, пока туда не попадут «родительские».

При CPFP блокчейн биткоина рассматривает «родительские» и «дочерние» транзакции как группу.

Если обе стороны ждут подтверждения, сеть добавляет их транзакционные комиссии вместе.

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

То есть для получения высокой комиссии от «дочерней» транзакции майнер должен иметь дело с обоими «родителями».

В итоге выигрывают все.
В течение последних нескольких месяцев Coinbase объясняла трейдерам принцип CPFP следующим образом:

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

Фактически мы группируем их в партию для того, чтобы спасти несколько «родителей» при помощи одного «ребёнка».

Это делается без какого-либо согласования с конечным пользователем, и до сих пор мы получали положительные результаты.

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