freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

交易所漏洞之薅羊毛分析
FreeBuf_310664 2018-11-03 10:58:36 407993

前言

近几年,基于区块链技术和密码学的数字货币行业,迎来爆发式增长。作为数字货币产业链中最重要的环节之⼀,区块链资产交易所无疑拥有举⾜轻重的地位。它连接着区块链投资市场,也连接着项目方和普通投资者。

711-1537003900335.jpeg

据统计,目前被非小号平台收录的交易所已超过300家,未被收录的甚至有数千家之多。即便如此,入局者依然乐此不疲。在人人都来做交易所的背景下,几乎每家交易所多达几十甚至上百个交易标的,那么存量有限的市场,中小型区块链资产和交易所将面临流量匮乏,无价无市的境地。

为什么市商策略是刚需

市商机器人的出现改变了这一局面,通过在市场中参与做市,遏制因信息和资源不对称性,导致的市场过度投机行为,维护交易平台的良好运行。并减少传统交易方式中,所谓庄家暗中操纵价格的现象,来增强市场吸引力,提高流动性和成交量,满足普通投资者的买卖需求,稳定市场信心。

cn-s-G-TDA-A-01-trading-and-analysis.jpg

在今天,为了使新交易所和新币种更好的建立与普通投资者之间的连接,并解决其上市初期面临的诸多问题,不管是中小交易所还是区块链项目方,都不得不依靠市商机器人。

市商策略原理

市商策略通过做市制度,跟踪价格变化,不断地提供买、卖的双向报价。通过高频大量的买入、卖出交易,逐渐积累每笔交易价格和理论价格的差价,并根据持仓头寸特征,动态调整价差。

v2-6db70c0d6d244ad9eac85a22b0647e27_hd.jpg

一般交易所常见的市商策略有两种:

被动做市:市商策略跟踪主流交易所深度数据和成交数据,不做较大的主动选择,而是被动跟随市场,追求的就是最大程度的紧密跟踪和完全复制,试图达到和主流交易所同样的K线数据。

自由做市:这种做市模式不参考其他交易标的,而是根据自己的成本和设定挂单做市。这种模式适合相关币种定价权相对集中的环境,如:小型区块链资产或交易所自己发行的币种。

市商策略漏洞

无论是被动做市,还是自由做市,不仅需要解决交易标的价格问题,还需要解决流动性问题。所以为了活跃市场,就需要市商策略可以自买自卖,否则很难形成像样的K线。常见的方法是,在盘口附近随机指定一个价格卖出,立即同价格买入。或者根据随机价格,先买入后卖出。通常由于买卖间隔的时间很短,在深度数据中往往找不到相应挂单,但是在历史数据中却能留下成交记录,K线就是通过这种做市方法绘制而成的。

请注意!漏洞就是这样出现的。

市商策略为了产生连续的K线,在盘口附近自买自卖挂单,却隐藏了一个漏洞。虽然策略的买单卖单是同时发出的,但是由于网络问题和撮合速度并不是理想状态,也不可能是理想状态,这就造成市商策略的订单,有一定几率被其他人成交。

设想一下,假如市场上存在另一个高频刷单策略,它总是以更低的价格成交市商策略的卖单,又以更高的价格成交市商策略的买单,只要这个高频刷单策略获得的差价,能覆盖手续费就会产生盈利。这就造成市商策略低卖高买,细思极恐!

实战演示

经过观察,某交易所的ETHUSDT交易对存在做市现象,参考对象可能是币安ETHUSDT数据,通过观察其盘口订单薄数据,发现存在自成交刷单,买卖方向随机,下图为当天该做市策略产生的K线。

v2-eb74badbe74aec218e591ff302e2567c_hd.jpg

通常高频刷单策略并不是在盘口随机定价,而是参考市商策略的上次成交价格随机变动的。这样实际上,成交价很难触及盘口低价和高价,再加上获取做市策略订单的成功率有限,几乎没有利润空间。甚至还要承担单边持仓风险。这看似无懈可击,但是如果我们利用做市订单必须在盘口中挂单的Bug,即可轻易破解交易所的市商策略,并牟取暴利。

具体步骤如下

当期望低价成交时,就在买一价的基础上加一定的价格挂卖单。当买一价是200,就挂200.1的卖单,然后不停的挂200.09的买单,并立即撤销。当成交后,立即反向操作,将成交的币高价卖出,如此完成一个循环。虽然这样的成功率并不多,但通过大量频繁挂撤单交易,使得捕捉到这种机会将大大增加,利润依然十分可观。

v2-6061758755e8550992807dafd0374e23_hd.jpg

如上图所示,通过发明者量化交易平台(FMZ)写了一个高频刷单策略,实盘运行几乎没有回撤。只用一个晚上的时间,就从1000USDT,刷到了4000USDT的利润。这还是温和的刷,如果用上多账户、多合约、多线程会跟加暴利。高频刷单策略利用这个漏洞后,窃取的是巨额资金,留下的是糟粕的K线,如下图:

v2-3227cec0c293c0895f937f5eb7a38912_hd.jpg

基于交易所市商漏洞的刷单策略源码

v2-16be39a14f0bb2d840e66d40ccf52856_hd.jpg

以上策略源码基于发明者量化平台(www.fmz.com)

防范的方法

针对这种做市策略,知道原理后解决起来就简单了,如做市策略的自成交价格在低位时只先挂买单然后挂卖单,反之亦然,这样就不会被别人低买高卖。或者将所有的成交和挂单都放在可以在其它交易所对冲的范围内。

写在后面的话

尽管交易所身处整个区块链产业的顶端,但它就像一个置身在外的巨人,透露了更多的攻击面和可利用的漏洞点。客观的说,能通过订单薄反推出来的不合理,都可能存在更隐蔽的Bug。就比如利用上文明显的交易所市商策略漏洞,攻击者可巧妙地设计出各种隐匿攻击策略,还能做到不知不觉。

如今,数字货币已成为投资新靶标,交易所也成为众多黑客的角斗场。隐匿在暗处的黑客如饿狼一般,伺机而动,紧盯着交易所的破绽,准备一击致命。区块链中心化交易所只能加强自身防御部署,让客户真正做到交易无忧。

本文作者:Hukybo,转载请注明来自FreeBuf.COM

# 区块链 # 薅羊毛
本文为 FreeBuf_310664 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_310664 LV.1
这家伙太懒了,还未填写个人描述!
  • 1 文章数
  • 0 关注者
文章目录