Tuesday, 15 October 2019

Dramatically Increasing BTC (Or other PoW chains) Attacking Cost with Staking

Dramatically Increasing BTC (Or other PoW chains) Attacking Cost with Staking

In this article, we propose a way that could significantly increase a PoW blockchain (like BTC) double-spending attacking cost (potentially different orders) with staking (and slashing of course).

Definition 1 (Attacking Cost of A PoW Chain): Given a list of chained blocks [B0,B1,...,Bl] of a PoW chain, the attacking cost of reverting a recently-created block Bi by creating an attacking fork is about

C(Bi) ≈ H * (now - T(Bi))

where T(Bi) is the block creation time, and H is the cost of hashpower of network per second, which is assumed to be constant in a recent time window. The attacking cost over time can be illustrated as follows.

https://i.redd.it/7ffddddvims31.png

Now we impose a staking constraint for a PoW block:Definition 2 (A PoW Chain with Staking): To produce a block, besides reaching the block difficulty, a miner must stake S(N+1) tokens, where S is a pre-defined token numbers, N is the number of blocked mined by the same miner in recent W blocks. Note that the staked tokens will be locked much longer than the production time of W blocks to prevent transfer-and-stake cheat.

With the definition, we now have the following proposition

Proposition 1(Attacking Cost of A PoW Chain With Staking) The attacking cost of reverting a recently-created block Bi,i>l−W by creating an attacking fork is

C(Bi) ≈ (H'+SP/T)×(now−T(Bi))

where H' is the post-stake network hash rate cost per second, P is the token price, and T is the expected block interval. Note that since the attacker requires to stake S(l−i+1) tokens to create such attack, where all staked tokens will be slashed after the attack is discovered. As a result, the cost of slashed token per second is SP(l - i + 1) ≈ SP(now - T(Bi)) / T.

Example for BTC:

Using BTC as an example, suppose W=30, S=100, T=600, and price per BTC is P=8000 USD, the attacking cost of reverting a blocked generated 1 hour ago (about 6 block confirmations) with staking will be more than 6×100×8000=6×100×8000=4,800,000 USD, while the upper limit of attacking cost without staking is about 6×12.5×8000=600,000 USD. Note that, all miners require to stake 30×100=3000 to prevent the network staling. An illustration of such an example can be found below.

https://i.redd.it/wa0iysmtkms31.png

submitted by /u/qcqizhou
[link] [comments]


source https://www.reddit.com/r/btc/comments/di22jn/dramatically_increasing_btc_or_other_pow_chains/

No comments:

Post a Comment