Pages:
Author

Topic: [ANN][YAC] YACoin ongoing development - page 98. (Read 380091 times)

sr. member
Activity: 406
Merit: 250
The cryptocoin watcher
January 04, 2014, 08:16:56 AM
2) Enforcing a hybrid chain (with alternating PoW/PoS blocks) is IMO a bad idea as the protocol is set to 1-minute PoW and 10-minute PoS target.

Other changes aside, would it be more desirable to have 1 minute PoW and 1 minute PoS so the chain gets more 'hybridized'?
sr. member
Activity: 274
Merit: 250
January 04, 2014, 08:15:48 AM
On a separate note, I have two small issues with the recent beta qt wallet running on a Windows XP, Core2Duo PC. The first is the GUI doesn't show up as quickly as when I first use it on the same PC. The first 2-3 times I ran it, the GUI appeared within a minute or so. Now, it's over 5 minutes. The good news is even though the GUI isn't loaded, at least the qt wallet icon quickly shows up in the notification bar (or whatever that part is called). Besides, looking at the block count that remains to be downloaded when the GUI first shows up after a few minutes, I think it's downloading and processing blocks before GUI is loaded.

Another issue is I have an orphan POS block back in September and this wallet keeps showing it as the most recent transaction entry on the "overview" page. The default sorting also have it floating at the top of the "transactions" page.
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 04, 2014, 08:00:54 AM
2) Enforcing a hybrid chain (with alternating PoW/PoS blocks) is IMO a bad idea as the protocol is set to 1-minute PoW and 10-minute PoS target. With my rules hybrid chain is the optimal way when trying to do 51% attack (as you can reduce the "51%" PoW hashing power needed by at most 50% if you have 100% active weight). Still, it would not be expensive enough to attempt, anyway - that's my justification of lowering PoS trust to the level of PoW (I'd lower it even more if only it didn't cause another sort of problems, which it would). It's all about finding the right balance, anyway.
It's not a "good" or "bad" way. It's how the things should be. Preferred, but not enforced chain. For example, you can use own function of blocks share here, to maximize trust score for 10:1 chain and minimize it for another candidates.

Maybe, but your solution actually forces the whole network into running their own modified client in order to maximize profits - which, honestly, sucks hard. The non-programmer folk have a huge disadvantage here.

EDIT: Assuming that you actually publicly release such modified client, it essentially becomes enforced (who would intentionally lower their profits?). Also, it definitely does not solve the orphaning issue we're facing now. As I stated before, PoS is useless without there actually being something in stake...

Variable ROI isn't sufficient to prevent a malicious entity wanting to break the network entirely, anyway.
It's only a part of solution. It makes malicious activity to be a less danger for a network by increasing the share of coins participating in the network protection.

59% yearly interest for early adopters, sure. Screw the later-coming big investors when the PoS difficulty gets higher and interest lowers significantly. Good way to discourage promotion of the coin and thus adoption.

Even Bitcoin isn't that harsh - and it was designed with huge early-adopter rewards to encourage fast adoption.

Don't get me wrong, I'm not calling Novacoin an outright scam. Just don't agree with the economic model behind it.

Anyway, I've got the code changes ready. You're all invited to review them. https://github.com/saironiq/yacoin-cc/commit/acf917a2c42cb947b08a9a7878ceafd6045ea24c
Good example of simple != better statement. It will help you for one threat, but opens another hole. Actually, such fix is less secure than calculate block trust using an original algorithm. It can be forked without a significant part of stake or hashpower by running a parallel chain at lower PoS & PoW difficulties. Because it makes no difference between coindays consumed or hashpower wasted. One CPU is able to beat the entire network.
The same is true for Bitcoin. That's what the hardcoded checkpoints are for.
legendary
Activity: 3108
Merit: 1359
January 04, 2014, 07:39:22 AM
2) Enforcing a hybrid chain (with alternating PoW/PoS blocks) is IMO a bad idea as the protocol is set to 1-minute PoW and 10-minute PoS target. With my rules hybrid chain is the optimal way when trying to do 51% attack (as you can reduce the "51%" PoW hashing power needed by at most 50% if you have 100% active weight). Still, it would not be expensive enough to attempt, anyway - that's my justification of lowering PoS trust to the level of PoW (I'd lower it even more if only it didn't cause another sort of problems, which it would). It's all about finding the right balance, anyway.
It's not a "good" or "bad" way. It's how the things should be. Preferred, but not enforced chain. For example, you can use own function of blocks share here, to maximize trust score for 10:1 chain and minimize it for another candidates.

Variable ROI isn't sufficient to prevent a malicious entity wanting to break the network entirely, anyway.
It's only a part of solution. It makes malicious activity to be a less danger for a network by increasing the share of coins participating in the network protection.

Anyway, I've got the code changes ready. You're all invited to review them. https://github.com/saironiq/yacoin-cc/commit/acf917a2c42cb947b08a9a7878ceafd6045ea24c
Good example of simpler != better statement. It will help you for one threat, but opens another hole. Actually, such fix is less secure than calculate block trust using an original algorithm. It can be forked without a significant part of stake or hashpower by running a parallel chain at lower PoS & PoW difficulties. Because it makes no difference between coindays consumed or hashpower wasted. One CPU is able to beat the entire network.
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 04, 2014, 07:30:04 AM
Thank you for the work, I know there's a bounty for this, but a little extra was donated Smiley 
Thanks, much appreciated! Smiley

Just noticed the donation progressbar on yacexplorer ain't updating (guess that's because YAC is disabled on cryptsy, gah).
hero member
Activity: 693
Merit: 500
January 04, 2014, 07:16:25 AM
Thank you for the work, I know there's a bounty for this, but a little extra was donated Smiley 
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 04, 2014, 07:01:32 AM
Those changes look so simple ... They definitely are the least intrusive change to make.

When I was reviewing novacoin's code for their changes, they had a group of constants for each hard fork and it was done based on date instead of block height.  I'm not sure why they would choose that as I would think that's something a bit easier to get around to avoid using new rules, but they continue to use it.  I guess the thought is that most miners are honest and majority wins, right?

Yeah, if you use date/time instead of block height, the only way for dishonest nodes to wreak havoc is in the "time +- network-adjusted offset" period (a few hours at most) and it gets resolved pretty quickly after that. The block height method is less accurate, but more secure in this regard, that's why I've chosen it.
hero member
Activity: 693
Merit: 500
January 04, 2014, 06:57:46 AM
Those changes look so simple ... They definitely are the least intrusive change to make.  Thank you for leading the change.

When I was reviewing novacoin's code for their changes, they had a group of constants for each hard fork and it was done based on date instead of block height.  I'm not sure why they would choose that as I would think that's something a bit easier to get around to avoid using new rules, but they continue to use it.  I guess the thought is that most miners are honest and majority wins, right?
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 04, 2014, 06:15:03 AM
sr. member
Activity: 280
Merit: 250
January 04, 2014, 02:15:58 AM
Another issue is that YAC needs protection from 51% PoW attacks and with PoS trust=PoW trust we would loose such.

Bitcoin has a unique hash-algorithm so that the bitcoincommunity with their hardware can compute far more efficient than the rest of the world. This makes it extreme hard to attack it with standard computers. Cryptos like LTC are mined with a lot of GPU's which are also not that common.

A CPU on YAC has around the same hash/s as a GPU so a botnet could easily rape us without 51%protection from PoS.
This makes me belive that PoS trust=PoW trust isn't possible without some sort of checkpoints. Somehow I think we need some sort of CentralCheckpointing...

What do you guys think about the following:
A PoS blocks trust is limited to a singe PoWs unless it get's confirmed by CentralAuthority CA in the next block. Such CA only needs to send a txt to the owner of the previous block. This would limit the power of CA to reverse just a few blocks and could only be done once. Everyone that was online would notice such by having 2 different forks which both have a confirmed PoS block in it. Miners are usually always on.

