Author

Topic: Dual Authoring – запатентованное решение (Read 136 times)

member
Activity: 131
Merit: 10
Dual Authoring – запатентованное решение проблемы опережающей сделки от основателя Loopring

Разработчики Loopring представили решение, разработанное основателем компании Даниелем Вангом (Daniel Wang). Ранее разработчики отмечали, что опубликуют инновационное защитное решение протокола, когда будет принята патентная заявка на него. Видимо, все прошло удачно.


Проблема опережающей сделки

Опережающая сделка (от англ. front-running) на традиционном рынке - неэтичная практика получения прибыли частным инвестором путем сделок с ценными бумагами, которые вскоре будут в большом количестве куплены или проданы какой-либо организацией.

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

Основные схемы опережающей сделки, например, в Loopring - это кража ордера (order-filch) или целого кольца (ring-filch). Order-filch - это когда мошенник крадет один или несколько ордеров из ожидающей подтверждения транзакции; ring-filch - это когда он ворует все кольцо транзакций.

Dual Authoring – решение проблемы опережающей сделки

Наше новое решение включает механизм создания двух уровней авторизации для ордеров. Мы назвали это решение Dual Authoring.

Вот как работает Dual Authoring:

1. Для каждого ордера программное обеспечение кошелька будет генерировать случайную пару из публичного / приватного ключа, затем эта пара ключей помещается в сниппет JSON.
2. Все поля в оредере (кроме auth_private_key) подписываются с использованием приватного ключа owner_address (не auth_private_key), как показано на изображении ниже.


3. Кошелек отправляет ордер (вместе с auth_private_key) майнерам для сопоставления. Майнер проверяет, чтобы auth_private_key и auth_address составляли правильную пару, а подпись ордера была действительна в отношении owner_address.
4. Когда кольцо идентифицировано, шахтер использует auth_private_key каждого ордера, чтобы подписать ring_hash, miner_address и все mining_parameters. В приведенном ниже примере кольцо содержит 3 ордера, поэтому для 3-х auth_private_keys будет 3 подписи. Эти подписи называются auth_signatures. Майнер также должен подписать ring_hash вместе со всеми майнинговыми параметрами с помощью приватного ключа miner_address таким же образом, как и в протоколах v1.0 и 1.1.

Процесс подписания кольца в Loopring (1.2) с использованием Dual Authoring

5. Майнер вызывает функцию submitRing. Обратите внимание, что auth_private_keys НЕ являются частью цепной транзакции и, таким образом, остаются неизвестными для всех людей. Это продемонстрировано на изображении ниже.


6. Затем протокол Loopring проверяет каждую auth_signature и соответствующий auth_address каждого ордера и отклоняет все кольцо, если какая-либо auth_signature недействительна.

Почему Dual Authoring работает эффективно

Теперь кольцо не может быть украдено кем-либо, если у него нет всех auth_private_key всех приложенных ордеров, потому что:

Подпись ордера (с помощью приватного ключа ower_address) гарантирует, что ордер не может быть изменен (включая auth_address).

Подпись майнера (приватным ключом miner_address) гарантирует, что никто посторонний не сможет идентифицироваться как майнер.

Подписи auth_signatures гарантируют, что все кольцо не может быть изменено, в том числе miner_address. А поскольку у мошенников нет доступа к auth_private_keys, они не могут сгенерировать новый набор auth_signatures, поэтому не смогут сгенерировать транзакцию.
Jump to: