Review of Phantom
PHANTOM structures blocks in a DAG, a blockDAG. Each block can
thus include several hash references to predecessor. It can be regarded as a generalized version of Bitcoin. The consensus model essentially is to give the blocks an order first, and then validate transactions by the order of blocks which are consistent with the history. The order chosen follows maximizing tip algo which is similar IOTA. The anticone size parameter k can be seen as the width of the blockDAG and it can be controlled by the maximal delay time D, block creation rate \lambda and security threshold \delta. Thus these parameters can be tuned for different trade-off between security and fast finality.
The paper is not clear about some main ideas:
1, From the protocol, the “Ordering the DAG” algo is applied to get consensus, but at which stage? The only possible time I can think about in the paper is before every miner begin to mine a block. But if it is done at this stage, the cost of applying this algo is definitely more than “finding the longest block chain” from Bitcoin protocol.
Also, for miners to decide which Txs to put into the working block. Txs must be legit and consistent with historical TXs( no double spending for example). Compare to Bitcoin, the historical data for PHANTOM is very messy, because of the anticone, many TXs may appears multiple times, and all TXs needs to be validate because unlike Bitcoin, TXs in the ord(G) are not guaranteed to be validated, this will bring a lot of redundant data while make it is extremely hard for miners to check incoming TXs for the working block, not to mention client.