Some trust issues illustrated in the following examples are discussed here.
Suppose that we have two computers, A and D, and two networks b and c. A is connected to b, b to c and c to D. There are the three links A−b, b−c and c−D. Network b charges 5 microcents for each packet. Network c includes an intercontinental link and charges 60 microcents for each packet. For each link there is an up-down accumulator implemented at one or both ends of the link. Initially all link counters are 0. Each packet traveling between A and B has a non negative value field called “v”. All of the values shown below are in microcents.
As described in the paper the up-down accumulator for a link is incremented by a packet’s value as the packet passes to the right over the link and it is decremented as a packet passes to the left. The accumulator represents the value that the network operator on the left owes the operator on the right end of the link.If the accumulator is negative the operator on the right owes money to the operator on the left. Upon payment the accumulator is reset.
A sends a packet with a value field 100. The A−b link counter goes to 100. Network b deducts its toll of 5 microcent from the packet and passes the packet to network c causing the b−c link counter to increase to 95. Network c takes the packet, deducts 60 from the packet value leaving 35 in the packet. Network c delivers the packet to D increasing the c−D link counter to 35. D accumulates these values.
After 1000 repetitions the counter values are:
At this point D returns a confirmation packet to A that includes a value field of 35000. This decrements the c−D link to 0. Network deducts 60 microcents from the packet for carrying it under the ocean. The packet value is now 34940. Network c forwards the packed to b decrementing the b−c link counter to 60060. Network b deducts 5 from the packet leaving a packet value of 34935. The packet is returned to A over the A−b link decrementing that link counter to 65065. A now learns that its cost has been 100000−34935 = 65065.
After the return of the acknowledgment the link counters read:
According to settlement rules A pays b the A−b counter value 65065, b pays c 60060 and c pays D nothing for that counter is 0. Network b moved 1001 packets and has its net income of 5005 microcents. Network c moved the same packets and has its net income of 60060 microcents. The counters are reset to 0 as these payments are made.
A sends a request packet with a value of 10000 and a description of the 100 packets whereupon the link counters read:
D deducts 200 from the packet’s value and returns 100 packets each with value (9935−200)/100 = 97. On the return trip each of these packets decrease in value as they approach A. After Network c the value is 37 and after network b the value is 32. After all 100 packets are returned the A−b counter is down to 10000−3200 = 6800, the b−c counter is down to 9995−3700 = 6295 and the c−D counter is 9935−9700 = 235.
Now the counters are:
Under the settlement rules A pays b 6800, b pays c 6295 and c pays D 235. A’s income is 6800−6295 = 505. That works out to 5 microcents per packet. c gets 6060, 60 for each of the 101 packets it moved. D gets its 200 income plus 35 microcents resulting from its rounding down to the nearest microcent the value of each returned packet.
In effect A has paid for both D’s service and the transport cost.
These link counters are just one per link. One link counter is, of course, counting net money flow for many simultaneous transactions. Settlements are made whenever the counters get large (in either direction) or upon any other period agreed upon by the two parties.