In order to get rid of the Central thing we could allow everyone to send such txts for a fee. Only the authority with the biggest balance get`s accepted and will get a small % reward later on. A minimun for becoming a CA should prevent someone to fake beeing a legit member of our community and a thief would rather steal the whole adress.

If (or better since) this isn't enough damage for someone that abuses his power we could also go where it hurts. I don't see any problem if all miners would agree to never ever accept a txt from an adress that was used to scam the whole community by this. Since freezing funds would also be nessasary to have more than just one guy getting all the rewards this wouldn't go much further. Opening a box we should never even touch... Baaaaad.

EDIT:
Reward could be randomly given to one of the 10 biggest CA-candidates that participated based on howmuch coins they have. Since sending a txt from a wallet has to send the spare change to a new adress we shouldn't go by biggest balance, we should go by biggest output.

A cooldownperiod of [n(no of candidates)+5] PoS-blocks would allow all candidates to participate and reduce the damage a single wallet can do.

EDIT: Requires also no 2 PoS blocks touching.

sr. member
Activity: 274
Merit: 250
January 04, 2014, 12:25:47 AM
After reading a bit of the links etc., I'm thinking is there a clear description of the how POS works in YACoin? I read Sunny King's whitepaper a while ago and didn't find it clear at all and I don't know if YACoin works the same as PPCoin either.

Also, wasn't YACoin forked from Novacoin and should include fixes implemented "long time ago" in Novacoin?

Thanks for helping me understand more.  Smiley
hero member
Activity: 693
Merit: 500
January 03, 2014, 10:12:37 AM
#2 - +1.

I think this is what St. Bitt has been saying (sorry St. Bitt, I have difficulty following you), but the reading I did that really made sense was here : https://bitcointalksearch.org/topic/m.1276206 (great thread read actually!)

Would that not nullify any perceived advantage of PoS though and then you might as well go back to PoW?  PoS in this case would really only be serving the purpose of transaction processing between PoW which would again contain all the security responsibility no?

Yes, that is the point. Proof-of-stake allows stakeholders to send a signal that one fork is correct. However, conditional on you having the necessary stake, each signal is costless and you can simultaneously signal for multiple forks (i.e. you can take both sides of the bet without any additional cost). Each signal will earn a reward if the fork turns out to win. Therefore you might as well signal for as many forks as possible.

I've been agitating for costly signals to avoid this problem. If each signal is costly, then you would only send it out for chains that are likely to succeed. The cost would be paid in work.

For some reason, only my proof-of-stake proposal incorporates costly signaling. I don't understand why.  I'm trying to provoke an argument about whether costless signaling is a major problem.
I think it is. Therefore, I think PPC coin should be modified to make signaling costly.

legendary
Activity: 3108
Merit: 1359
January 03, 2014, 10:01:46 AM
Would you mind elaborating a bit?
1) You have to maximize an active weight. It doesn't matter how you do so, but you have to do it for any price (even for constant trolling from ignorant kids), because that's necessary to survive.

2) You have to make attack energy expensive, in order to prevent free attack attempts. Otherwise user will be able to use OpenVZ and 10000+ wallet copies to make 10000+ attempts without any problem.

NovaCoin maximizes active weight using a variable RoI and limited block reward. It also implements a variable trust idea, the consequtive PoS or PoW blocks has lower trust in comparison with a hybrid chain. Attacker have to generate a hybrid chain to make success.
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 03, 2014, 09:52:56 AM
Rewards manipulation or denying the consecutive PoS/PoW blocks is not a solution.

Disallowing consecutve PoS blocks seems pretty good at this point... why hasn't Novacoin PPCoin done it?  I think everyone would agree that if it works, it would be a better solution than centralized check-pointing.
NovaCoin resolved this issue very very long time ago.

Would you mind elaborating a bit?
legendary
Activity: 3108
Merit: 1359
January 03, 2014, 09:50:36 AM
Rewards manipulation or denying the consecutive PoS/PoW blocks is not a solution.

Disallowing consecutve PoS blocks seems pretty good at this point... why hasn't Novacoin PPCoin done it?  I think everyone would agree that if it works, it would be a better solution than centralized check-pointing.
NovaCoin resolved this issue very very long time ago using a complex of measures like dynamic RoI and variable block trust concept.
sr. member
Activity: 406
Merit: 250
One does not simply mine Bitcoins
January 03, 2014, 06:57:32 AM
1) What's the benefit of disallowing consecutive POS blocks in contrast to, eg., just disallow more than 2 consecutive POS blocks? Allowing 2 consecutive POS blocks won't let big holders easily overturn confirmed transactions if POS and POW have the same trust value, right?

If we allowed max 2 consecutive PoS blocks, then every PoS miner has the ability to deliberately orphan a single PoW block at the tip of the chain (assuming the last two blocks were both PoW). Thus all transactions in that block will be reversed and allowed to be double-spent (not that big of a deal, as they had just 1 confirmation anyway, but still - it would be incredibly easy to do this so we better avoid it).

2) What's the benefit of disallowing consecutive POS blocks AND having the same POW & POS trust value compared with only disallowing consecutive POS blocks while still giving POS a somewhat higher trust value?

Case #0 - as it is now:
I can choose any point in the blockchain that hasn't yet been checkpointed (hardcoded height and block hash in the source code) and place my chain of PoS blocks there. Should this new fork happen to have a higher trust value than the original, longer chain - it will be accepted as a new valid chain, orphaning millions of transactions in the process. This happens quite often and (I believe) accidentally - so you can see just how incredibly easy it is to abuse if you deliberately decide to do so.

Case #1 - only disallowing two consecutive PoS blocks:
Imagine the tip of the chain looks like this:
(whatever)-S-W-W-W-W-W-S-W-W-W-W-W
(S denotes PoS block, W is for PoW)

I can now orphan the last 4 blocks by placing my new PoS like follows:
(whatever)-S-W-W-W-W-W-S-W-S

So this is bad, too...

Case #2 - make only the trust value equal:
Again, we have a chain that looks like this:
(whatever)-S-W-W-W-W-W-S-W-W-W-W-W

Now I prepare a chain of PoS blocks that's one longer than the number of last N blocks I want to orphan. Eg. if I wanted to orphan last 10 blocks, I'd make a chain of 11 PoS blocks and hook it to the chain as follows:
(whatever)-S-W-S-S-S-S-S-S-S-S-S-S-S

Easy, isn't it? Wink

Case #3 - the proposed solution:
None of the above flaws work here.

So far I've been able to come up with only one theoretical flaw to this system - lowering the "51%" attack hashrate threshold by PoW-mining in cunjunction with PoS-mining - however, I believe it's not much of an issue as the attacker would need to own a significant percentage of active stake in the PoS system. The worst-case is 25% attack - and the attacker then would need to own 100% of active stake (if my math is correct). So it's more like work-stake trade-off and not an outright vulnerability.

That's one more reason why we need more hoarders (and pools, too!). And remember - the way it is now costs a potential attacker near to nothing as he only needs some (very little) active stake.

Bottom line: I've come to a conclusion that the current hybrid PoW/PoS blockchain system is crap and needs a complete rehaul to actually do the core functions it promised to provide (like increasing chain security by PoS checkpointing with stake actually being something that's in stake - right now staking coins doesn't mean a sh*t).
hero member
Activity: 809
Merit: 501
January 02, 2014, 10:42:06 PM
I'm not familiar with these things but have some questions.

1) What's the benefit of disallowing consecutive POS blocks in contrast to, eg., just disallow more than 2 consecutive POS blocks? Allowing 2 consecutive POS blocks won't let big holders easily overturn confirmed transactions if POS and POW have the same trust value, right?

2) What's the benefit of disallowing consecutive POS blocks AND having the same POW & POS trust value compared with only disallowing consecutive POS blocks while still giving POS a somewhat higher trust value?

+1 on #2
hero member
Activity: 809
Merit: 501
January 02, 2014, 10:38:41 PM
sr. member
Activity: 274
Merit: 250
January 02, 2014, 10:21:00 PM
I'm not familiar with these things but have some questions.

1) What's the benefit of disallowing consecutive POS blocks in contrast to, eg., just disallow more than 2 consecutive POS blocks? Allowing 2 consecutive POS blocks won't let big holders easily overturn confirmed transactions if POS and POW have the same trust value, right?

2) What's the benefit of disallowing consecutive POS blocks AND having the same POW & POS trust value compared with only disallowing consecutive POS blocks while still giving POS a somewhat higher trust value?
sr. member
Activity: 406
Merit: 250
The cryptocoin watcher
January 02, 2014, 08:00:19 PM
Note that a malicious entity would not mind suffering loses in an attack if they benefit from supressing this alt. I wouldn't rely on 'incentives to be good'.

Could we just require alternate PoW - PoS blocks?



Pages:
Jump to: