Discussion:
BIP Idea : DDoS resistance via decentrilized proof-of-work
Add Reply
Ilya Eriklintsev via bitcoin-dev
2017-06-21 09:55:22 UTC
Reply
Permalink
Raw Message
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.
Conrad Burchert via bitcoin-dev
2017-06-22 12:02:45 UTC
Reply
Permalink
Raw Message
As soon as there is competition for block space, people will likely
outsource creating the proof of work on the transaction to "transaction
miners". This would likely result in giving a fee to those transaction
miners. If those are the same miners as those mining the block, we are back
at the current system.

Put in other words: We are already doing this, you are paying the miner for
a piece of the proof of work of the block. If you want to mine instead of
paying, just mine a block and use a part of the block reward to pay the fee
for another transaction.

This also does not work to prevent spam. Instead of paying the transaction
fee you can just pay someone to mine proof-of-work on your spam
transactions, resulting in roughly the same cost. There is no reason a
normal user would be better in doing this than a spammer, likely it is the
other way around as the spammer is a more reliable customer for a miner.

2017-06-21 11:55 GMT+02:00 Ilya Eriklintsev via bitcoin-dev <
Post by Ilya Eriklintsev via bitcoin-dev
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
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
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.
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
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
Ilya Eriklintsev via bitcoin-dev
2017-06-22 13:41:55 UTC
Reply
Permalink
Raw Message
Thank you, Conrad, for the feedback and I think I can see your points
clearly, but I would disagree that decentralised proof-of-work doesn't
change game rules drastically.
You are correct about proof-of-work market splitting into
"transaction-miners" and "blockchain-miners", but this is not just another
way to pay the fees, it's actually completely different mechanism. Here are
some arguments that might be able to convince you or at least to question
your premises:

1. Since bitcoin mining is a game in which winner takes it all, modified
proof-of-work will introduce a new tradeoff for the miners: either you
collect more fees (increasing risk of losing reward) or you collect more
proof-of-work (increasing reward win probability). This will create the
missing economic link between transaction fees (BTC) and proof-of-work
security costs (Hashcash PoW), creating the secondary market of
transaction-mining-capable hash power / BTC. It feels like some new game
dynamics arise in this setting, but I haven't run any numerical simulations
yet, though I'm going to do so.

2. Why is it possible to stop spam and DDoS of the network? The reason is
that to generate transaction proof-of-work user have to spend some physical
time (not money). After the user found out previous block hash he has two
choices: either to start doing some work (probably with the help of
transaction miners AND money) or instantly adjust fee at every moment (only
money). This adds a new signalling mechanism alongside standard fee market,
which will make it possible for miners to filter and do not propagate
transactions with PoW less than some handicap value (of course they can
always agree on some whitelist of non-spammers), thus preventing abuse of
spammer transactions with competitive fees to delay valuable and important
transfers of BTC.

Hope I addressed all the issues you mentioned.
Post by Conrad Burchert via bitcoin-dev
As soon as there is competition for block space, people will likely
outsource creating the proof of work on the transaction to "transaction
miners". This would likely result in giving a fee to those transaction
miners. If those are the same miners as those mining the block, we are back
at the current system.
Put in other words: We are already doing this, you are paying the miner
for a piece of the proof of work of the block. If you want to mine instead
of paying, just mine a block and use a part of the block reward to pay the
fee for another transaction.
This also does not work to prevent spam. Instead of paying the transaction
fee you can just pay someone to mine proof-of-work on your spam
transactions, resulting in roughly the same cost. There is no reason a
normal user would be better in doing this than a spammer, likely it is the
other way around as the spammer is a more reliable customer for a miner.
2017-06-21 11:55 GMT+02:00 Ilya Eriklintsev via bitcoin-dev <
Post by Ilya Eriklintsev via bitcoin-dev
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
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
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.
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
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
John Hardy via bitcoin-dev
2017-06-22 13:47:14 UTC
Reply
Permalink
Raw Message
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
***@seebitcoin.com

________________________________
From: bitcoin-dev-***@lists.linuxfoundation.org <bitcoin-dev-***@lists.linuxfoundation.org> on behalf of Ilya Eriklintsev via bitcoin-dev <bitcoin-***@lists.linuxfoundation.org>
Sent: Wednesday, June 21, 2017 9:55 AM
To: bitcoin-***@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.
Ilya Eriklintsev via bitcoin-dev
2017-06-22 14:18:40 UTC
Reply
Permalink
Raw Message
Thanks a lot for the reply, let me think it over and come up with a proper
response. You and Conrad may be right about the proposal being irrelevant
to DDoS, so I'll try to come up with the more solid argument supporting my
point of view, otherwise, I will refute the proposal myself). At the moment
I feel like I need to specify game theoretical model and consider all costs
and incentives in more details. Sincerely yours, Ilya Eriklintsev.
Post by John Hardy via bitcoin-dev
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
------------------------------
*Sent:* Wednesday, June 21, 2017 9:55 AM
*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
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
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.
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.
Loading...