🗃 Как BitShares препятствует опережающим сделкам (Daniel Larimer)

in #bitshares7 years ago

Опережающая сделка (фронтран) происходит, когда брокер выставляет свои ордера до исполнения ордеров его клиентов. Это может быть крайне выгодно для брокера, который имеет возможность купить акции непосредственно перед тем, как крупный ордер на покупку приведет к повышению цены, а затем продать акции до того, как крупный ордер на продажу снизит ее. Это может произойти тогда, когда один участник рынка имеет возможность видеть ордера других участников и выставлять новые прямо перед ними. У BitShares есть открытый список ордеров, а транзакции транслируются, чтобы все могли получать уведомления о них в течение 10 секунд. Это означает, что каждый может видеть ваш ордер и изменять свой ради увеличения собственной прибыли. Чтобы защитить пользователей, BitShares использует движок рынка типа “вы получаете то, чего просили” (YGWYAF), который дает участникам рынка такой же результат, как идеальная опережающая сделка. Данная статья объясняет, зачем это нужно.

Прежде чем дальше рассуждать об опережающих сделках, я хотел бы описать BitShares с разных точек зрения. Представьте себе, что биржевой стакан не может видеть никто, кроме брокера. Работа брокера – это знать всех и то, чего они хотят. Трейдеры знают, что самый быстрый и удобный способ произвести матчинг по своему ордеру – это пойти к брокеру, а не пытаться найти кого-то самостоятельно. Таким образом, брокер принимает запросы от всех и пытается удовлетворить их, не сообщая трейдерам, как он исполнил их ордер. Все клиенты знают, что брокер продал им то, что они искали, по цене, на которую они согласились. Брокер зарабатывает деньги, покупая дешево и продавая дорого. Это фактически и есть то, что делает блокчейн BitShares. Это брокер, который покупает самые низкие предложения и продает по самым высоким ставкам, зарабатывая на разнице. Нет ничего аморального в использовании знаний о рыночном спросе и действиях, которые позволят вам получить прибыль. Люди делают это каждый раз, когда замечают возможность для арбитража.

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

Когда Сэм размещает большой ордер, он смотрит в биржевой стакан и видит, что может получить 10 монет за $1, 20 – за $2, или же 20 – за $3. Так как он хочет купить 50 монет, то знает, что это будет стоить ему $10 + $40 + $60, т.е. $110 за 50 монет; поэтому он размещает ордер на покупку 50 монет с максимальной ценой в $3 и финансирует его на $110. На традиционной бирже ордера исполняются по принципу “кто первый пришел – того первого обслужили”, поэтому если предположить, что не было выставлено никаких других ордеров, ордер будет полностью выполнен, и Сэм получит 50 монет.

Если бы биржа хотела, она могла бы опередить ордер Сэма, выполнив ордер на покупку дешевых монет за $1 и $2, а затем развернувшись и продав их Сэму по цене $3 доллара. Теоретически кто угодно между Сэмом и движком рынка мог бы «опередить» его. Это подразумевает любого пира в сети P2P, его интернет-провайдера или провайдера кошелька. Даже коллеги Сэма могут опередить его, если смогут наблюдать за тем, как он заполняет форму своего ордера.

В блокчейне BitShares ордера группируются в блоки, что означает, что все ордера принимаются «одновременно». Это значит, что бот может увидеть новый ордер и тут же создать другой, который отменит предложения за $1 и $2 и перенесет их на $3. Обе эти транзакции будут выполнены, и биржевой стакан обновится до начала сопоставления ордеров. Конечным результатом станет то, что продавец продаст 36,7 монет по $3 за прибыль в 13,3 монеты, а Сэм получит меньше, чем ожидал.

Решения для ситуации с опережающими сделками

В нашем примере обыкновенные пользователи в конечном счете получают меньше, чем ожидали, а прибыль получает продвинутый пользователь, который смог запустить бота, или любой, кто способен исполнить свой ордер первым. Уже не раз для этого предлагались различные решения, но в итоге все они сводятся к срокам. Некоторые люди предлагают «рандомизировать» порядок, в котором обрабатываются транзакции каждого блока. Другие предлагают двухэтапный процесс подачи и раскрытия. Все эти стратегии содержат значительные недостатки.

Рандомизация порядка

Метод рандомизации порядка, в котором обрабатываются ордера, не способствует решению проблемы опережающей сделки по нескольким причинам. При условии, что все остальное будет равным, данный прием уменьшает доходность опережающей сделки на 50% (50/50 шанс, что ваш ордер исполнится первым), а это значит, что в нашем примере владелец бота в среднем всё равно получит 6.65 монеты и, самое главное, половину времени Сэм будет получать меньше, чем рассчитывал. Это также не решает проблему с заверителями, которые могут выбирать, какие транзакции включать в блок, а следовательно, они всё еще могут контролировать порядок, задерживая подтверждение на 1 блок.

Два этапа – подача и раскрытие

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

Проблема кроется во втором этапе. Бот всегда может подать ордер, а затем не раскрыть его, посмотрев на все остальные. Вы не можете ввести штраф за неудавшееся раскрытие, потому как создатель транзакции раскрытия не имеет контроля над тем, станет ли производитель блока своевременно включать транзакцию. Поэтому даже с системой подачи и раскрытия производители блоков все равно смогут контролировать порядок, ссылаясь на задержки в работе сети.

И тогда как двухэтапный метод может снизить риск, он также существенно снижает качество пользовательского опыта. Ордера потребуют как минимум в два раза больше времени на выполнение, и все равно останется большая неопределенность относительно того, каков будет результат.

Учтение опережающих сделок

Если вы не можете справиться с опережающей сделкой, то лучше принять ее. Если каждый пользователь платформы будет размещать свой ордер с учетом того, что его могут опередить максимально невыгодным образом, то сами пользователи естественным образом изменят характер своих ордеров. Сэм был готов заплатить в среднем по 2,20 доллара за монету, поэтому он выставил бы один ордер на 50 монет по цене 2,20 доллара США и не был бы обойден ботом, потому как в данном случае он или получит 2,20 доллара за монету, или ничего. Боту, который увидел ставку Сэма, было бы разумно отменить свои ордера на $1 и $2 и переместить их на $2.20, потому что это увеличило бы полученную ботом сумму без вреда для других участников рынка. Это навредило бы только прибыли биржи, которая заработала бы $16, если бы бот не изменил ордера.

Если бы Сэм выжидал появления выгодной сделки и не хотел спешить, тогда он мог бы получить все 50 монет за 110 долларов, если предположить, что никто не конкурировал с ним за покупку монет. Сначала он разместил бы ордер на покупку 10 монет по цене 1 доллар. После его исполнения он разместил бы второй ордер на 20 монет по цене 2 доллара, и наконец, третий на 20 монет по цене 3 доллара. Этот процесс занял бы в 3 раза больше времени, чем размещение единого «рыночного ордера» с лимитом в 3 доллара, но это защитило Сэма, не позволив боту сделать какие-либо деньги за счет того, что он быстрее, чем человек.

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

Заключение

Механизм матчинга ордеров в BitShares должен работать исключительно по принципу “вы получаете то, что хотели, и ничего больше”, потому как иначе прибыль будет получать кто-то другой, давая вам то, что вы хотели, и ничего больше. Этот подход дает пользователю максимальный контроль и позволяет кошелькам автоматически перемещаться по биржевому стакану на одну позицию за раз.

Лучше, чем централизованная биржа

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

BitShares не приносит извинений за отсутствие традиционного алгоритма матчинга ордеров на уровне блокчейна. Мы рекомендуем каждой бирже использовать наш подход и перенести исполнение алгоритма биржевого стакана на компьютер пользователя – тот уровень, где все более или менее равны.


Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Если вам нравится то, что мы делаем - поддержите witness blockchained на Steem!


Sort:  

Очень интересная штука. Я даже не знал раньше о такой проблематике.

I'm following back and I'm sharing the content of followers organically. My account for following back is:@followback

Geri Takibe Geri Takip Yapıyorum ve takip edenlerin içeriklerini, organik olarak paylaşıyorum. Geri Takip İçin Hesabım: @followback

These days, the transaction of Bitcone is much trouble.

Hello , I like it . Upvote and Follow you . .. Please if you do it , I'm so happy. Thank you .
@blockchained