Resouce Charging in Ad-hoc Networks

by Password Capabilities

Components

The Frameworks section describes the basic building block of a charging system. In this section, we'll briefly introduce some of the basic components necessary for charging resources in an ad-hoc network. Note that most of there components concentrate on the charging of packet forwarding. The reason for this is that packet forwarding is the most essential cooperative activity for ad-hoc networks, and also it's the most challenging. On the other hand, the frameworks is flexible enough that it can be a good basis for charging any resource types.

Price discovery

The price discovery component is responsible for discovering the prices of the routes discovered through the route discovery protocol. Some ideas are also described in the thesis on how to promote a fair free-of-charge services when the server node is idle.

Initialisation

When a node joins the network, some set of nodes are assigned to become its neighbours. Those neighbours then act collectively as its bank, creating an account for it with some initial amount of money. The Bank also gives the node the master withdrawal capability, which the node can use to create cheques. Nodes that are assigned as neighbours also performs group initiation steps, like registering their group ID, deciding on threshold public/private keys, publishing the public key, etc.

Cheque sending

Since cheques are just like any normal data, they can be transmitted in the network very easily. Note that it's essential that the link is secured, to prevent the password being stolen.

Account Transfer

When A has received a cheque issued by B's bank, when it needs to cas the cheque, it performs the following (general) steps:
  1. A exercise its deposit capability, with the cheque from BankB as a parameter.
  2. BankA acknowledges the request, and sends a request for BankB to decrement B's account.
  3. BankB verifies the cheque and decrements B's account by the amount given by the cheque, if the cheque is valid.
  4. BankB sends an authenticated message to BankA, saying that it has decremented B's account.
  5. BankA verifies the message, and increments A's account by the corresponding value.

Synchronization

Since the bank account information is stored redundantly by all the bank nodes, we have to periodically synchronize the information to prevent long-term discrepancies between the nodes.