Double spend: различия между версиями

Материал из Minter Wiki
(Новая страница: «термины 150px|мини|справа '''Double spend''' в блокчейне — это попы…»)
 
(категории)
Строка 1: Строка 1:
[[:Category:Термины|термины]]
+
[[Category: Термины]]
 
[[Файл:Double spend.png|150px|мини|справа]]
 
[[Файл:Double spend.png|150px|мини|справа]]
 
'''Double spend''' в блокчейне — это попытка потратить одну сумму два раза, отправив две транзакции одновременно разным получателям.
 
'''Double spend''' в блокчейне — это попытка потратить одну сумму два раза, отправив две транзакции одновременно разным получателям.

Версия 20:50, 20 августа 2019

Double spend.png

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 для валидатора, а для делегаторов - к необходимости внимательно следить за квалификацией и репутацией валидатора, а также делить стейки.

Смотрите также

Ссылки