The concept is based on a new key type, because there seems to be no way
to accomplish this with the ones available. The key index (which can be
used as an inbox for mail) has the the following features:

1) The key index can be read the same way as a KSK-based index. Anybody can
    insert messages into free slots without previous negotiation, but he has
    to calculate a hash cash to do so.

2) The index has an owner. He signs price tags with his private key. A price
    tag fixes the price (in hash cash) an inserter has to pay for using a slot
    depending on the slot number:
      AmountOfHashCash = e^((slotNumber - a) / b)
    (The price tag contains the numbers  a  and  b.)

    Therefore higher slot numbers are exponentially more expensive to use.
    (Special care must be taken, so that the content of cheap slots
    can not be replaced easily: The last node in an insert chain starts a
    new data request for the key. The insert can only take place, if the
    data is not found.)

    The owner of the index will regularly publish new price tags
    with reduced prices, as the slots are filled. If there is too much noise
    or spam, then he will let the price increment with every slot filled.
    If someone wants do perform an denial of service attack against the index
    and fills quite a few slots, then he can never be sure though that no
    legitimate user is able to calculate the hash cash for the next slot.
    On the other hand, if there is too little traffic, then the owner of
    the index will reduce the price.

    (The slots of the key index are just numbered successively. They do not
    include a date. So the owner of the key index should publish
    the first free slot number regularly. From what I have seen in the
    README, Freemail does that already.)

3) If the owner of the key index trusts an other identity,
    he can send him a rebate ticket that disburdens him from part of
    the hash cash calculation. The ticket increases the value  a  in the
    price tags. One would send such a ticket with every mail so that the
    recipient can reply easily.
    Tickets have a special note on them, that they are only valid for
    content signed by the trusted identity, so that they do not have to be
    kept secret.
    Rebate tickets expire at a certain slot number in order to limit the
    impact of abuse. Alternatively the ticket may specify that it can
    only be used once. (The last node in the insert chain for the slot
    tries to insert a certain chunk of data as a CHK that is determined
    by the ticket. If there is a key collision, then the insert will
    be aborted. The ticket has to be kept secret until used in an insert.)

4) possible extension: The trusted identity in a ticket can pass his
    privileges on to other identities.


Let us call the new key type HCKs (for Hash Cash based Keys).
HCKs contain the following data (readable by nodes):
    slot number, public key, signed price tag,
    [signed ticket, public key of the trusted identity, signature for the 
content, ]
    encrypted content, hash cash.
The items in brakets [] are optional.

Nodes verify the slot number and the public key from the search key of the slot.
The hash cash is a fixed number of bits and can be verified as follows:
First the node calculates the AmountOfHashCash (see above). Then the
hash of
   the slot number,
   the encrypted content and
   the hash cash
modulo AmountOfHashCash must be zero.

--
  Thomas Leske


_______________________________________________
devl mailing list
devl at freenetproject.org
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl

Reply via email to