Hacker Newsnew | past | comments | ask | show | jobs | submit | heptathorp's commentslogin

> This report of someone spending 800k already might well even be part of the scam, the same way any con artist on the street will have stooges pretending to throw in cash in order to convince others that it's legit.

That's exactly what it is. This sale was to their "partner" company Polyient Games, and they're putting 10 more up for auction next week. This sale was to anchor the price.


Note for those surprised by the price tag and talking about whales: this is not like your typical in-game purchase like a special sword, unique mount, or even skins in CS:GO. These tokens implement core gameplay functionality that other players will have to pay to use -- think dungeons in Legend of Zelda, but if another player could own a dungeon and you had to pay them to go inside. So really, these people are buying a stake in the game with the expectation of profiting if the game is a success.

I expect the SEC will be all over this once they catch up. It took them long enough to take action against XRP though which is pretty open-and-shut, so this might take a while.


Assuming this is an honest question and not a lame attempt at a gotcha: as more people switch to a vegan diet we will gradually stop breeding them in the first place, so there are no animals for something to "happen to."


Sort of both: OOH, mankind once again causes mass extinction for a few dozen species. OTOH, the oceans will be teeming with life.

The gotcha is mainly that one can support the welfare of animals but also be ok with their systematic extinction. I don't know which outcome is worse.


>You know the transaction exists, and at some point (i.e. after a certain number of blocks), if the transaction isn't included in the chain, you can conclude with reasonable certainty that the transaction is being intentionally orphaned. This allows you to reject the chain that doesn't include the transaction as invalid, and choose the longest chain that does include it.

So you are going to reorg after many blocks (enough to be sure a transaction is being censored). This sounds extremely undesirable as it kills finality. Today you can very reasonably be sure that after say, 6 blocks, a transaction is irreversible. That's not the case with this new rule.


It delays finality, but it doesn't kill it. Reorgs are already possible, this is why we currently wait for some number of confirmations (6 last time I checked) to say a transaction is complete. Adding the condition of requiring all transactions you've received to be included in a chain means that you need to wait for more confirmations to reach the same level of confidence that the chain is final, but it doesn't mean finality will never happen.

With a perfect network where everyone receives all transactions immediately, and where transactions are prioritizes for inclusion by transaction fee first, and order received second, we can conclude after ONE block whether a transaction with a high enough transaction fee is being excluded. But the network isn't perfect. There's some network analysis to be done here to gather probabilities, but for the sake of simplicity, let's say the network is reliable enough that we can reasonably conclude whether a transaction is being excluded in 5 blocks (I think the number is actually lower, but let's go with 5 to be safe).

So basically, what we're saying here is that if we reject the fifth block that doesn't contain a transaction after we see it, then we're forcing a reorg.

The attack you're describing happens when someone waits for China to start ignoring a transaction, then attempts to use the resulting reorg to execute a double spend.

Last time I checked, the recommendation was to wait for 6 confirmations to prevent double spends, because it would be unreasonable for an attacker to attempt to catch up to the main block chain when the main blockchain has a 6-block head start. But if China forces a reorg after 5 blocks, then the attacker attempting to execute the double spend only needs to catch up 1 block.

Trivially, all this means is that we have to wait for 5+6 = 11 confirmations to achieve the same level of confidence that we got from 6 confirmations when China couldn't force a reorg.

But wait: China actually can't force a reorg that quickly with 100% probability. In order to force this reorg, China has to mine 5 blocks in a row. China only has 66% of hashing power, so the probability of China mining a given block is P=0.66. The chances of China mining N blocks in a row is P=0.66^N. So the probability of China even being able to force this reorg is P=0.66^5=0.13.

That's not nothing, but that's a lot of effort for China to put in just for a 13% chance of delaying a transaction. Given China can't actually censor the transaction, only delay it, why would they spend all those hashing cycles to do this? The incentives don't line up.


Good points, thanks.

Followup question: how does a node coming online know not to trust China's (longer, censoring) chain? It wasn't online to have the transaction in its mempool, so it doesn't know to check for it in the longest chain.

I think it would need to check all candidate blocks with lower heights to see if their chains contain any transactions that aren't in a longer chain.

What happens if I mine off of a very old block and include my own transaction in it, and present it to you... how do you distinguish between what I just did vs the longer chain having censored the transaction this whole time?


> Followup question: how does a node coming online know not to trust China's (longer, censoring) chain? It wasn't online to have the transaction in its mempool, so it doesn't know to check for it in the longest chain.

> I think it would need to check all candidate blocks with lower heights to see if their chains contain any transactions that aren't in a longer chain.

Yes. You wouldn't need to store all these, though, you just sweep them up once you find the transactions included in the longest chain.

> What happens if I mine off of a very old block and include my own transaction in it, and present it to you... how do you distinguish between what I just did vs the longer chain having censored the transaction this whole time?

Broadcast all transactions you have which aren't already in the longest chain to the network, and wait for them to include them.

I'm not 100% sure, but I think transactions get rebroadcast automatically already until they're included.


You are mostly correct. Except only your Bitcoin client sees the checksum/address, the raw transaction has just the pubkey hash encoded in the address. So there is no checksum for other nodes to check. If you accidentally crafted a transaction with the wrong hash in the scriptPubKey, the network would happily accept it.


This requires colluding with a miner, since nodes will reject a transaction that spends the same output as a transaction they've already seen. For a small payment like a coffee, it should be enough to check that the transaction has a reasonable fee and wait 1 second to see that it has propagated through the network.


Programming Bitcoin[1] guides you through building a Bitcoin implementation in python starting with the fundamentals, like what you are doing.

[1] https://github.com/jimmysong/programmingbitcoin


Problem is even though Facebook was restricted to a very small set of people, each of them could interact with most/all of the people they wanted to (other college students). Same was not true for Google+, people didn't have enough invites to give to all of their friends.


You make it sound like ether can only be used to pay for gas. It can also be transferred to another account in a transaction, it's the native currency for making payments. It will also be required for staking.


At this point, the "native currency for making payments" seems to be moving to 'wrapped ETH' or something like it, since all the higher-level infrastructure being built for security tokens et al, assumes contracts on both sides of the transaction.


> It can also be transferred to another account in a transaction, it's the native currency for making payments.

yeah, with better competitors on its own blockchain!

DAI and other stable value assets are good enough for that. DAI even has its own sidechain xDAI to let it be the native unit without needing Ether as gas, and can settle states back to the Ethereum Blockchain.

Looking forward to the staking. Vitalik has so far been a one-hit wonder 6 years ago, not sure if you should really listen to him, but some people plan on rolling out the staking version soon.


His point is some of the cheapest energy in the world is renewable (like hydroelectric energy in China), which is what Bitcoin is using. Bitcoin mining can take place virtually anywhere in the world so it can be done where energy is already abundant.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: