Post
Topic
Board Altcoin Discussion
Re: Radix - Tempo Whitepaper
by
Fuserleer
on 27/09/2017, 16:15:52 UTC
Challenge 3

Because Tempo operates with relative time, not absolute time, nodes stick to a "I'll keep what I've witnessed unless proven otherwise" and even then, their logical clocks still count up.

For example, say Node(A) witnessed an Atom(x') at LogicalClock(5), then it received a conflicting Atom(x) that supposedly happened before.  It doesn't matter what the time stamp on those Atoms are, it will always reference its local ledger first to discover information that it can verify against.  For Atom(x) to be proven to be before, then it must have in it's ledger some information about Atom(x) where the logical clock value is less than 5.  If it is proven that Atom(x) was first, and is accepted by Node(A), its logical clock will still increment and it will keep a record of Atom(x').

This is where commitments come into play and why reliable gossiping is important, as a node never "takes anyones word for it".

For Node(A) to alter its ledger, accept Atom(x) and disregard Atom(x'), it must have a commitment containing Atom(x) in a Temporal Proof that it saw BEFORE Atom(x').  If, when Atom(x) is presented with commitment "proof", the node can not find the commitment hash in its ledger that should have been previously submitted, it assumes that Atom(x) was created in a faulty manner.

Because of the inability to tamper with the commitment sequence, Node(A) will not have such a commitment, otherwise it would discover Bob's scam.

The paper details that Node(A) will also contact a number of its neighbours to perform a more intense order determination.  This will also fail, as none of those nodes will have any commitments in their ledgers either that match the supposed "proof".

Bob could continue to create a sequence of Atoms, TPs and commitments independently, even sniffing legit Atoms from the main-net in order to try and increase the viability of his "proof" and then submit them all in one go.  It is still detectable that Bob was faulty or dishonest as no node will have any commitments from Bob since before Atom(x') and Atom(x) were created.  Which indicates a high likelihood that he was not part of the main-net at that time and should have ceased processing Atoms.  

The fact that he didn't stop, also suggests a fault or dishonesty.