Bitcoin Forum
September 25, 2017, 10:37:49 PM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 ... 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 ... 169 »
  Print  
Author Topic: [ANN][YAC] YACoin ongoing development  (Read 343427 times)
ilostcoins
Sr. Member
****
Offline Offline

Activity: 274



View Profile
January 09, 2014, 03:34:43 PM
 #1701

...
I am trying to point out that PoW currency supply can be used as additional input for calculating chaintrust. It can be looked at as a historical difficulty average.
...

I think block reward (excluding transfer fees) is completely determined by difficulty of the block, and therefore, does not provide any information independent of difficulty. Not sure if it may simplify certain computation though.

LTC: LSyqwk4YbhBRtkrUy8NRdKXFoUcgVpu8Qb   NVC: 4HtynfYVyRYo6yM8BTAqyNYwqiucfoPqFW   TAG id: 4313
CMC: CAHrzqveVm9UxGm7PZtT4uj6su4suxKzZv   YAC: Y9m5S7M24sdkjdwxnA9GZpPez6k6EqUjUt
1506379069
Hero Member
*
Offline Offline

Posts: 1506379069

View Profile Personal Message (Offline)

Ignore
1506379069
Reply with quote  #2

1506379069
Report to moderator
1506379069
Hero Member
*
Offline Offline

Posts: 1506379069

View Profile Personal Message (Offline)

Ignore
1506379069
Reply with quote  #2

1506379069
Report to moderator
1506379069
Hero Member
*
Offline Offline

Posts: 1506379069

View Profile Personal Message (Offline)

Ignore
1506379069
Reply with quote  #2

1506379069
Report to moderator
          ▄█████▄
        ▄█████████▄
      ▄████▀   ▀████▄
    ▄████▀   ▄ ▄█▀████▄
  ▄████▀   ▄███▀   ▀████▄
▄████▀   ▄███▀   ▄   ▀████▄
█████   ███▀   ▄███   █████
▀████▄   ▀██▄▄███▀   ▄████▀
  ▀████▄   ▀███▀   ▄████▀
    ▀████▄       ▄████▀
      ▀████▄   ▄████▀
        ▀███  ████▀
          ▀█▄███▀
.
|
.
|
          ▄█████▄
        ▄█████████▄
      ▄████▀   ▀████▄
    ▄████▀   ▄ ▄█▀████▄
  ▄████▀   ▄███▀   ▀████▄
▄████▀   ▄███▀   ▄   ▀████▄
█████   ███▀   ▄███   █████
▀████▄   ▀██▄▄███▀   ▄████▀
  ▀████▄   ▀███▀   ▄████▀
    ▀████▄       ▄████▀
      ▀████▄   ▄████▀
        ▀███  ████▀
          ▀█▄███▀
unthy
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1506379069
Hero Member
*
Offline Offline

Posts: 1506379069

View Profile Personal Message (Offline)

Ignore
1506379069
Reply with quote  #2

1506379069
Report to moderator
Thirtybird
Hero Member
*****
Offline Offline

Activity: 693



View Profile
January 09, 2014, 03:52:25 PM
 #1702

Let me quote Balthazar on how Novacoin does it and utilize the thought process that's already gone into it and the scrutiny I'm sure it's been given.

Original message is here : https://bitcointalk.org/index.php?topic=143221.msg2392797#msg2392797

Protocol update: Preconditions and prospects.

Just like PPCoin, NovaCoin uses ChainTrust score instead of ChainWork (used by BTC, LTC and another PoW-based systems).

We decided to implement the new chain trust score calculation algorithm. It will prevent pure PoS double-spend attacks even without broadcasted checkpoints. Now I'll try to describe, how it works in comparison with an old algorithm.

Old chain trust score calculation algorithm basics:

1) PoW block always adds 1 to current chain trust score;
2) PoS block adds (CBigNum(1)<<256) / (bnTarget+1) to chain trust score.

Result: we have dictatorship, stakeholders are Gods here.

Benefits: It's impossible to perform PoW-based double-spend or DoS attack.
Flaws:

  • Owner of enough stake weight (25% of total weight or more) able to perform PoS-based double-spend or DoS.
  • Double-spend could be prevented by broadcasted checkpointing.

New chain trust score calculation algorithm will be more complicated. Here is the concept (1/3 and 2/3 are parts of example, final ratio values can differ from this):

