Согласованный алгоритм PBFT и двойные расходы - PullRequest
0 голосов
/ 09 ноября 2019

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

1 Ответ

0 голосов
/ 09 ноября 2019

pbft - это согласованный алгоритм, предложенный Барбарой Лисков и Мигелем Кастро в 1999 году для предотвращения злонамеренных атак, поскольку злонамеренные атаки и ошибки программного обеспечения могут привести к тому, что неисправные узлы будут проявлять византийское (то есть произвольное) поведение. pBFT был разработан для эффективной работы в асинхронных системах по сравнению с предыдущими алгоритмами bft, которые работали только на синхронных системах.

здесь - исследовательская работа, в которой говорится, что

Практический алгоритм репликации конечного автомата, который допускает византийские ошибки. Алгоритм обеспечивает как жизнеспособность, так и безопасность при условии, что самое большее ⌊n-1 / 3⌋ из общего количества реплик одновременно являются неисправными. Это означает, что клиенты в конечном итоге получают ответы на свои запросы, и эти ответы являются правильными в соответствии с линеаризуемостью. Алгоритм работает в асинхронных системах, таких как Интернет, и включает в себя важные оптимизации, которые позволяют ему эффективно выполнять

Двойные траты - это потенциальный недостаток в цифровой или электронной кассовой схеме, в которой один и тот же цифровой токенможно потратить более одного раза. В отличие от физических денег, цифровой токен состоит из цифрового файла, который может быть продублирован или фальсифицирован.

Атака с двойным расходом - это потенциальная атака на криптовалюты, которая произошла с несколькими криптовалютами, например, из-за атаки на 51%.

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

Если две транзакции пытаются использовать одинаковые токены, каждая из них сочтет первую транзакцию, которую она считает действительной, а другую -инвалид. Как только узлы расходятся во мнениях, невозможно определить истинные балансы, так как наблюдения каждого узла считаются одинаково действительными, способ вернуть узлы обратно в синхронизацию - использовать согласованные алгоритмы, а с помощью блокчейна транзакции в этой системе технически никогда не являются «окончательными»поскольку конфликтующая цепочка блоков всегда может перерасти текущую каноническую цепочку, однако, поскольку блоки строятся поверх транзакции, становится все менее вероятным / дорогостоящим для другой цепочки обойти ее и, следовательно, предотвратить проблему двойных расходов.

...