MPC и ZKP, Пример совместной реализации, ч1
Большая часть
децентрализованных протоколов берут свои идеи из традиционных финансов. Но некоторые фишки еще не были достаточно опробованы и внедрены. Одной из таких является дарк пулы.
Дарк пулы - это такие биржи, часто внутри больших банков, где не видны стаканы и не видны чужие сделки. Люди выставляют свои ордера и если они метчатся, то происходит обмен. Ты ничего не знаешь, торгуя там. Лишь отработал ли твой ордер и по какому объему, все. Ни кто купил, ни продал ли он кому дальше ты не знаешь, ни какие спреды, никаких
гейских проскальзываний:
Зачем это надо?
- Лить и набирать большие объемы если ты бигбой, и не хочешь влиять особо на цену.
- Скрывать свои объемы от других участников рынка, не двигать цену своими лимитками.
- Отмывать бесконечное количество денег.
- Убирать ликвидность с открытого рынка и делать там фарс.
- Не бояться арбитражеров, MEV'еров, frontrunner'ов.
- Достаешь ликвидность с рынка, набираешь позу в дарк пуле, делаешь фарс на открытом рынке с пониженной ликвидностью, бьешь по стакану.
Такое ОТС для магнатов.
Проблема в том что все происходит внутри банка и есть специальный софт и специальные люди которые этим управляют, а в рамках крипты с открытыми транзакциями это сделать не так то просто. Первые попытки были в лице Ren, но тогда они решили создать один общий clob основанный на mpc и поддерживать это все, а для этого нужен свой лейер и куча очень больших архитектурных и технологических проблем, поэтому в итоге ...
они пивотнулись в renBTC, а дальше вы все всё знаете. Свежими попытками известны
Renegade на базе Straknet и
ChooseK на базе Nillion(о них отдельным постом, я надеюсь, расскажу) (ChooseK существуют всего 4 месяца, а уже партнерство с Ниллион, я делаю что-то не то). Основная разница между ними в том, что Straknet - специфическая сеть,
не дающая дроп https://t.me/alphaomegacat/189, а у nillion совсем другие кишки, работающие изначальное на их лично придуманном mpc и очень далеко не евм, из-за которого создание ордербука и торговли выглядит не по славянски.
Так что же такое Renegade и почему?
Это сеть, состоящая из трех частей:
1) публичная нода, под всех, кто не хочет ставить свою/ставить совместную ноду под нескольких людей
2) ноды команд/отдельных трейдеров
3) смарт контракт в сети стракнет
Как это все работает
вместе?
Вместо того, чтобы делать один общий clob, у каждой ноды есть свои ордера по своим ценам, где каждая нода общается с остальными: нету никакого общего консенсуса, просто куча p2p операций.
При выставлении каких либо ордеров, нода вначале проверяет внутри себя, есть ли метч ордера, и после начинается общаться с другими.
Если есть совпадение по ордеру (кто-то выставил обратный по такой же цене), происходит обмен.
В результате меняются балансы, доказательство обмена уходит в дерево меркла в контракт(как и у л2 всяких).
Информация, которая уходит, это какие токены были обменены. Объем и между кем и чем не просачивается из транзакции обмена.
Где же тут mpc+zkp?
Сам обмен происходит через mpc+zkp. Во первых, ноды ищут совпадения по цене + тикеру, но не по объему. Объем и сама транзакция рассчитывается внутри mpc.
Во вторых, zkp как доказательство нужно для того, чтобы проверить что у всех хватает балансов и транзакция может быть валидной. В случае ETH этим занимаются валидаторы, тут же этим занимается криптография с доказательствами. При этом сам zkp не простой вида Plonk/groth. Идея в том что он совместный, что у одного и другого пользователя из разных нод получается построить совместное доказательство что при изменении балансов по данной цене обмен будет валидным, не произойдет двойной траты или балансы не уйдут в отрицательные значения.
https://eprint.iacr.org/2021/1530