1) PoS block adds (CBigNum(1)<<256) / (bnTarget+1) to the total chain trust score only if it has PoW block as parent;
2) PoS block adds only 1/3 of "usual" PoS block trust score if it has PoS block as parent;
3) PoW block adds (CBigNum(1)<<256) / (bnPrevBlockTarget+1) to the total chain trust score, if it has PoS block as parent;
4) PoW block adds 2/3 of previous block trust score to the total chain trust score, if it has PoW block as parent.

Result: Hybrid chain always has higher trust score than pure PoW or pure PoS chain.

Benefits: It's impossible to perform pure PoW or PoS-based double-spend. DoS-like attack scenario is also impossible in such cases. Attacker must combine enough PoW & PoS generation power to get success.

Flaws:
  • System will become slightly less energy efficient. But still more efficient than PoW-based system.
  • Huh

According to release plan, new algorithm will be introduced in 0.4.3, but will be inactive on the main network until 20 Sep 2013.  Roll Eyes

YACMiner: https://github.com/Thirtybird/YACMiner  N-Factor information : https://docs.google.com/spreadsheet/ccc?key=0Aj3vcsuY-JFNdC1ITWJrSG9VeWp6QXppbVgxcm0tbGc&usp=drive_web#gid=0
BTC: 183eSsaxG9y6m2ZhrDhHueoKnZWmbm6jfC  YAC: Y4FKiwKKYGQzcqn3M3u6mJoded6ri1UWHa
sairon
Sr. Member
****
Offline Offline

Activity: 406


One does not simply mine Bitcoins


View Profile
January 09, 2014, 04:25:48 PM
 #1703

Let me quote Balthazar on how Novacoin does it and utilize the thought process that's already gone into it and the scrutiny I'm sure it's been given.

Original message is here : https://bitcointalk.org/index.php?topic=143221.msg2392797#msg2392797

<snip>
Flaws:
  • System will become slightly less energy efficient. But still more efficient than PoW-based system.
  • Huh

According to release plan, new algorithm will be introduced in 0.4.3, but will be inactive on the main network until 20 Sep 2013.  Roll Eyes

Yeah, but another flaw is that the protocol does not enforce alternation of PoW and PoS. Say an attacker somehow manages to make a chain that 100% alternates between PoW and PoS - it WILL have higher trust score and WILL overwrite the old chain. Also note that this type of attack will have lower energy cost than the network spent on its non-perfect chain. Perfect chain costs less (!!) than imperfect one.

However, if we were to actually enforce such alternation, pools will be starving when PoS block should be generated.

GPG key ID: 5E4F108A || BTC: 1hoardyponb9AMWhyA28DZb5n5g2bRY8v
senj
Member
**
Offline Offline

Activity: 118


View Profile
January 09, 2014, 04:48:49 PM
 #1704

...
I am trying to point out that PoW currency supply can be used as additional input for calculating chaintrust. It can be looked at as a historical difficulty average.
...

I think block reward (excluding transfer fees) is completely determined by difficulty of the block, and therefore, does not provide any information independent of difficulty. Not sure if it may simplify certain computation though.

Here is an example I had in mind:
Rogue miner is mining private chain and when he gets far into the future he starts mining with higher difficulty than he thinks real difficulty will be at that time. If you just compare latest blocks when he releases his chain you might prefer his fork.

Remind you that I do not know how chain forks get compared in detail.

YAC: YGZRDNuey8MnN6GHVR1x7D3UY5TjDz2HCL
Thirtybird
Hero Member
*****
Offline Offline

Activity: 693



View Profile
January 09, 2014, 04:57:07 PM
 #1705

Yeah, but another flaw is that the protocol does not enforce alternation of PoW and PoS. Say an attacker somehow manages to make a chain that 100% alternates between PoW and PoS - it WILL have higher trust score and WILL overwrite the old chain. Also note that this type of attack will have lower energy cost than the network spent on its non-perfect chain. Perfect chain costs less (!!) than imperfect one.

However, if we were to actually enforce such alternation, pools will be starving when PoS block should be generated.

I didn't think forcing alternation was on the roadmap, just disallowing consecutive POS blocks.  If a chain that has both POW and POS blocks in it has a higher trust than a purely POW or a purely POS chain, doesn't that go a long way toward what we're trying to accomplish?

