Double spend: различия между версиями
Master114 (обсуждение | вклад) (категории) |
Ilia (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
− | [[ | + | [[en:Double spend]] |
[[Файл:Double spend.png|150px|мини|справа]] | [[Файл:Double spend.png|150px|мини|справа]] | ||
'''Double spend''' в блокчейне — это попытка потратить одну сумму два раза, отправив две транзакции одновременно разным получателям. | '''Double spend''' в блокчейне — это попытка потратить одну сумму два раза, отправив две транзакции одновременно разным получателям. | ||
Строка 37: | Строка 37: | ||
* [https://ru.bitcoinwiki.org/wiki/Double-spending Bitcoinwiki, Двойная трата в Bitcoin] | * [https://ru.bitcoinwiki.org/wiki/Double-spending Bitcoinwiki, Двойная трата в Bitcoin] | ||
* [https://bitshares.org/technology/delegated-proof-of-stake-consensus/ Bitshares, DPoS] | * [https://bitshares.org/technology/delegated-proof-of-stake-consensus/ Bitshares, DPoS] | ||
+ | [[Category: Термины]] |
Текущая версия на 05:20, 11 октября 2019
Double spend в блокчейне — это попытка потратить одну сумму два раза, отправив две транзакции одновременно разным получателям.
Содержание
История проблемы
В мире фиатных валют проблема двойной траты решается централизацией - организация-посредник берет на себя ответственность, что стороны сделки ведут себя честно. Реестр недвижимости удостоверяет права владельца и момент перехода прав покупателю; банк гарантирует наличие средств на счету плательщика и т.д. Борьба с двойной тратой ведется силами центробанков и правоохранительных органов.
Особенно остро данная проблема встает с приходом децентрализации. В мире криптовалют нет центробанков и полиции, поэтому проблема double spend должна решаться правилами сети. Такие правила приняты во всех известных блокчейнах. Двойная трата считается серьезной проблемой блокчейна с алгоритмом консенсуса PoS (Proof-of-Stake, доказательство доли). В классическом варианте PoS валидаторы заинтересованы в обработке всех транзакций, в том числе и с двойной тратой (или чтобы получить комиссию несколько раз, или если они связаны с отправителем). Это может приводить к постоянным форкам блокчейна, что совсем не нужно честным участникам сети.
Способы предотвращения
Борются с проблемой double spend установлением правил, при которых невыгодно поддерживать двойную трату. Например, в правила блокчейна биткойна заложена поддержка самой длинной цепочки блоков, поэтому возможные ветвления (и потенциальные двойные траты) хоть и могут возникать, но просуществуют недолго. А пользователи сети биткойн приняли за правило ждать 3-6 подтверждений блока, что гарантирует отбрасывание блоков с возможными двойными платежами.
Есть информация о нескольких удачных атаках с двойной тратой в сети Ethereum Classic. Они возможны из-за недостаточной децентрализации мощностей, что критично для алгоритма консенсуса PoW (Proof-of-Work, доказательство работы).
В некоторых блокчейнах, например, Ripple, с двойными тратами борются правилами консенсуса. В Ripple подтверждают те транзакции, которые поддерживаются 80% участников сети.
Преимущества DPoS
Перспективным шагом в борьбе со злоупотреблениями в виде double spend стал алгоритм консенсуса DPoS (Delegated Proof-of-Stake, делегированное подтверждение доли). Он значительно уменьшает вероятность злоупотреблений участниками и валидаторами, так как они несут материальную ответственность за свои действия в сети, причем чем больше их права, тем выше их заинтересованность и ответственность. Особую роль играет разделение полномочий - делегаторы выбирают валидаторов, но сами не голосуют, а валидаторы оперируют блоками, но не владеют стейками. В теории это должно приводить к устойчивым системам с честным поведением участников. На практике опыт эксплуатации сетей с DPoS пока положительный (BitShares, Steemit).
Проблемой может стать централизация, защита от которой находится в руках держателей монет сети. Нужно внимательно следить за распределение стейков между валидаторами и поддерживать независимых валидаторов с небольшой силой и положительной репутацией, тогда система с DPoS будет более устойчивой.
Двойная трата в Minter
Сеть Minter реализует модифицированный консенсус DPoS, иногда называемой разработчиками MDPoS. Отличие ее в том, что свои стейки делегаторы могут размещать в кастомных монетах.
Как и в других блокчейнах на DPoS, у валидаторов в сети Minter есть возможность подписывать один блок на одной высоте два раза, но с разными данными, что приводит к разветвлению блокчейна (форку).
За подобное поведение в сети Minter на валидаторов накладывается штраф в 5% от стейка и все его делегаторы получают принудительный отзыв (unbond) стейков, что блокирует их средства на 30 дней. Финансовые потери от тридцатидневной блокировки стейка сами по себе высоки, в сочетании со штрафом же такие меры должны привести к экономической нецелесообразности поддерживать double spend для валидатора, а для делегаторов - к необходимости внимательно следить за квалификацией и репутацией валидатора, а также делить стейки.