0 Members and 1 Guest are viewing this topic.
Quote from: Troglodactyl on March 22, 2014, 04:10:36 pmQuote from: drltc on March 22, 2014, 09:23:38 amQuote from: bytemaster on March 21, 2014, 10:58:42 pmPerhaps something with multi-signature addresses. If you require 2 signatures to spend a balance, but just 1 to mine with it then you may have additional security.If the pool operator's signature is required to spend your balance, doesn't that mean you can't get your balance back if the pool operator disappears?If you're considering this idea, I'm pretty sure you'll wind up exactly where I suggested -- having a way to sign over the authority to mine with your balance, but not to spend it.Exactly, if you use multisig for this, people can have full control of their own wallets, but send a copy of one key to the pool operator to mine for them. It's possible most people wouldn't care who mined for them, and would thus make their "mining key" basically public, potentially undermining POS.If mining income could be directed to an address other than the mining address, that would force people to care who mined for them, but then it seems like you might as well just allow full multiple input multiple output mining transactions.Here is how I view things... once a year you need to bring your wallet on line if you want to avoid a 5% inactivity fee. If you 'mine a block' while you are online anyway then you still contribute to the security of the network even if your keys are not 'online' all of the time.
Quote from: drltc on March 22, 2014, 09:23:38 amQuote from: bytemaster on March 21, 2014, 10:58:42 pmPerhaps something with multi-signature addresses. If you require 2 signatures to spend a balance, but just 1 to mine with it then you may have additional security.If the pool operator's signature is required to spend your balance, doesn't that mean you can't get your balance back if the pool operator disappears?If you're considering this idea, I'm pretty sure you'll wind up exactly where I suggested -- having a way to sign over the authority to mine with your balance, but not to spend it.Exactly, if you use multisig for this, people can have full control of their own wallets, but send a copy of one key to the pool operator to mine for them. It's possible most people wouldn't care who mined for them, and would thus make their "mining key" basically public, potentially undermining POS.If mining income could be directed to an address other than the mining address, that would force people to care who mined for them, but then it seems like you might as well just allow full multiple input multiple output mining transactions.
Quote from: bytemaster on March 21, 2014, 10:58:42 pmPerhaps something with multi-signature addresses. If you require 2 signatures to spend a balance, but just 1 to mine with it then you may have additional security.If the pool operator's signature is required to spend your balance, doesn't that mean you can't get your balance back if the pool operator disappears?If you're considering this idea, I'm pretty sure you'll wind up exactly where I suggested -- having a way to sign over the authority to mine with your balance, but not to spend it.
Perhaps something with multi-signature addresses. If you require 2 signatures to spend a balance, but just 1 to mine with it then you may have additional security.
Quote from: Agent86 on March 21, 2014, 10:17:21 pmDo you think people will be reluctant to mine, because they don't want to have their wallet open and private keys on a networked computer? (no cold storage protection) Is there any way to allow more peace of mind than I am imagining?I think NXT had a problem that not many people ran nodes and not many people bothered to mine.Perhaps something with multi-signature addresses. If you require 2 signatures to spend a balance, but just 1 to mine with it then you may have additional security.
Do you think people will be reluctant to mine, because they don't want to have their wallet open and private keys on a networked computer? (no cold storage protection) Is there any way to allow more peace of mind than I am imagining?I think NXT had a problem that not many people ran nodes and not many people bothered to mine.
Can someone first clarify the meaning of 'mining' in the context of TaPOS? It is not something similar to POW that performs hashing computation. For TaPOS, I don't think it is hashing or anything computational intensive. That is not the purpose of POS. Is this 'mining' just 'leave the wallet process running'?
Selling Bitshares to buy mining hardware seems to be pointless if PoS can secure the network. I thought Bytemaster was going with Ripple consensus and if that is the case why do we need mining via PoW at all?
For what purpose is hashing power used?
we still rely upon mining for one function: decentralized selection of who gets to produce the next block.
The equation in my previous post, R = h * c * f(t)has an interesting consequence. Let's assume you can trade US dollars for either hardware or coins. In particular you have a budget of W dollars. You spend x dollars on coins, and W-x dollars on hardware. Then your rate becomes: R = k * (W - x) * x * f(t)where k is a constant factor (the product of the hps-per-dollar and coins-per-dollar exchange rates).This is a parabola with two zeros, at x=0 and x=W; the maximum occurs at a vertex halfway between them. The practical interpretation is that profit-maximizing miners will desire to have equal investments in coins and hardware. This means miners will serve as a buffer that will stabilize the USD exchange rate. If BitShares start to lose value, miners will be able to increase their profits by selling hardware and buying BitShares; if BitShares value starts to increase, miners will sell BitShares and buy more hardware to maintain that 1:1 investment ratio.There are significant downsides, however. If BitShares market capitalization becomes big, it seems wrong to believe that investments in mining hardware will keep pace. That means people who have hardware will play a disproportionate role in securing the network. Also, it seems reasonable to assume BitShares will experience a rise in value after launch as people join the ecosystem due to its features. The stabilization effect above will act as a brake on this increase in value; miners will sell BitShares to invest in hardware. Presumably AGS / PTS genesis block investors will be particularly annoyed. I would assume such investors would prefer not to have any brakes on the early expansion of BitShares' market capitalization, and would be willing to pay the price of increased exchange rate volatility in the long run.I think Peercoin solves these issues by a complex mechanism that amounts to putting a very small upper bound on the hashpower a single address is allowed to have. I'm not sure off the top of my head how Peercoin deals with sybil whales. But Peercoin is surely a good place to look for proof-of-stake design ideas. I would go so far as to say that deviations from Peercoin's design should require significant justification.
So would the ideal mining strategy be to have a lot of shares, and a decent amount of hash-power? Also, couldn't you include a transaction to yourself in the block you're mining, but not broadcast that transaction until you broadcast the block, thereby increasing the number of CDD in your block, but without risk of losing the CDD if you fail to mine out a block?
The way I think about it is to imagine the Rate at which a node produces "block chances." This rate is impacted by three things: Hardware, coins, and time."Hardware" refers to how many hashes per second your CPU / GPU / ASIC can produce. Architecture is irrelevant as far as the network is concerned, only the rate at which hashes can be produced."Coins" refers to how many coins (BTS) you have (duh)."Time" refers to how long you have held those coins.Of course, CDD = coins * time (by definition).Increasing your hardware increases your Rate by allowing you to try more hashes per second. Increasing coins or time also increases your Rate because the network will lower your difficulty.In traditional PoW cryptocurrency (Bitcoin / Litecoin), rate is equal to hash power: R = hThe most intuitive way to define rate is to have Rate be linear in everything: R = h * c * tMore complicated schemes are possible. But fundamentally I think you should be linear with respect to h and c. To see why, think about hardware whales and coin whales. (A "hardware whale" is somebody who has a lot of mining hardware; a "coin whale" is somebody who has a lot of coins.)If the partial derivative of R w.r.t. hardware is decreasing, then it incentivizes hardware whales to split up their hardware among multiple accounts (i.e. become sibyls). There is no way the network can prevent a whale from using as many addresses as needed to reduce his whaleness arbitrarily small (at least until he gets so small that transaction fees become significant). This is a highly undesirable behavior, so the partial derivative should not be decreasing.If the partial derivative of R w.r.t. hardware is increasing, then it incentivizes centralization. An increasing partial derivative would mean that you and I would be able to combine our hardware and get profits above and beyond what we could get if we ran our hardware individually. This is highly undesirable behavior, so the partial derivative should not be increasing.Thus R'(h) must be constant, i.e. R is linear in hardware. A similar argument applies to the partial derivative of R w.r.t. coins. So R must have the following form: R = h * c * f(t)This is quite clear. You have some time-dependent boost factor f(t), you can design it to have whatever desirable characteristics you want. The faster f(t) rises, the more advantage ancient balances have against recent balances. You don't want f(t) to rise too fast, since this might make the network's total rate fluctuate too quickly for the difficulty adjustment to keep up, which could lead to undesirably long or short times between blocks. But if f(t) is flat, large stakeholders have too much of an advantage. I believe Peercoin's f(t) increases linearly for one month, then becomes flat.
Quote from: bytemaster on March 18, 2014, 09:19:59 pmQuoteYou are at risk of losing your valuable Coin-Days for no return.What if the block rewards were simply distributed to all transaction-makers included in the block, in proportion to the CDD, with some minimum in order to provide a return? (Say 10 or 30 days) So if I save up my coins, waiting to make a transaction / block, at least I know I will get some return on the transaction even if I happen to not mine a block. People who are trading constantly don't get to keep the transaction fees, they go to the actual miner of the block.This is what dividends do.. they transfer fees to all holders. Think of lost opportunity to 'mine' as part of your transaction fee. Making transactions isn't 'free' for the network. In fact, when you make a transaction you want to to help secure the network so you shouldn't be 'paid' for making a transaction.Wait, I'm confused. I thought that this whole mining thing was being promoted as the method by which the dividends were earned/paid. But now I go back and read in the OP: "these fees must be split between miners and shareholders as dividends". So people can earn dividends (still through burned transaction fees, right?) aside from this mining reward. Got it.I now have far fewer reservations about this whole thing. I thought that this was going to be the only way to earn interest/dividends/PoS/whatever-you-want-to-call-it. But if it's just one of a couple of ways, I have no problem with it, and I think it's a good idea to encourage mining.I still think that the "ad-hoc pool" thing is a cool idea, though. So the transaction fees would be split 3 ways: A) Dividends to all shareholders (burned); B) Miner; C) Returned to transaction-makers with significant CDD included in the block and who were therefore plausibly vying to mine the block. Maybe they only get their own transaction fees back; the rest of the fees are split between (A) and (B), while the folks in (C) at least didn't lose any coins by trying to mine and destroying their Coin-Days.
QuoteYou are at risk of losing your valuable Coin-Days for no return.What if the block rewards were simply distributed to all transaction-makers included in the block, in proportion to the CDD, with some minimum in order to provide a return? (Say 10 or 30 days) So if I save up my coins, waiting to make a transaction / block, at least I know I will get some return on the transaction even if I happen to not mine a block. People who are trading constantly don't get to keep the transaction fees, they go to the actual miner of the block.This is what dividends do.. they transfer fees to all holders. Think of lost opportunity to 'mine' as part of your transaction fee. Making transactions isn't 'free' for the network. In fact, when you make a transaction you want to to help secure the network so you shouldn't be 'paid' for making a transaction.
You are at risk of losing your valuable Coin-Days for no return.What if the block rewards were simply distributed to all transaction-makers included in the block, in proportion to the CDD, with some minimum in order to provide a return? (Say 10 or 30 days) So if I save up my coins, waiting to make a transaction / block, at least I know I will get some return on the transaction even if I happen to not mine a block. People who are trading constantly don't get to keep the transaction fees, they go to the actual miner of the block.
(This also seems like a perverse incentive IMO.... PPC holders are incentivized to simply buy and hold, which I guess is good for raising the commodity value of the coin, but bad for encouraging transaction)
Quote from: phoenix on March 18, 2014, 08:16:14 pmSo would the ideal mining strategy be to have a lot of shares, and a decent amount of hash-power? Also, couldn't you include a transaction to yourself in the block you're mining, but not broadcast that transaction until you broadcast the block, thereby increasing the number of CDD in your block, but without risk of losing the CDD if you fail to mine out a block?You seem to have it right.
The SDD essentially help the smaller guys "cut in line" by being able to mine easier when they have been saving up their Stake for a long time.
Quote from: bytemaster on March 18, 2014, 03:57:37 am block_difficulty = difficulty(hash_of_block) * coindays_destroyed_by_miner / min_votes If block_difficulty is measured in bits, and if this means what I think it means, then it looks like this has pretty extreme nonlinear behavior. E.g. if we can both easily produce hashes of 12 bits difficulty (12 leading zero bits), and I have 10x as many CDD as you have, then my blocks are rated 120 bits and yours are rated 12 bits. My effective hashpower is 2^108 times yours.The "gain" is much too high. It looks to me like you would get a split where some "unsaturated" addresses need more-hashpower-than-exists-on-earth to pass their target, other addresses are "saturated" and can meet their target in less than a second even if their CPU is from the 1980's, and the "sane" region between the two is so narrow that there's a very high probability it contains zero addresses. The network might be DoS'able if a modestly wealthy attacker waits until the saturated set consists of only his nodes, then takes them all offline. And it doesn't really satisfy the goal of electing a unique node (or relatively small set of nodes) to produce a block; I'm not convinced off the top of my head that the saturated set will be small. And keep in mind that, the smaller the saturated set is, the more the network's vulnerable to the DoS attack.This is just intuition; a simulation or more detailed mathematical writeup might change my mind. And I might be mistaken about the meaning of the equation above...
block_difficulty = difficulty(hash_of_block) * coindays_destroyed_by_miner / min_votes
I have enhanced the mining system in the following way:When evaluating the difficulty of a block for comparison to the target difficulty, calculate: block_difficulty = difficulty(hash_of_block) * coindays_destroyed_by_miner / min_votes When evaluating the reward of a block, calculate: min_votes = available_votes / BLOCKS_PER_YEAR max_reward = block_fees / 2 actual_reward = max_reward - (max_reward*min_votes) / valid_votesWhen considering two blocks as a candidate for the 'head block', the one with the most valid_votes wins.When you mine under this system, the older your balance the easier it becomes to mine. Large holders of shares will get to produce blocks more frequently than small holders. This system operates in such a way that those who own only a few BTS are unlikely to accumulate enough CDD to produce a block. It also means that large holders have a difficult time producing many blocks in a row. Lastly, it encourages large shareholders to mine regularly with large balances on a single output because this would allow them to maximize the fees they collect while also maximizing the rate at which the network is secured and the difficulty for an attacker to produce an alternative chain.Lastly this system heavily biases block production by CDD over hash power. This means how much hash power you apply is almost meaningless to what you earn. The purpose of the hash power is merely to prevent everyone from submitting a block every time and to give those who apply a little hash power.
Large holders of shares will get to produce blocks more frequently than small holders.
That removes the disincentive for centralizing control, which is a feature IMO
Quote from: bytemaster on March 16, 2014, 10:52:00 pmWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Centralization is bad. A big part of BitShares' strength / value proposition is it gets rid of the necessity of having a fiduciary organization [1] to perform trades between different asset classes.If pools are encouraged to hold large part of customers' funds because that allows them to be more profitable, that seems like a poor design.I propose a modification: Have a new transaction type which allows an address to assign its current and future CDD to another address. Thus, a single private key controlled by a pool operator can use a minimal number of bytes to vote on a block in representation of a large number of pool participants. The pool participants get the advantage of the pool, but don't have to give up control of their funds to the pool operator. You can think of this as "proxy voting" [2] (note, this is not quite the same as "proxy" in computer networking terminology). You can specify any BTS address to act as your proxy, and you can "fire" your proxy at any time (i.e. you can make a transaction at any time to assign your CDD to a different pool, or give them back to yourself).It's doable, but there are a lot of implementation details to consider. I think it'd be prudent to forbid transitive proxies (i.e. if anybody else proxies to you, you can't proxy them onward to somebody else). Each address has CDD(address, t) which is linear when there are no transactions (my slope, the rate at which I generate CDD's, is equal to my balance plus the funds entrusted to me for proxy voting minus the funds I entrust to others for proxy voting). A transaction changes the slope, so overall CDD(address, t) is piecewise linear.[1] By "fiduciary organization" I mean someone who holds money that belongs to someone else.[2] http://en.wikipedia.org/wiki/Proxy_voting
What does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions).
See what your saying, but that is what 5% is for. 5% of 100 BTS is only 5BTS. While 5% of 100,000 BTS is 5,000
Forcing a yearly transaction can also fight blockchain bloat by guaranteeing that the last year of blocks represents the full balance of all addresses.
Quote from: bytemaster on March 17, 2014, 03:27:57 pmQuote from: Agent86 on March 17, 2014, 01:59:04 pmTo clarify my previous idea, I think if you said accounts lose stake at a rate that is directly proportional to coin days accumulated that this would mean big accounts should move more often to use up their CD. But overall, if everyone is just holding their money and moving it back and forth at the threshold time all accounts would retain the same respective value.I'm envisioning that accounts are mining the blocks that include their transactions.Basically, if you are trying to attack the network by accumulating coin days, the more you accumulate the faster you lose.Actually, it is the opposite. As coindays accumulate your mining difficulty falls and your mining reward grows. The goal is to motivate with a carrot rather than a stick.My proposal was not related to mining rewards. You have already suggested a "stick" that is necessary: people must transact once per year or face a 5% penalty and loss of "voting rights." I am proposing a better stick. (please see my original post preceding the one you quoted)I may need to draw up something to more clearly demonstrate it or run a test to see how it would play out. I don't demand you spend time on it if it doesn't strike you as valuable. I admit I need to do some more reading to more clearly understand your proposed mining rewards.Incidentally, carrots and sticks are functionally equivalent; you can call it punishing inactivity or rewarding activity but it's the same as I'm sure you are aware.
Quote from: Agent86 on March 17, 2014, 01:59:04 pmTo clarify my previous idea, I think if you said accounts lose stake at a rate that is directly proportional to coin days accumulated that this would mean big accounts should move more often to use up their CD. But overall, if everyone is just holding their money and moving it back and forth at the threshold time all accounts would retain the same respective value.I'm envisioning that accounts are mining the blocks that include their transactions.Basically, if you are trying to attack the network by accumulating coin days, the more you accumulate the faster you lose.Actually, it is the opposite. As coindays accumulate your mining difficulty falls and your mining reward grows. The goal is to motivate with a carrot rather than a stick.
To clarify my previous idea, I think if you said accounts lose stake at a rate that is directly proportional to coin days accumulated that this would mean big accounts should move more often to use up their CD. But overall, if everyone is just holding their money and moving it back and forth at the threshold time all accounts would retain the same respective value.I'm envisioning that accounts are mining the blocks that include their transactions.Basically, if you are trying to attack the network by accumulating coin days, the more you accumulate the faster you lose.
If you make it trustless there is no possinle harm from large pools. There are efforts to get all btc miners on p2pool, for exampleSent from my SCH-I535 using Tapatalk
Quote from: delulo on March 16, 2014, 10:59:18 pmQuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds?Pools would not get too large because you have to trust them with your shares. The payout would be small given the risk.
QuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds?
Quote from: delulo on March 16, 2014, 11:15:53 pmQuote from: Troglodactyl on March 16, 2014, 11:08:34 pmQuote from: delulo on March 16, 2014, 10:59:18 pmQuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds? It seems like a combination of P2Pool and CoinJoin might be possible if this is a concern.I never mined anything... Is p2pool what it sounds like? A pool in which voting power is completely distributed?yes, p2pool for BTC has its own separate chain of shares people found that are a part of the p2pool network. When a block is found, the p2pool network includes payouts to the last N number of shares. It is entirely decentralized and trustless. The downside, lately, is that the difficulty to find a share is thousands of times harder than a normal pool, so variance is larger - especially for small miners (<10GH/s).
Quote from: Troglodactyl on March 16, 2014, 11:08:34 pmQuote from: delulo on March 16, 2014, 10:59:18 pmQuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds? It seems like a combination of P2Pool and CoinJoin might be possible if this is a concern.I never mined anything... Is p2pool what it sounds like? A pool in which voting power is completely distributed?
Quote from: delulo on March 16, 2014, 10:59:18 pmQuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds? It seems like a combination of P2Pool and CoinJoin might be possible if this is a concern.
Quote from: delulo on March 16, 2014, 10:59:18 pmQuoteWhat does this mean for mining pools? It means that they can be very profitable so long as someone is willing to trust the pool with their shares. A mining pool would be able to cast a large number of ACTUAL VOTES for the least number of bytes (individual transactions). Wouldnt this centralize the whole thing again into the handy of the pool adminds?Yeah isn't this why you didn't like NXT forging?Sent from my SCH-I535 using Tapatalk