分类
最佳初學者外匯券商排名

什么是滑点及为什么会有滑点?

免责声明:本站问答内容均由入驻叩富同城理财的作者撰写,仅供网友交流学习,并不构成买卖建议。本站核实主体信息并允许作者发表之言论并不代表本站同意其内容,亦不代表本站对该信息内容予以核实,据此操作者,风险自担。同时提醒网友提高风险意识,请勿私下汇款给作者,避免造成金钱损失。

什么是滑点及为什么会有滑点?

作为一般用户,可以通过设置较低的交易滑点和较高的 Gas 费来应对抢先交易。

本文旨在全面解析广泛存在于以太坊 区块链 上的攻击行为:Front-Running (抢跑交易),通过对其原理的研究,寻找最有效的解决方案,最终帮助 DeGate 用户避免这一严重有损他们利益的攻击行为。Front-Running 和 Mempool

简单来说,Front-Running 是指在一笔正常交易等待打包的过程中,抢跑 机器人 通过设置更高 Gas 费用抢先完成攻击交易,以此攫取用户利益的攻击行为。而 Mempool 是一组已经 广播 到网络中并等待被打包进区块的以太坊交易,它是 Front-Running 可以实施的前提,抢跑 机器人 通过不断扫描 Mempool 什么是滑点及为什么会有滑点? 中的交易,来分析发现可攻击的目标。下图是一个 Mempool 浏览器,可以通过设置各种筛选项订阅 Mempool 中的交易,并查看这些交易的全部详细信息。

在所有 Front-Running 中,最典型最具危害性的就是针对 AMM 交易的 Sandwich Attacks (三明治攻击),除此以外还有针对套利、清算交易、闪电贷等利用系统漏洞获利的抢跑攻击,攻击者数量众多,且由 自动化 脚本控制,永远不知疲倦,因此任何有利可图的交易都会遭受他们的饱和攻击,几乎没有幸免的可能。

首先我们来看一个真实的三明治攻击案例。

上图可见,三笔交易在同一个区块被打包,两笔攻击交易(打上了黑客标记的)中间夹着一笔正常交易。其具体流程如下:用户首先发起一笔正常交易,用 237000.705USDC 买入 DG,设置 Gas Price 为 40.5Gwei;

抢跑 机器人 检测到这笔有利可图的交易后,随即展开攻击,发起一笔买入交易,设定 GasPrice 为 49.9Gwei,凭借 Gas 竞争机制成功抢跑用户的正常交易;

与此同时, 机器人 发出另一笔卖出交易,设置 GasPrice 同样为 40.5Gwei,因为时间顺序的原因,紧贴着用户正常交易完成。

一次完美的抢跑攻击完成,算上手续费, 机器人 共赚取 16448.012-16310.3-15.2-10.61 = $ 111 .9,而这种两笔攻击交易夹着一笔正常交易的攻击,就被形象的称为三明治攻击。原理说明

我们知道,现如今的主流 DEX 如 Uniswap 等,采用的都是 AMM ( 自动化 做市商 )机制,其价格遵循恒定乘积公式。例如,在 Uniswap 中建立一个 A 代币与 什么是滑点及为什么会有滑点? ETH 的流动池,A 数量为 1000,ETH 数量为 100,则两者数量乘积为 100000,当前 A 价格为 0.1ETH。当 Alice 试图用 10 个 ETH 来池子里购买 A 时,他所得到的 A 的数量 X,可以用下面的公式推导 (注:为简化计算,以下均未考虑手续费):

(1000-X)\*(100+10)= 100000,X = 90.9

这笔交易中,A 的价格为 10/90.9 = 0.11,相比于原来 A 的价格,价格滑点为 :

一笔交易就让币价产生了 10% 的滑点,可见越是流动性差的池子,遇到大额交易,越是容易产生滑点。而如果,能在用户正常的大额交易前(预计该交易会产生较大滑点),抢先买入 A,再在用户正常交易后,将刚买入的 A 卖出,就可以获得一笔不菲的收益。沿用刚才的例子,假设在 什么是滑点及为什么会有滑点? Alice 的交易前,Bob 抢先花 5 个 ETH 购买 A,然后在 Alice 的交易完成后,Bob 再把之前买入的 A 卖出,我们看看会有什么样的结果。

(1000-X)\*(100+5) = 100000, X = 47.62

即,Bob 用 5ETH 购得 47.62 个 A

接下来是 Alice 什么是滑点及为什么会有滑点? 的正常交易,注意此时流动池中 A 的数量变为 952.38,ETH 的数量变为 105:

(952.什么是滑点及为什么会有滑点? 什么是滑点及为什么会有滑点? 38-X)\*(105+10) = 100000, 什么是滑点及为什么会有滑点? X = 82.81

最后 Bob 卖出 47.62 个 A 的交易,此时流动性中 A 的数量为 869.57,ETH 的数量为 什么是滑点及为什么会有滑点? 115:

(869.57+47.62)\*(115-Y)= 100000,Y = 什么是滑点及为什么会有滑点? 5.97

通过这一次抢跑攻击,Bob 净赚 5.97-5 = 0.97 什么是滑点及为什么会有滑点? 个 ETH,而 Alice 净亏 90.9-82.81 = 8.09 个 A,Bob 通过使 Alice 蒙受更大的滑点损失来获得自己的收益!

在手续费竞争力和收益之间取得平衡,尽可能的在与其他 机器人 的竞争中获胜

我们用图表来更好的描述这一过程:用户在 A 点,打算投入 in_amount(user) 个 USDT 购买 ETH,这笔交易正常会把当前状态推向 B,同时用户设置了最大滑点为 B(max_slippage);

抢跑 机器人 监测到这笔交易,先于用户交易之前,进行了一笔 in_amount(robot) 个 USDT 的买入交易,将当前状态推到 A';

抢跑 机器人 把步骤 2 中买入的 ETH 卖出,状态达到 C 点,得到 out_amount(robot) 个 USDT

抢跑 机器人 获得收益 out_amount(robot) - in_amount(robot)-手续费解决方案

既然我们已经看到了 Front-Running 的杀伤力,那我们有什么办法阻止抢跑攻击呢?

作为一般用户,应对 Front-Running 可以有以下几种手段:设置较低的交易滑点,比如 0.1%,这会让抢跑 机器人 缺少可盈利的空间。 缺点:滑点过低导致大额交易十分容易失败,且失败的交易仍然需要支付高昂手续费。

提高 gas 费用,这会增加 机器人 的攻击成本。缺点:这同样也增加了自己的交易成本。

可以看出,以上解决方案都是无奈之举,且有各种不足,幸运的是,有很多团队认识到了 Front-Running 的危害性,并提出了不少有建设性的解决方案。首先通过对捕猎全过程的分析,我们可以得出结论,要实现 Front-Running,需要几个要素:Transaction 公开性:可以在 Mempool 中获取交易的详细信息

以太坊交易执行机制:可以通过 gas 竞争的方式抢先完成交易

既然机器人是通过分析 Mempool 中的交易来决定是否发起攻击,那么我们将交易信息直接加密,让 机器人 看不到或者看不懂不就好了?

社区中就有人提议使用零知识证明技术 zk-SNARKs 来达成上述目标,即运用 zk-SNARKs 将每笔交易的信息都加密隐藏起来,让 机器人 无从下手。

不过,目前该方案还不够成熟,存在需要消耗更高 Gas 费用和可能被利用来进行阻塞攻击,导致系统化整体 liveness 的缺陷。以太坊交易执行机制

当前的以太坊交易执行机制是通过 Gas 竞争来完成的,即谁出的 Gas 费高,矿工就优先打包谁的交易,那么我们如果绕过这种机制,把交易发给矿工让其直接打包,就杜绝了抢跑 机器人 在中途攻击的可能性

所以一种类似于 Layer 0 的方案也得到了一些应用,如星火矿池的 Taichi 服务,用户可以直接在 MetaMask 中设置 Taichi 的以太坊节点,这样交易就直接在没有出现在 Mempool 的情况下被打包了,但劣势是被打包的时效有一定的不确定性。

另外,如 ArcherSwap 类似理念的解决方案,构建了交易者和矿工之间的桥梁,交易者可以通过打赏的形式让矿工直接打包自己的交易,这就避免了被 Front-Running 的可能。虽然有那么点交保护费来避免被攻击的感觉,但也实实在在的降低了交易者的成本,而且有着不收取交易失败费用的优势。AMM 算法优化