YACMiner: https://github.com/Thirtybird/YACMiner  N-Factor information : https://docs.google.com/spreadsheet/ccc?key=0Aj3vcsuY-JFNdC1ITWJrSG9VeWp6QXppbVgxcm0tbGc&usp=drive_web#gid=0
BTC: 183eSsaxG9y6m2ZhrDhHueoKnZWmbm6jfC  YAC: Y4FKiwKKYGQzcqn3M3u6mJoded6ri1UWHa
cryptrol
Hero Member
*****
Offline Offline

Activity: 637


View Profile
January 09, 2014, 05:30:42 PM
 #1706

Why not use centralized checkpointing ?? That's what PPC does because there is no solution to the problem (yet).
bitdwarf
Sr. Member
****
Offline Offline

Activity: 392


The cryptocoin watcher


View Profile
January 09, 2014, 07:35:03 PM
 #1707

However, if we were to actually enforce such alternation, pools will be starving when PoS block should be generated.

Considering pools are a source of risk in themselves for little advantage to the network, that's not a problem.

𝖄𝖆𝖈: YF3feU4PNLHrjwa1zV63BcCdWVk5z6DAh5 · 𝕭𝖙𝖈: 12F78M4oaNmyGE5C25ZixarG2Nk6UBEqme
Ɏ: "the altcoin for the everyman, where the sweat on one's brow can be used to cool one's overheating CPU" -- theprofileth
Balthazar
Legendary
*
Offline Offline

Activity: 2184


BTC-e Divine Overlord, ask cryptodevil for details


View Profile WWW
January 09, 2014, 07:45:13 PM
 #1708

Why not use centralized checkpointing ?? That's what PPC does because there is no solution to the problem (yet).
There are enough possible solutions and BCP is not a one of these. It's just a workaround.

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (6GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
cryptrol
Hero Member
*****
Offline Offline

Activity: 637


View Profile
January 09, 2014, 11:08:19 PM
 #1709

Why not use centralized checkpointing ?? That's what PPC does because there is no solution to the problem (yet).
There are enough possible solutions and BCP is not a one of these. It's just a workaround.
And none works well AFAIK, that's one of the reasons PPC is centrally checkpointed ATM. Please, correct me if I am wrong.
ilostcoins
Sr. Member
****
Offline Offline

Activity: 274



View Profile
January 10, 2014, 03:30:11 AM
 #1710

As far as I can see now, using difficulty as score for POW blocks, and let POS blocks inherit that score from the previous POW block is a good enough solution for the problem on hand. Whether one POS block following another POS block is explicitly ruled out or not, I think it should be ok either way.

The Novacoin solution of encouraging a hybrid chain only make sense because they have 1:1 POW:POS blocks ratio. YACoin is 10:1 with POW:POS. You'll need to check pretty deep into the past to encourage a 10:1 ratio. The score consistency problem I mentioned above could lurk in such schemes. Of course, we can also talk about the POW:POS ratio if people want to change it.

LTC: LSyqwk4YbhBRtkrUy8NRdKXFoUcgVpu8Qb   NVC: 4HtynfYVyRYo6yM8BTAqyNYwqiucfoPqFW   TAG id: 4313
CMC: CAHrzqveVm9UxGm7PZtT4uj6su4suxKzZv   YAC: Y9m5S7M24sdkjdwxnA9GZpPez6k6EqUjUt
sairon
Sr. Member
****
Offline Offline

Activity: 406


One does not simply mine Bitcoins


View Profile
January 11, 2014, 12:00:30 AM
 #1711

I would leave the target spacing for PoW and PoS as is. It really doesn't matter anyway with this scheme, so why bother.

GPG key ID: 5E4F108A || BTC: 1hoardyponb9AMWhyA28DZb5n5g2bRY8v
ilostcoins
Sr. Member
****
Offline Offline

Activity: 274



View Profile
January 11, 2014, 01:30:33 AM
 #1712

If anyone can see some problems with the scheme, please post about it sooner rather than later.

LTC: LSyqwk4YbhBRtkrUy8NRdKXFoUcgVpu8Qb   NVC: 4HtynfYVyRYo6yM8BTAqyNYwqiucfoPqFW   TAG id: 4313
CMC: CAHrzqveVm9UxGm7PZtT4uj6su4suxKzZv   YAC: Y9m5S7M24sdkjdwxnA9GZpPez6k6EqUjUt
bitdwarf
Sr. Member
****
Offline Offline

Activity: 392


The cryptocoin watcher


View Profile
January 11, 2014, 01:34:24 AM
 #1713

I'd think you'd want the good chain to maximize as much as possible its score. So either 1:1 ratio, or the max score should be when ratio is 10:1. E.g. PoS score increases the more PoW ancestors it has, maxxing at 9, then PoW score decreases the further away it is from a PoS, up until 9.

𝖄𝖆𝖈: YF3feU4PNLHrjwa1zV63BcCdWVk5z6DAh5 · 𝕭𝖙𝖈: 12F78M4oaNmyGE5C25ZixarG2Nk6UBEqme
Ɏ: "the altcoin for the everyman, where the sweat on one's brow can be used to cool one's overheating CPU" -- theprofileth
Gorgoy
Member
**
Offline Offline

Activity: 115


View Profile
January 12, 2014, 02:46:07 AM
 #1714

As far as I can see now, using difficulty as score for POW blocks, and let POS blocks inherit that score from the previous POW block is a good enough solution for the problem on hand. Whether one POS block following another POS block is explicitly ruled out or not, I think it should be ok either way.

The Novacoin solution of encouraging a hybrid chain only make sense because they have 1:1 POW:POS blocks ratio. YACoin is 10:1 with POW:POS. You'll need to check pretty deep into the past to encourage a 10:1 ratio. The score consistency problem I mentioned above could lurk in such schemes. Of course, we can also talk about the POW:POS ratio if people want to change it.

I absolutely agree with the ratio of 10:1 and when you think about it, it's more like 20:1 at least. We do not have many POS in YAC now at all, I do not understand why the sudden rush and madness to "fix" POS when there is hardly any POS at all. Has anyone looked at the blockchains that we are comparing YAC to, meaning PPC and NovaCoin, they are 90% POS or more.

Is there are alternate motive behind all this?

Ɏ : YEojPD2QxFVaSUypTLYhwJgmVekqoAtdE3
฿ : 1946hwLbBdLNSA1FFUY3ZvRx6j6dqvbzcE
Ł : LczTrStBZ8b1Y4DJU59CjtYRtjKufbTXPE
Ғ : 6i4S4BfHfC9LLmTBhjYDVKe7g8XfPz9uj8
Ψ : AGpoWwc6N59PPqKbzRTAiFG5WmDEQU7Ydp
ζ : ZLYFK2KNrFDDGVbEJPKnTdWuGk3iA3CNY2
G : GQbjHcGPgUwRBKZcdoMCpuf24QSXY5t5bf
St.Bit
Sr. Member
****
Offline Offline

Activity: 280


View Profile
January 12, 2014, 05:00:07 PM
 #1715

We do not have many POS in YAC now at all, I do not understand why the sudden rush and madness to "fix" POS when there is hardly any POS at all. Has anyone looked at the blockchains that we are comparing YAC to, meaning PPC and NovaCoin, they are 90% POS or more.

Is there are alternate motive behind all this?
Well, the current system isn't safe from doublespends so that's the main motivation behind this.
Question will be how to fix this mess here, or if there's even an acceptable fix for it.

PS: A big part of the problem is that "there is hardly any POS at all"


Sign a message and get some YAC: https://bitcointalk.org/index.php?topic=300152.0
senj
Member
**
Offline Offline

Activity: 118


View Profile
January 12, 2014, 05:09:55 PM
 #1716

Here are my refined strategy concepts now partly borrowed from Satoshi:)


When PoW block arrives modulo operation is executed on last 4 bytes of the hash. If remainder equals zero, PoS window opens. Divisor would determine chance of that happening and it could be:

a) static (with optional hardcoded decrements on Nfactor change)

Miner gone bad would need to hash like crazy (even many times the same block EDIT: after one hash is found) in order to meet conditions that would allow him to pack more PoS blocks in the chain.

b) dynamic, derived from PoW block difficulty

Difficulty extracted from last PoW block combined with N factor,  both input into modulo operation would influence chance of PoS block window. Normally high difficulty and considering N would be set to produce a chain with more PoS blocks. This way the chain would balance itself through time ( more widespread yacoin usage -> high hashrate -> high difficulty -> higher chance of success for PoS blocks windows ). Determining N factor change implications would be challenging at least, since that lowers difficulty at first in spite of  more miners.

If longer chain fork is announced and it's blocks do not connect anywhere in the recent past chain is rejected. If it connects, the pattern of PoS windows is inspected and PoW blocks difficulty of both forks is compared.



