Hi Ilya,

This proposal wouldn't work because bad actors can perform PoW just as cheaply 
as any other participant.


The transaction fee already acts as a mechanism to prevent spam. It is not a 
problem to have a lot of low value transactions in the mempool as thresholds 
can easily be set for them to be disregarded/expire - a 300MB  maxmempool size 
by default eliminates any real 'DDOS' risk. Spam only really becomes an issue 
when it enters the blockchain. If a spammer is willing to pay the tx fee to 
spam, they'd be willing to pay the PoW.


The only actors who can spam the blockchain at zero cost are the miners 
themselves (beyond the opportunity cost of including genuine fee paying 
transactions). They can even do it without their transactions ever hitting the 
mempool or including a fee, though this behaviour would be easy to spot.


If miners are colluding to spam the mempool or blocks in order to increase the 
average transaction cost overall there is little that can be done as the 
network relies on 51% of hashpower being honest. A miner creating spam 
transactions that enter the mempool has the risk that another miner would 
include it in a block and they would incur an economic cost if this happened.


I had an idea for a dynamic blocksize that required miners to pay a percentage 
of the transaction fees to the next mined block. Here is a link: 
https://lists.linuxfoundation.org/pipermail/bitcoin-discuss/2017-January/000123.html


If it was established that miners spamming blocks with transactions was an 
issue, this could be used as a disincentive as it means the cost for doing so 
becomes non-zero.


Regards,

John Hardy
j...@seebitcoin.com

________________________________
From: bitcoin-dev-boun...@lists.linuxfoundation.org 
<bitcoin-dev-boun...@lists.linuxfoundation.org> on behalf of Ilya Eriklintsev 
via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org>
Sent: Wednesday, June 21, 2017 9:55 AM
To: bitcoin-dev@lists.linuxfoundation.org
Subject: [bitcoin-dev] BIP Idea : DDoS resistance via decentrilized 
proof-of-work

Hello everyone,

recently I have got an idea that in my opinion will improve bitcoin network, 
making it better store-of-value for growing cyberspace and cryptoeconomy. Sorry 
for longread below and thank you for your time.

Decentralized proof-of-work and DDoS resistance for Bitcoin

Abstract

By introducing some new block validation rules it is possible to make Bitcoin 
network more secure, decentralized and DDoS resistant. The idea is to modify 
simple proof-of-work puzzle in such a way that user transactions could be 
hardened with the same proof-of-work algorithm thus incentivising all the 
miners to include that particular transaction. Such mechanism will effectively 
give a handicap to every miner who includes "mined" transaction into next 
block, increasing probability of him getting block reward.

Problems and motivation

This document will address the issue of a continuous DDoS attack targeting the 
Bitcoin network, e.g. full nodes mempools constantly being overflowed with 
transactions carrying small value reduce system primary ability to transfer 
value (and hence making it perfect store of value). Valid transactions are 
cheap to create (in the sense of computational effort required) and no adequate 
mechanism exist to make transaction total value increase probably of its 
confirmation by the network.

Currently, miners decide which transactions to include in blocks because it's 
them who are securing Bitcoin network providing proof-of-work certificates 
stored inside every block header. Miners have to store the whole blockchain at 
all times, so one of the costs is storage which grows linearly with the 
transaction size (blockchain size as well). Another cost is network bandwidth 
which depends directly on the size of data to be communicated over.

The only incentive a person who wants to transfer his bitcoins is allowed to 
use is setting of transaction fee, that is going directly to the miner. This 
solution probably was intended to utilize free market (as implied by Satoshi 
introducing sequence numbers) to determine appropriate fees, but that is 
obviously not the case, in the current bitcoin network operating in full block 
capacity mode. This fee market deviates significantly from a free market 
premise (also attempts being made to make it closer, e.g. in BIP125 where 
Replace-By-Fee signaling is supposed to help in replacing "stuck" transactions 
with noncompetitive fee).

Currently, bitcoin network is susceptible to the DDoS attack of a kind. 
Adversary creating and translating into the network a lot of transactions 
carrying small value (e.g. only miners fee), will be able to impair the ability 
to transfer value for everyone in the world, should he has enough money to pay 
the fees. Miners would continue to work providing security for the network and 
new blocks will consist of transaction transferring negligible value. It's a 
major drawback because the cost of such attack doesn't grow asymmetrically with 
the cost of BTC asset.

Proposed solution

So how do we incentivize all miners to include our transaction carrying a lot 
of value in the next block? The only thing a miner supposed to do to get a 
reward is to produce Hashcash proof-of-work, thus providing cryptographic 
security guarantees for the whole Bitcoin blockchain. What if including our 
transaction in a block would reduce effort requirements for the miner produce 
valid block?

We could do so by extending the concept of proof-of-work, in such a way that we 
do not sacrifice security at all. Here are both descriptions proof-of-work 
as-is and to-be:

Standart proof-of-work: hash(previous block hash + current block target + 
current block metadata + current block transactions) < target

Decentralized proof-of-work: hash(previous block hash + current block target + 
current block metadata + current block transactions) - sum( FFFF - hash( 
previous block hash + raw_tx ) ) < target

It is possible to imagine completely mining agnostic proof-of-work, for 
example, the following PoW would do:

Distributed (mining-agnostic) proof-of-work: sum( FFFF - hash( previous block 
hash + current block target + current block metadata + signed_tx ) ) < target

Described protocol change could be implemented as user activated soft-fork 
(described in BIP148), introducing new blocks with the modified proof-of-work 
concept.

Economic reasoning

An adversary whose goal is to prevent the network from transferring value will 
have to compete with good users hash rate using same equipment good miners will 
use. And it's far more complicated than competing with others using the money 
to pay transaction fees.

In order to investigate probable consequences of protocol upgrade and stability 
of implied economical equilibrium, we need an adequate game theoretical model. 
Such model and numerical simulation results should be obtained and studied 
before any protocol change could be considered by the community.

To me it seems like a win-win solution for everyone owning BTC:

Miners benefit: as the result DDoS attack will be stopped, Bitcoin becomes 
perfect store-of-value finally. Political decentralization of hash rate will be 
incentivized as mining equipment becomes relevant to every user.
Users benefit: miners will have direct incentives to include transactions 
deemed important by their sender and supported by some amount of proof-of-work.

Sincerely yours, Ilya Eriklintsev.
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to