Author

Topic: Begginer's Doubt About Fork (Read 205 times)

brand new
Activity: 0
Merit: 0
April 16, 2020, 10:06:02 AM
#6
I’m starting to get into the BW rules as I roleplay some more games, but I also encounter some difficulties in my path.

Well, the situation is the following: a group of tunnel-dweller wants to find it’s way through the tunnels and find the beast that they were searching for; then try to ambush it (or by some means have an advantage in positioning) and sneak to kill it. I ask them for a linked-test:

Orienteering + Tactics (vs. Observation) + Stealth (vs. Observation)

It would break down to:

Orienteering - Beginner’s Luck (Perception) + ForK + Help. I set the Ob 2 (night at familiar land), doubled it to 4 because of BL. So the player had: Per 4 + 1D (ForK) + 1D Help. The thing is, the ones helping didn’t have Orienteering but had Skills that could be used to help. So I imagined that BL only double the obstacle and didn’t negate the help.
Tactics - Almost the same. Beginner’s Luck (Perpcetion) + ForK + Linked Test Success + Help. It was a versus the beast Perception, so I couldn’t quite figure out how to do it. So it was: Per 4 + 1D Fork + 1D LT Success + 1D Help. This Help was totally my house-rule because none of them knew Tactics but all of them could help in some way. I just said that +1D would be enough. I know this is not written anywhere. And, they rolled against the beast and obviously won. What to do?
Steatlh - Again, Beginner’s Luck vs. Perception of the beast. Just said yes and didn’t ask for a roll and rolled a Steel test for the beast.

What’s the best way to deal with this?

The other question is handling a fight that everyone is involved. Following this scene, they sneaked and tried to kill it, but the beast didn’t die and engaged a Bloody Versus! with the guy down there (the rest were up in a bridge). My player’s wanted to help from distance, but I couldn’t also make a Range and Cover! because there was one guy too near. I wanted a more flexible system, where everyone would had a chance to do it’s actions in a space of time. I had to resolve the Versus! and then the other player’s actions.

Thanks!
legendary
Activity: 2968
Merit: 3684
Join the world-leading crypto sportsbook NOW!
December 31, 2019, 06:34:27 AM
#4
Although, in practical sense, a lot of bitcoin services already do accept deposits on 0 confirmations. The common case here would be casinos, where deposits are instantly credited, as soon as the tx is detected in mempool. So even without the tx not in a stale branch, it is theoretically possible to attempt a douple-spend without a 51% attack.

Also, as pointed out several times and most recently by Antonopoulos, a successful 51% attack right now -- while economically unviable-- would immediately be marked out by the majority of network as a malicious attempt. And they would all anyway vote to reject the chain and return to previous state. It would cause some chaos and lost resources for most, but it would totally bankrupt the attacker (since his chain would be rejected anyway).

 
legendary
Activity: 4466
Merit: 3391
December 31, 2019, 05:28:10 AM
#3
When the chain forks, let suppose that the network followed the stronger chain. If some transaction in the stale block is not duplicated in the chain is it reversed?

If the fork extend to some number of blocks, is not clear to me if is possible (and if is easy) a node verify transactions considering two chains, so it make sense to revert transactions from stale blocks.
...
Now say the chain fork at 5 and the old 5-6-7 were overwritten.
1-2-3-4-5-6-7

What happens is this, if your node is up that you sent your transaction out on, it will see the fork and try an resend the transaction
so instead of your transaction being included in block 7, it will be included in a later block.
In the new chain your transaction would be in block 8 or later. (depending on when you brought your wallet online)
1-2-3-4-5-6-7-8

Now say you had your wallet offline and knowing about the fork, decided you wanted to doublespend.
What you would do is keep your current wallet offline, export your private keys,
create a new wallet & import your private keys into it.  Delete your old wallet.
(Even easier just restore the wallet from a backup before you send out the coins on the original fork.)
Now you can bring your new wallet online, which won't resend your old transaction.
This transfers your balance but excludes the transactions, so that the transaction is not resend and you double spend.
...

That is not quite correct. When the chain is re-orged, then all transactions in the stale blocks that aren't already in the new chain are returned to the mempool. The result is ultimately the same, but it is not necessary for the wallet to resubmit the transaction.

The double-spend happens when a transaction in the new chain invalidates a transaction that was previously confirmed in the stale branch, and the already confirmed transaction is rejected. In order to do that successfully, that attacker must be able to add blocks more quickly than the rest of the network so that they can force a re-org with a branch containing the double-spending transaction. Such an attack requires more than 50% of the total hash rate, and that is why it is called a 51% attack.
member
Activity: 86
Merit: 28
December 31, 2019, 12:44:32 AM
#2
Now say you had your wallet offline and knowing about the fork, decided you wanted to doublespend.
What you would do is keep your current wallet offline, export your private keys,
create a new wallet & import your private keys into it.  Delete your old wallet.
(Even easier just restore the wallet from a backup before you send out the coins on the original fork.)
Now you can bring your new wallet online, which won't resend your old transaction.
This transfers your balance but excludes the transactions, so that the transaction is not resend and you double spend.

The way you explained suggest that I can double spend and create new BTC from that, but I understood, thanks.
member
Activity: 86
Merit: 28
December 31, 2019, 12:01:57 AM
#1
When the chain forks, let suppose that the network followed the stronger chain. If some transaction in the stale block is not duplicated in the chain is it reversed?

If the fork extend to some number of blocks, is not clear to me if is possible (and if is easy) a node verify transactions considering two chains, so it make sense to revert transactions from stale blocks.
Jump to: