我看英文贴里bm解释了,大概是因为它采用的不是最优价,而是你要价多少如果成交就一定给你这个价格。比如现在最高买价是5,但是你给出卖价3,那你就会以3卖出,而买家就以5买入,中间的差额算作手续费。总之大概是说希望大部分人不会做超短线(一两个块)。你说的在同一个块同时以最高价卖出,最低价买入,在这个机制下,貌似不太可能,这个跟撮合逻辑有关,而这个逻辑是协议的一部分,如果代表不按这样做,所有客户端会立刻自动识别并开除。另外不包含某些交易其实也是可以被自动发现并警告用户建议更换投票的,因为交易是广播的,如果你老是不包含某些交易,是可以被自动识别的。因为每笔交易都包含上个块的hash,系统是可以自动计算出代表的平均延迟时间的,就是每笔交易被延迟了多少块。我觉得这个可以作为该代表某项指标(甚至可能是主要指标)供投票者参考。
例:
当前块有最高买价5(1BTS),最低卖价3(1BTS),代表自动加入3买入1BTS,5卖出1BTS,
5 Sell 1
3 Sell 1
5 Buy 1
3 Buy 1
撮合逻辑应该是3 Sell match 5 Buy,5 Buy的会出5 bitUSD得到1BTS,3 Sell的会失去1BTS,得到3bitUSD,中间的2bitUSD会作为手续费。然后你的交易都不会成功。
假如你为了插队,用6买入,2卖出,那你就会获得6买入,2卖出的结果,我想你应该不会做这种事。或者你也可以不包含5买入的交易而你自己做个3买入,这个可能是存在的,但是这个其实伤害不太大,主要还只是对那个5买入的人的伤害,而且你不可能一直不包含这个交易,因为延迟交易太久会被人发现,所以那个5买入的有很大可能还是会在后几个块成功买入,只要块生成的速度够快(DPOS的目的,比如几秒一个块),延迟一两个块不会对交易产生太大影响。
这里的重点是撮合逻辑是协议的一部分,你不能随意更改。同一价格多个交易之间的排序逻辑我没有看到,但是我觉得可能会以交易的等待时间(块数)为准。就算两个顺序部分先后,我觉得对代表也没有太大作弊的意义。
当然这也只是我的理解,供探讨。