Utter nonsense. It is sad that they wrote a paper based on the premise that timestamps can be used to solve the double spend problem (they can't) and then never did any research as to why Bitcoin doesn't rely on timestamps. I mean it isn't a minor note, it is the core claim of the article.
It surprising to discover that Satoshi did NOT introduce a transaction
timestamp in bitcoin software. It is NOT known WHY neither the original
creator of bitcoin nor later bitcoin developers did not mandate one. This could
can be seen as an expression of misplaced ideology. Giving an impression
showing that maybe the Longest Chain Rule does solve the problems in an
appropriate way. Unhappily it doesn't.
One would think that when writing a paper if you are surprised that it would lead you to question and seek information. Maybe you are surprised because you are misinformed, or misunderstand the conditions. Generally speaking just assuming your surprise is due to someone else being wrong and then not verifying that in any way is not the start of a good paper. Satoshi did not include tx timestamps because proving timestamps in a decentralized environment is an incredibly difficult (some would say impossible) task. In the absence of verifiable timestamps it would simply be wasted bits. Nodes can optionally record the timestamp of when they learn of the transaction but that will differ from node to node.
Currently an approximate timing of transactions is known in the bitcoin
network, it comes from the number of block in which a given transaction is
included: this gives a precision of approx. 10 minutes. Transactions without a
fee could be much older than the block. However all blocks are broadcast on the
network and it is very easy for the bitcoin software to obtain more precise timing
of transactions with a precision of 1 second, maybe better. A number of web sites
such as blockchain.info are already doing this: they publish timestamps for
all bitcoin transactions which correspond to the earliest moment at which these
transactions have been seen.
Seen by who? Oh thats right one individual node with no guarantee or assurance that ANY OTHER NODE has even seen that transaction much less at that time.
Then the solution is quite simple:
1. In case of double spending if the second event is older than say 20 seconds
after the first transaction, the first transaction will simply be considered as
valid and the second as invalid. This based on the earliest timestamp in
existence which proves that one transaction was in existance earlier.
This seems reasonable knowing that the median time until a node receives
a block is 6.5 seconds cf. [8, 9].
How are you proving timestamps? Timestamp is simply a number. I can give you a timestamp from the birth of Jesus does that mean I have proven I made a bitcoin transaction thousands of years ago?
The implementation of such a mechanism is not obvious and will be discussed separately below. However it seems that it could be left to the free
market: several mechanisms could function simultaneously. For example one can immediately use timestamps published by blockchain.info and simultaneously use timestamps from other sources.
So the decentralized currency is based on the timestamps as decided by some centralized "super peers". If I bribe the timestamp servers to say my tx is older then I can double spend without even using hashing power.
For solutions which would prevent various bitcoin web servers from manipulating these time stamps we will need to propose additional mechanisms,
such as secure bitstamps or additional distributed consensus mechanisms.
We will develop these questions in another paper.
Gee really? You are saying that decentralized provable timestamps are an incredibly difficult problem to solve. Maybe someone could use an append only linked list of timestamps, where each timestamp is proven by requiring the creator of an individual timestamp element use a non-trivial amount of resources. Thus once an individual element of the list has a sufficient number of elements after it then users would have some assurances that modifying the element would be very difficult. As part of the process to make the element of the list maybe we could put a hash of the txn in the element and thus substituting the txn becomes as difficult as changing the list. To avoid a lot of work needed for every txn you could have each element store a hash which represents an entire set of txns. Each user would always extend the longest valid list to force a consensus between multiple valid but incompatible lists. We could probably call these list elements "blocks" and the linked list a "blockchain".
In case of double spending if both events come within at most 20 seconds
of each other, miners should NOT include any of these transactions in block
they mine. Some miners can nevertheless accept a transaction because they
have only received one of the two transactions, or because they are trying to
cheat. Then their block could simply be invalidated because they have not
been careful enough about collecting all the transactions which have been
around. For honest miners this would occur with small probability.
So it becomes trivial to fork the network.
I create two transaction (with magical 100% provable decentralized timestamps which don't exist and yet are the lynchpin of the paper yet are not discussed in the paper) within 20 seconds of each other and broadcast one, when it is included in a block I broadcast the other one and the block just mined is invalid.
Again this decision on whether to include or not a given
transaction could be decentralized.
All this requires some form of timestamping and some security against manipulation of these timestamps to be implemented than in the current software,
either by consensus or secure timestamps.
By magic? I mean it like saying taking a spacecraft to the moon is a flawed strategy when we could just teleport there instead. Also teleporting to the moon will require some teleportation capabilities and stuff.
An alternative to timestamps could be a pure consensus mechanism by which
numerous network nodes would certify that that they have seen one transaction
earlier than another transaction. This can be very easy done: we can re-use shares
which are already computed by miners in vast quantities or select only certain
shares with a sucient number of zeros. We could mandate that if transactions
are hashed in a certain order in a Merkle hash tree, it means that this miner
have seen certain transactions earlier
I am seeing a trend, when you say "easy" it actually means "this seems easy because I lack the basic knowledge to see why it isn't". So a tx being in the merkle tree of a miner means it is first? What if a miner ignores the first tx and puts the second tx in the merkle tree? We have a tx in a merkle tree somehow it magically proves it was first? However even if it did, we are still operating on magical provable decentralized timestamps.
or another similar mechanism assuming
that the majority of miners are honest.
Wait a minute. Lets read this one again slowly "assuming that the majority of miners are honest",
"assuming that the majority of miners are honest". Really?
I know you can't mean majority as in >50% of the nodes by count because the entire concept of proof of work (or stake) is predicated on a well founded assumption that preventing a sybill attack in a decentealized network is infeasible. If you could prevent a sybill attack, well miners could just vote and there would be no need for work or stake at all. You wouldn't even need magical provable timestamps as each node would simply vote based on its own observations.
So by "majority" you must mean more than 50% of the hashrate. You didn't see where I am going when you wrote this? In other words even this convoluted, nonsensical solution still fails to prevent double spends when the attacker has 51% of the hashrate. Wasn't that the "flaw" that the entire paper is based on "fixing"?