Show HN: Very basic blockchain-free cryptocurrency PoC in Python
github.com
github.com
That's a thing now? :o. Please explain :).
There is no mechanism to link cost of proof of work generated to the value being transacted. With a blockchain, scarcity of space per block leads to a fee market forming, and fees paid increasing as the value contained per transaction increases. This leads to security (proof of work) increasing in proportion to value that needs to be protected.
My understanding of proof of work is that it's used to limit the number of new blocks which will get propagated through the network. Bitcoin automatically adjusts difficulty such that it approximately takes 10 minutes for a new block. If block creation intervals were lower it would compromise the security of the system and enable attacks with much less than 50% of the hash power.
Not really. The odds of an attacker successfully generating a double-spending block remain the same with a lower block interval. Many alternative cryptocurrencies have far shorter blocktimes: Litecoin has 2.5min blocktimes, and ethereum is less than 30 seconds IIRC, and they don't have problems with rampant double spends.
The problem with shorter blocktimes is that latency has a greater impact on mining profitability. A miner with a 600ms ping will lose ~0.1% of their revenue with a 10 minute blocktime, but will lose 2% of their revenue with a 30s blocktime.
This gives miners an incentive to centralize geographically to reduce their latency. No bueno!
I based my statement on the following paper: Serialization of Proof-of-work Events: Confirming Transactions via Recursive Elections: https://eprint.iacr.org/2016/1159.pdf
Unfortunately, recent research has shown that the Nakamoto consensus has severe scalability limitations [6], [25], [11], [18]. Increasing the system’s throughput (either via an increase in block size or block creation rate) comes at the expense of security: Under high throughput, Nakamoto’s original guarantee no longer holds, and attackers with less than 50% of the computational power are able to disrupt the system. To avoid this, Bitcoin was set to operate at extremely low rates. The protocol enforces a slow block creation rate, and small block sizes, extending the blockchain only once every 10 minutes (in expectation) with a block containing up to 1 MB (roughly 2,000 transactions). Users must thus wait a long while to receive approval for their transfers.
Regarding litecoin: litecoin does have a lower block creation time of 2.5 minutes - however if you look at the average block size of litecoin it averages around 15kB, compared to ~950 kB of bitcoin (basically exhausting its 1MB limit): https://bitinfocharts.com/comparison/size-btc-ltc.html Considering the litecoin network operates way below its maximum capacity a double spending attack is indeed unlikely. However whether that security would hold up under full load remains to be seen.
If you're interested in how big the delay is you can check this out, it's cited to the paper you linked me and I found it helpful.
Note that this is not currently the case in bitcoin, transaction fees have gone up with the current scarcity due to the arbitrary block limit, but the fees are still a pittance compared with block reward - which is the real incentive for mining (but will not always be the case as block reward reduces in the future).
This is somewhat of a sore point for the bitcoin community as a large (probably not majority, but large) portion of the user base / miners / nodes does not think scarcity of space is a good idea at current levels of transactions.
Also Ethereum (which at the moment uses a blockchain and mining mechanism very similar to bitcoins) does not impose a block size limit, rather leaves it up to the miners to decide on the "gas" limit (they have a computational limit rather than a block size, but it can be viewed as a parallel).
So transaction fees are not insignificant.
1: https://blockchain.info/charts/total-bitcoins July 6th data 2: https://blockchain.info/charts/transaction-fees July 6th data
Per block, fees average 0.9btc iirc.
Transaction reward is 12.5 btc
0.9 is not insignificant, but compared with block reward, the true (current) incentive providing block security is not in question, and that is what was being discussed.
people don't make race attacks on a "day" they make a race attack on a block or series of blocks.
https://bitcointalk.org/index.php?topic=1992827.0
Cheers, Paul.
edit: I thought Ripple and Stellar had blockchains?
How does MaidSafe work, by the way?
Here's the related white paper: https://iota.org/IOTA_Whitepaper.pdf
Website is here: https://iota.org
Seems to be more promise, hype abd marketing, than what it says on the tin.
> Milestones: Milestone is a special transaction issued by a special node called Coordinator. The Coordinator is run by Iota Foundation, its main purpose is to protect the network until it grows strong enough to sustain against a large scale attack from those who own GPUs. Milestones set general direction for the tangle growth and do some kind of checkpointing. Transactions (in)directly referenced by milestones are considered as confirmed.
This means that IOTA in its current form does not provide any censorship resistance, since the path of the tree is centrally directed through a Coordinator node run by the IOTA Foundation. As such, IOTA is no more decentralized than an Apache Kafka cluster, or Ripple and their Unique Node List. I would argue that this is crucial information a user needs to know, yet I have no idea how the average person is intended to learn about this, since it’s nowhere to be found in the IOTA whitepaper or on their website. (EDIT: Since this article was written, IOTA published a post regarding this matter https://blog.iota.org/the-transparency-compendium-26aa5bb8e2.... I responded to their post https://medium.com/@ercwl/hello-david-b77bbc62c457 )
Having said that, the positives about IOTA;
They seem to have developed their own hashing function, of the sponge family, called Curl - and are actually using the Westernelitz (oh jesus spelling, more space-efficient Lamport) signature scheme - it is a method of constructing a digital signature only from hash functions. Cool.
Check out the live DAG (aka the tangle) at https://tangle.blox.pm
But I would not say it's blockchain-free. They close a "block" every 5 seconds. Depends on what you consider a block. They use boring stuff like PostgreSQL to store the data instead of reinventing everything.
Stellar can store data on Postgres because it is just a small database of how much money each account has at each ledger. Past ledgers can be erased from the database (which makes it not a blockchain in any sense anymore).
Bitcoin has a history of all transactions organized in blocks not because it's a fancy new database technology, but because that way is the way it worked out better to keep a synced state between nodes, kind of an append-only log.
You could, if you wanted that, read the Bitcoin database and translate it into a set of rows of a who-has-how-much Postgres table.
Or, better, you could implement a Bitcoin client that stored its blocks as rows in a Postgres table, but I think it would be much more resource-intensive than the databases the Bitcoin clients are using today.
A Bitcoin node can store blocks/transactions in whatever way it wishes -- Postgres, Dropbox, SQLite DB on a floppy disk -- as long as it's able to deliver to nodes in the canonical serialization format, because it's needed to verify proof-of-work (and signatures for the transactions).
A block snake? That sounds catchy.
www.iota.org
You are probably thinking of the advertising whitepapers of scammy alt-coins and crypto-tokens. This is actually research.
If anything, a PDF designed for A4/letter is going to be cumbersome to read on a (probably rather small) 640x480 display.
The sad state of PDF rendering on (most) e-book readers should be evidence enough.
The kind of publication that has a distribution model based around print. Something that has usually been best served by PDF rather than html.