Sync/serve protocols

Actually, the tool for doing this already exists, it is simply the rewarded ATXs as specified at ATX reward with a sliding window

  • The grading (as mentioned in my last post) isn’t needed at all in the sync protocol.
  • Instead, using a similar notation of the last post, Alice and Bob will use c_all_excluding_late_atxs := c_all XOR c_old_exluding_late_atxs where c_old_exluding_late_atxs will exclude ATXs of the last epoch (before c_curr starts) that weren’t rewarded according to ATX reward with a sliding window
  • Precise details:
    • The adversary can always send a never-before-seen \text{ATX}_0 before the cutoff time w.r.t. when the honest Alice and the honest Bob start their sync, so that Alice will include \text{ATX}_0 in her fingerprint and Bob won’t include \text{ATX}_0 in his fingerprint, and thus the fast detection (1st step in the last post) fails.
    • Our objective here is that the adversarty won’t be able to use \text{ATX}_0 that might be rewarded even though it caused the fast detection to fail.
      • In other words, if the adversary sends a never-before-seen \text{ATX}_0 such that \text{ATX}_0 declares itself to belong to an apoch from say 1 year ago, and only Alice (and not Bob) receives \text{ATX}_0, then indeed the fast detection should fail.
        • Bcause the whole purpose of the sync is that Alice will transmit \text{ATX}_0 to Bob.
        • In this case, \text{ATX}_0 is a syntactically valid ATX that the adversary expended spacetime resources to create, but the adversary won’t earn any reward for \text{ATX}_0.
    • Suppose for example that c_curr has the ATXs received in April, and c_old has the ATXs received in March.
    • Suppose that the last epoch before April is say E_{125}
    • For the fast detection, Alice and Bob disregard c_curr, and for c_old_excluding_late_atxs they use all the rewarded ATXs of E_{125} together with all the ATXs that were received in March (according to the local time of Alice and Bob) that don’t declare themselves to belong to E_{125}
    • If we haven’t implemented ATX rewards yet, then we can take c_old_excluding_late_atxs to be just all the ATXs that were received in March that don’t declare themselves to belong to E_{125} (i.e., we exclude all the ATXs that declare themselves to belong to E_{125}).
    • Note that not sync’ing the late ATXs of March is fine, just like Alice and Bob don’t sync yet the ATXs in c_curr for April (because they expect to receive recent ATXs via gossip).