在 AMM 机制下,大额交易产生过大的价格滑点(可理解为一个临时的错误价格),是 Front-Running 的利润空间,如果有一种 AMM 机制可以减少大额交易对后续交易价格的影响,就可以有效防止 Front-Running 攻击。

早在 2018 年,Vitalik 在以太坊技术社区中提供了一个 方案,当发生兑换交易时,交易池价格不会立刻调整成真实价格,而是在若干分钟内,缓慢的趋向真实价格,这就好像交易池凭空多出了很多流动性一样,因此我们将这种技术称之为 Vitrual Balance (虚拟余额)技术。这种新机制,可大大压缩套利者的利润空间,有效防御 Front-Running 攻击,同时还可以增加流动性 做市商 的收益,可谓一举多得,1inch 什么是滑点及为什么会有滑点? 的 mooniswap 就是这个方案的一个实现版本。增加流动性

此外,还有种思路,就是尽可能的加大交易池中特定价格区间的流动性,流动性越大,滑点越小,当流动性大到一定程度的时候,抢跑 机器人 就丧失了盈利空间,Uniswap 的 V3 版本的聚焦流动性特性,就是在这方面做出的努力。展望未来

外汇交易滑点可以避免吗?

本网站所有刊登内容,以及所提供的信息资料,目的是为了更好地服务我们的访问者,本网站不保证所有信息、文本、图形、链接及其它项目的绝对准确性和完整性,网站没有任何盈利目的,故仅供访问者参照使用。本网站已尽力确保所有资料是准确、完整及最新的。就该资料的针对性、精确性以及特定用途的适合性而言,本网站不能作出最对应的方案。所以因依赖该资料所致的任何损失,本网均不负责。 除特别注明之服务条款外,其他一切因使用本站而引致的任何意外、疏忽、合约毁坏、隐秘汇漏、诽谤、版权或知识产权侵犯及其所造成的损失,本站概不负责,亦不承担任何法律责任。 如您(单位或个人)认为本网站某部分内容有侵权嫌疑,敬请立即通知我们,我们将在第一时间予以更改或删除。以上声明之解释权归牛犇财经网站所有。法律上有相关解释的,以中国法律之解释为基准。如有争议限在我方所在地司法部门解决。

什么是滑点及为什么会有滑点?

客服电话: 010-59490345

微信安全登录

微信安全登录

微信安全登录

股票 | 期货 | 港美股

VIP会员

上海 实名认证 同城入驻3年 从业5年

期货期权诚信开户,ctp专业优惠

展开

咨询TA 专属顾问

4034214卢小平 咨询时间:2020-04-21 11:47 浏览:3566人

当前我在线 直接联系我

有帮助 2 分享 举报 2020-04-21 22:38

免责声明:本站问答内容均由入驻叩富同城理财的作者撰写,仅供网友交流学习,并不构成买卖建议。本站核实主体信息并允许作者发表之言论并不代表本站同意其内容,亦不代表本站对该信息内容予以核实,据此操作者,风险自担。同时提醒网友提高风险意识,请勿私下汇款给作者,避免造成金钱损失。

什麼是滑點?

什麼是滑點?

1. 網路延遲。網路的延遲與否取決於交易平臺的執行速度,正常情況下,客戶在提交訂單之後通過伺服器提交至交易所,而在這個傳輸過程中,往往會有一個微小的延遲。但是一旦遇到劇烈波動的行情,伺服器無法處理此類波動時,這個微小的延遲就會放大。其中值得注意的是,與做市商(MM)交易平臺會提醒投資者二次確認價位已有變化有所不同,在ECN交易平臺裏一般不會要求客戶做二次確認,而是直接以最新的價格成交,從而導致形成滑點。

伺服器:一台在網際網路上的電腦主機,用來回應從網路上接收到的訊息,也可指揮相關軟體來進行資訊交流,可以控制網路的存取及使用的資源。常見的伺服器有檔案伺服器與列印伺服兩種。

2.市場報價斷層。 通常在流動性充足的市場中,報價是連續的,但如果碰到了行情劇烈波動的情況,市場就會出現價格的斷層。如果投資者設置的止損/止盈正好處於價格斷層的空白區間之內,則無法在設定的價格成交,最終的成交價格會直接跳至最新的市場報價為准。

一個失去流動性的市場必定是一個沒有活力的市場。外匯市場也同樣是如此。假設投資者在交易平台上看到的歐美兌 EURUSD 的報價是1.3000,而市場能接受的交易量是500萬美金,如果有一個投資者下單是700萬美金。其中500萬美金就會以1.什么是滑点及为什么会有滑点? 3000成交,其餘的200萬美金則會以下一個價格成交,可能會是1.3001或是更高的價格成交。

流動性:流動性( Liquidity ),又稱市場性( marketability ),係指將一項資產(可以是實體資產或證券資產)轉換成現金的難易程度,謂之流動性。例如一個企業在償還債務時,將某一資產在無太多損失下迅速轉變為現金的難易程度,為該資產的流動性。或者在證券市場上,如果某一證券可以用很小的價差就能成交一定數量時,則稱此證券具有流動性。

3.市場波動。 劇烈的市場波動意味著流動性變低,在低流動性的情況下,下的訂單指令往往無法按最初指定的價格執行,最大滑點也通常會在發生重大事件時產生。作為投資者,需要經常查看財經日曆,以避免在重大事件發生時進行交易,例如美聯儲會議期間,或每個月一次的美國非農數據公佈等。

4.異常滑點。 異常滑點的形成往往是因為一些不正規的交易商惡意操作而導致的。一般來說,正向滑點和負向滑點的幾率是對稱的,而非對稱滑點也就是異常滑點才是交易商惡意操作的表現。一旦被發現有異常滑點的情況,監管機構就會出面對此平臺施以重罰。投資者在區分正常滑點和異常滑點時,可以找幾個其他的交易軟體,查詢同一時間點不同平臺之間的差異,就能判斷該滑點是正常滑點還是異常滑點。

滑點的種類:

根據匯價波動的方向,滑點可以分為 正向滑點、負向滑點無滑點 。以歐元/美元市場報價在1.1600為例∶

無滑點(No slippage)∶當交易命令被收到後最優買入價便是1.1600(與我們的報價正好一樣),於是便按1.1600成交。
正向滑點(positive slippage)∶交易命令被收到後最優買入價突然變至1.1590(低於我們的報價10點),於是便按更優的價格1.1590成交。
負向滑點(negative slippage): 交易命令被收到後價格突然變至了1.1610(高於報價10點),於是便按照1.1610的價格成交。

滑點的特點:

  1. 在非農等行情特別劇烈的時候,很多流通商會變得特別謹慎,這時候很多流通商都採取不報價或報價點差增大的形式,會造成很多交易平台在非農數據公布前後都會限制我們的交易。
  2. 外匯市場上,很多同台遇到的平台滑點也是不一樣的,這主要是因為流通商的報價不同造成的。所以要注意非農之夜等匯價劇烈波動的時候一定要注意這種風險。
  3. 有些平台是「對賭交易平台」他們的成交單和市場沒有關係的,他們只需要通知 MT4報價的端口就可以進行,可以實踐完全零滑點。
  4. 滑點在交投清淡的市場更容易發生,因為更容易放大市場波動,導致滑點擴大。主流的外匯貨幣兌的流動性比較充足,這能有效減少滑點的發生。如果在倫敦和紐約開市的時間交易外匯,那麼大多數貨幣兌的流動性都很充足,滑點的問題就更少。

在某些特殊時段,像是:美國重大數據 非農數據 公布的時候,交易市場開盤時,或是市場價格劇烈波動時,外匯市場會出現連續跳空或短暫停滯,這個時候每位交易者都需要謹慎注意的。

滑點是否能控制?

1)限價命令
無論是止盈限價命令或是入場的掛單命令,最終交易價格只會是限定價或更優的價格。如果使用了限價命令,而最優的可成交價仍不足我們的限價,則交易還將維持等待模式,不會被觸發。
2)市場範圍命令
這一命令讓你設置達成交易可接受的價格區間(以基點計)。如果你的交易無法被選定區間內的價格達成,交易將被取消,不會開倉。因此這樣的命令限制了你可能面臨的滑點的規模。設定的範圍越寬,則成交的可能亦越大。