Puzzling over Proof-of-Bandwidth

eaglgenes101eaglgenes101 Posts: 43Member
edited January 2015 in Watercooler
I'm mulling over way to make it so that Proof-of-Bandwidth can become a practical means of proof in cryptocoins. Anyone that wants to use my ideas is welcome, but I'd prefer that you involve me in your creation so I can contribute more.

The promise of Proof-of-Bandwidth is two-fold: Bandwidth is more evenly distributed among people than computing power, and unlike work, of which there are many kinds that each can be optimized through specialization, there is one kind of bandwidth, and improving it for Proof-of-Bandwidth will improve bandwidth for other uses.

However, there are pitfalls. First is the problem of auditing; no one wants a bloated blockchain, but you want to make it so no one can just claim that they sent or received some chunk of info. Second, there is the potential for a modified Sibyl attack where a machine can simulate multiple machines inside of it, with predictably high bandwidth between the virtual machines, and pretend like each one has high bandwidth when in fact it's all inside a machine that is poorly connected to the internet.

I'll be detailing what I'm thinking below. Any help is welcome!


  • eaglgenes101eaglgenes101 Posts: 43Member
    edited January 2015
    Idea 1: Packet blitz

    1. People that want to show that they have bandwidth (and get the chance to receive money) can go up for a bandwidth challenge, where their bandwidth will be tested. Each one can be sender, receiver, or both.
    2. During a bandwidth challenge, senders are to transmit as much data as they can, while receivers are to sign globs of data. Right before the start, the senders come up with a seed value, consisting of the last blocks hash plus a random value, and sticks its hash on the blockchain.
    3. Senders are to send as much data as possible. They get their data by applying a CSPRNG algorithm to their secret value along with the public key of each receiver, which they then address send out to the receivers.
    4. Receivers, in turn, receive the packets addressed to them, and come up with a signature. For their signature, they specify an ordering of packets from senders, then choose a maximum packet number and a value n less than the square root of the max packet value. Then they sign the max packet they choose, and every nth packet before it.
    5. At the end of the testing period, all senders reveal the block hash they used and their secret value, and receivers reveal what parameters they used for their signature.
    6. Senders are scored by the median of the number of packets each person has used in their signature with the same block hash, with the median weighted by how much money the receiver has cumulatively received over all forms of proof.
    7. Receivers are scored by the median of the number of packets of each person they have signed, with the median weighted by how much money the sender has cumulatively received over all forms of proof.

    By weighted median, I mean that the person is counted in proportion to the weight they have. Someone that has twice the weight of another person is counted twice in the median compared to the other person.
    Post edited by eaglgenes101 on
  • eaglgenes101eaglgenes101 Posts: 43Member
    edited February 2015
    I heard Tribler was working on a bandwidth-as-a-currency system.

    In the meanwhile, I want to add an idea: People can put up money to "short" a person's bandwidth. A person that is "shorted" is restricted in the peers that he can have confirm him, and loses bandwidth for as long as he is shorted, while the person that shorted them gains money during the same period. A person can also "short" two people simultaneously, which makes it so that the two must do their tests at the same time. To break a short, the person must show, that under the restrictions, they can demonstrate the same bandwidth as before.
  • eaglgenes101eaglgenes101 Posts: 43Member
    I want to put this back up. In a weak subjective situation, the person that is most likely to be accepted is essentially the one that shouts the loudest while maintaining some measure of consistency. Why not make it so that yelling loud has a reward in the currency, and benefits everyone that does it?
  • samsam San FranciscoPosts: 9Member
Sign In or Register to comment.