I have another dynamic solution in mind, where delayed difficulty cumulative moving average (DCMA) would be used in PoS window calculation.

Record of delayed running DCMA would be calculated and kept up-to-date until the time of approx. now-2000 blocks. That number would be transformed and merged with last 4 bytes of PoW hash before modulo operation is executed. Effectively we would be "encoding" average PoW block difficulty from the past into the criteria for PoS block window.

It would be nearly impossible for the rogue miner to hash on low difficulty far in the future and then switch to high difficulty - he would need to guess DCMA at the publish time of his chain (minus 2000 blocks) in advance, because that is how chains would be compared if his fork signals to be longer. If new blocks start orphaning many of our blocks, "headers" call is invoked and latest 2000 headers are fetched, their start time determined, corresponding DCMA for that start time acquired from our records (or even calculated from history data if operation is not too expensive) and then PoS windows pattern checked if it fits the formula. To accomplish that we would also need to keep a small rolling window of delayed DCMAs.

This last method would sure need more analyzing, planning and discussion. It would be hardest to implement, but from my understanding would offer trustworthy chain compare method.


Independently from the chain trust concept just mentioned above I have been also considering higher number of PoS windows than average (or needed at specific time), but not making them all mandatory - some window criteria matches would just "award" incoming PoS blocks with desired trust score. This way it would be possible to impose minimum PoS block occurrence threshold while at the same time making possible for more PoS blocks to be accepted in the chain (when window opens). But that would at least to some degree mess with the concept explained above.


I hope my explanation is understandable -  I have looked at source code and tried to grasp the functioning but it's not that trivial for a rookie. Except for DCMA method, not a lot of code would need to be written but that wouldn't bring solution for chain trust either.

YAC: YGZRDNuey8MnN6GHVR1x7D3UY5TjDz2HCL
Balthazar
Legendary
*
Offline Offline

Activity: 2184


BTC-e Divine Overlord, ask cryptodevil for details


View Profile WWW
January 13, 2014, 01:32:28 AM
 #1717

2 all

Guys, I suppose that you need block hashes caching , this approach would allow you to reduce startup time significantly (30х-100x times at least). This could be done through merging with NVC blockindex code and addition of your network rules.

I think this will resolve all your performance issues.

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (6GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
sairon
Sr. Member
****
Offline Offline

Activity: 406


One does not simply mine Bitcoins


View Profile
January 13, 2014, 08:37:20 AM
 #1718

2 all

Guys, I suppose that you need block hashes caching , this approach would allow you to reduce startup time significantly (30х-100x times at least). This could be done through merging with NVC blockindex code and addition of your network rules.

I think this will resolve all your performance issues.

Already done.
Didn't know it was in NVC, though. Would have been easier to pull the changes rather than write it from scratch. Tongue

GPG key ID: 5E4F108A || BTC: 1hoardyponb9AMWhyA28DZb5n5g2bRY8v
Balthazar
Legendary
*
Offline Offline

Activity: 2184


BTC-e Divine Overlord, ask cryptodevil for details


View Profile WWW
January 13, 2014, 09:48:27 AM
 #1719

Hm... Just checked your sourcecode. It seems too overcomplicated for me, actually. This issue could be resolved with less than 10 additional lines of code. Maybe even 4-6 lines...

novaco.in | EtherMine.ru (65 GH/s, DGM 0.5%) | EtherDig.Net (6GH/s, PPS 1.5%)
฿: 1QJ8RFiRKsJKmY8ZAjxfCUeBZXmjthK4Pk: 4RgnHWtnJWEyMhqhDdazW3Hdr7cx5ybF6i ETH: 0x5B475Febb3018f41d0Ac3C2f1A864bd102ab5a2E
sairon
Sr. Member
****
Offline Offline

Activity: 406


One does not simply mine Bitcoins


View Profile
January 13, 2014, 09:54:15 AM
 #1720

Hm... Just checked your sourcecode. It seems too overcomplicated for me, actually. This issue could be resolved with less than 10 additional lines of code. Maybe even 4-6 lines...
Whatever. The whole Bitcoin codebase is crap anyway.

GPG key ID: 5E4F108A || BTC: 1hoardyponb9AMWhyA28DZb5n5g2bRY8v
Pages: « 1 ... 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [86] 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 ... 169 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!