I've been musing about PoW/PoS systems and I want to lay my ideas out here and see what people think.
I'm thinking of a mining algorithm where proof of ownership is used in conjunction with proof of elapsed time between blocks. I want to call this Proof of Time-Ownership (PoTO). Addresses (in bitcoin or ethereum or whatever) have some data-space they lives in, eg a range from 0 to 1055.
Let's say that each address is given a range depending on the amount of coin that address has. Eg if we're talking about bitcoin, we might do something like say if your address is 1040
and has 100,000 satoshi in it, then your range is from (1040
) to (1040
+ 99,999). Then let's say an address point is chosen and anyone who's address range contains that address point can mine the next block. Then 1 second later, another address point is chosen and anyone who's address range contains the first OR second address point can mine the next block. Then the next second, it happens again until someone mines the block.
The block time can be kept consistent in the same way something like bitcoin does: by adjusting a "difficulty". For this algorithm, the difficulty would be the number of addresses chosen per second. If blocks are being mined too quickly, the number of addresses chosen each second would be decreased, and vice versa.
This relies on network-time to judge whether a block is valid, since a block mined (ie signed) by a particular address is only valid after the time their address range comes up in the progression of the address points given mining rights. Just like two bitcoin blockchains can be compared by their cumulative difficulty, two blockchins using this new algorithm could be compared by their cumulative difficulty (the longer one being the one chosen).
The benefits of this are that miners are basically chosen randomly without (economical) ability to grind for more rewards. More people would be able to mine because there would be basically no additional cost over a normal full node for mining. Because so many people could do it, it could basically eliminate miner centralization.
While the cost of mining would be very low, the cost of attacking the system would be similar to the cost of attacking a Proof of Work system. You could attempt a 51% attack, but if a large portion of users are mining (at least when they're online), that would require buying up just as many coins as those users have in total, which could amount to tens or hundreds of billions of dollars. You could also attempt block grinding attacks, and I've suggested a solution for that below.
Some problems that Ethereum's Casper might have
that this doesn't:
- PoTO remains P2P & protocol-neutral - While casper has a validator class and a node class, with this new protocol, everyone is potentially a miner. While in Casper, you have a specific quorum chosen each round, in PoTO, new address points will be chosen, allowing more and more of the address space to mine a block, meaning that the longer it takes for a block to be mined, the more people will be able to mine a block. We could even make it so that if the target time has been exceeded by a certain threshold, the number of address points chosen per second can increase so even in the case some apocalypse happens, we wouldn't have to wait months for a block.
- PoTO doesn't have the baton-passing problem. In Casper, some set of old validators must approve a set of new validators. Perhaps there's something I don't understand here, but this seems like an enormous potential problem that could cause centralization. In PoTO, there is no quorum that chooses the next quorum - the next progression of potential miners are chosen completely randomly.
Other potential problems (all I think, solvable):
- "Nothing at Stake" problem where in the case that two blocks are found, miners might mine on both forks forever. This can be solved in the same way Casper solves it - the miner of a block can be punished for mining on top of two different blocks at the same block height by revoking their reward and a portion of the funds in the address they used to mine those blocks.
- Miner Block Grinding - Miners might mine different combinations of transactions (including transactions they generate themselves) to maximize the likelihood that their address space will come up in the next block. However, if most people participate in mining, block grinding is unlikely to be fruitful unless you own an enormous percentage of the coins in the system (maybe >5%). If it turns out it would be fruitful, an aspect of Proof of Work could be added to mine the block, such that the additional PoW cost required to even check if a single block would be beneficial, would end up costing more than it could ever be worth to pull this off.
- Block Grinding attack - Similarly to the above, a miner might block grind in order to pre-generate a longer chain that would be used to perform double spends (tranasctions would be sent on the main chain, and the pre-generated chain would be dropped into the network to reverse those transactions). I think this can be similarly solved with a small PoW requirement for a valid block
- Might require your private key to be online for signing. That is unless there's some cryptographic technique that can be used to prove you own an address without the ability to spend from that address.
- DDOS - Since the addresses that are able to mine the next block are known as soon as the previous block is mined, those miners could be DDOSed (by competing miners or by other malicious actors). Even if this does happen, while it would suck for the miners who come up first in the progression, it wouldn't significantly impact the network as a whole, since more and more potential miners would come up in the progression, requiring a DDOS attack to attack more and more targets as time went on. But this could only happen if the IP address associate with a given coin address becomes known, and other measures could be taken to shield yourself from new traffic and only interact with existing connections.
- Time shifting - If actors are incentivized to alter network-time to their advantage, things could go wrong. However I don't think this will be a problem, because time shifting shouldn't give anyone an advantage. Shifting time backward would only give current potential miners more time to realize they're a potential miner, mine, and broadcast the next block, but any active miner is probably instantly aware of this already and mining a block would be pretty fast. Broadcasting can take some seconds, and so might provide some small incentive to time-shift. But even if network-time becomes shifted over time, the accuracy of network time isn't that important.
- Initial Centralization - Since only people who have coins can mine, a new blockchain would be pretty centralized since most owned coins would be coins held by the miners who earned them. The solution to this would be to start the nextwork off with a proof of work algorithm until the coinbase rewards are no longer a significant part of the coin circulation.
One thing this eye-opening article
describes is that the only way to create a system that doesn't require "wasting" an amount equal (on average) to the money earned by mining a block is to find a completely "work-independent" protocol where the person chosen to mine the next block is chosen in a way that is "totally independent of all possible human activity". I disagree tho. The amount of work a person should be willing to do is equal to the amount of additional
reward they will get by performing that work. So if you're earning, say, 60 btc of block coinbase+fees per week by simply waiting for your address to come up and mining a block then, you would have to expect more
than 60 btc / week if you were going to put in additional effort.
For example, if it cost you 1 BTC/week of block grinding to give you an additional 1% likelyhood of mining a block, you wouldn't do it, because that extra 1% of 60 BTC is only 0.6 BTC (ie less than the amount you're spending to increase your likelihood). Given that we can easily control how effective block grinding is by adding a PoW component, this seems to be an easy problem to solve.
Update 1: BIacktemplar
suggested an alternative that might obviate the need for an added PoW component. The idea is that rather than determining the miner for the next block using a hash of the previous block, you take 1 bit of information from the most recent block, 2 bits from the second most recent, 3 bits from the 3rd most recent, etc - f(H1 % 2, H2 % 4, H3 % 8, H4 % 16, H5 % 32, ..., H20 % (230)) where f is the function that determines the next miner progression. This way, anyone mining a block only has 2 choices of miner progression to choose from and has no ability to block grind beyond those two choices.
One issue with this is that it makes it so that pool mining (which could be done by making a multi-sig address with a pool so that you both have to sign for a block if your address comes up in mining) has some centralization pressure even with the choice of just 2 different blocks. Update 2:
I took this discussion and turned it into a spec: https://github.com/fresheneesz/proofOfTimeOwnership
Digital money that’s instant, private, and free from bank fees. Download our official wallet app and start using Bitcoin today. Read news, start mining, and buy BTC or BCH. Bitcoin Money. 85 76 11. Bitcoin Crypto-Currency. 45 30 6. Bitcoin Dollar. 2 4 0. Three Bitcoin Bitcoin. 3 4 0. Bitcoin Glass Marbles. 1 2 0. Bitcoin Bull Coins. 56 50 15. Bitcoin Cryptocurrency. 2 3 0. Gold Bitcoin Handful. 2 4 1. Multiple Bitcoin Bitcoin. 41 48 7. Cryptocurrency Bitcoin. 33 46 1. Woman Young Adult. 53 32 45. Bitcoin Crypto-Currency. 4 2 0. Orange Bitcoin Stones. 40 29 8 ... bitcoin Photos. cryptocurrency technology finance money trading business blockchain crypto gold ethereum abstract stock market bitcoin mining hacker coin coins stocks chart tech data trade world network city blockchain technology people computer stock luxury currency Pixabay. Worldspectrum. Worldspectrum. Worldspectrum. Worldspectrum. Marta Branco. Worldspectrum. Moose Photos. Roger Brown ... Download this free HD photo of money, wristwatch, coin and orange by Dmitry Demidko (@wildbook) Download this photo by Dmitry Demidko on Unsplash. Search. Unsplash Photos for everyone. Search. Explore 🏆 Unsplash Awards; Submit a photo. Login Join free. Dmitry Demidko @wildbook. Download free. Share. Info. Related collections. FinTech. 6 photos · Curated by kurihara k. fintech. coin ... Download all free or royalty-free photos and vectors. Use them in commercial designs under lifetime, perpetual & worldwide rights. Dreamstime is the world`s largest stock photography community. Use them in commercial designs under lifetime, perpetual & worldwide rights.
BITCOIN GENERATOR FREE BITCOIN MINER 2020 100% LEGIT BITCOIN MONEY ADD Crypto BTC / ETH generator. Free to use. .Get your first free cryptocurrency on wallet... Do u know how to invest in Bitcoins? How many cryptocoins exists? How can i multiply my money? In this video i teach you the basic tips that you have to know... How to Send & Receive Bitcoin with Cash App - A tutorial on how to deposit and withdraw bitcoin using cash app. 💸 Get Cash App ($5 FREE): http://cash.me/app/... Support our channel by using the Brave browser, browse up to 3 times faster, no ads, get rewarded for browsing: http://bit.ly/35vHo0M Bitcoin Cash was create... Today I try to survive on only a Bitcoin for 24 hours. It might be harder than the penny challenge ironically. oh well. im a robot Watch another video http...