Pages:
Author

Topic: [ANN][MOTO] Motocoin - page 69. (Read 178259 times)

member
Activity: 81
Merit: 10
June 06, 2014, 02:58:54 PM
I'm still not convinced that this is meaningfully exploitable.  Anyone care to demonstrate?  Cool
How fast your bot can mine new blocks? Can it generate one block at least every few seconds? If so, just start to generate blocks right from the genesis block untill you will have more blocks then there are currently, then send all your newly mined blocks to the network, voila, and you will own all of motocoins except for my premine. This is just a 51% attack.

No it is not a 51% attack because it is not involve much resources to accomplish. Because in motocoin threshold value is not linked to block issue time attacker can produce blocks whose solution is stupid and slow.

It is like producing a blockchain for bitcoin where eachblock have only one leading zero. This is not a 51% attack by definition because attacker can have far less resources than the rest of the net. He only shall be able to form blocks fast enough.
full member
Activity: 204
Merit: 100
June 06, 2014, 02:55:07 PM
Yah, I'm having difficulty understanding how this is really any more exploitable than a "straight up" 51% attack... could you clarify for me?  I'd appreciate.
It just simplifies 51% attack because you don't need to decrease target time in your softfork. But you will need to complete enough levels precisely in target time to exploit it.
full member
Activity: 204
Merit: 100
June 06, 2014, 02:52:01 PM
I'm still not convinced that this is meaningfully exploitable.  Anyone care to demonstrate?  Cool
How fast your bot can mine new blocks? Can it generate one block at least every few seconds? If so, just start to generate blocks right from the genesis block untill you will have more blocks then there are currently, then send all your newly mined blocks to the network, voila, and you will own all of motocoins except for my premine. This is just a 51% attack.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 02:45:07 PM

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
Maybe you just have found a vulnerability in Motocoin. To ensure that new blocks are mineable it will never make target time less than median and you found a way to exploit it.

Nice. There is a vulnerability in motocoin that can be exploited by a bot owner to easily make a blockchain fork. Anyway this is too risky to invest money in this coin unless they close the bug.
Even without that bug bot owner can fork the whole blockchain.

Yah, I'm having difficulty understanding how this is really any more exploitable than a "straight up" 51% attack... could you clarify for me?  I'd appreciate.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 02:44:05 PM

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
Maybe you just have found a vulnerability in Motocoin. To ensure that new blocks are mineable it will never make target time less than median and you found a way to exploit it.

Nice. There is a vulnerability in motocoin that can be exploited by a bot owner to easily make a blockchain fork. Anyway this is too risky to invest money in this coin unless they close the bug.

I'm still not convinced that this is meaningfully exploitable.  Anyone care to demonstrate?  Cool
full member
Activity: 204
Merit: 100
June 06, 2014, 02:41:52 PM

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
Maybe you just have found a vulnerability in Motocoin. To ensure that new blocks are mineable it will never make target time less than median and you found a way to exploit it.

Nice. There is a vulnerability in motocoin that can be exploited by a bot owner to easily make a blockchain fork. Anyway this is too risky to invest money in this coin unless they close the bug.
Even without that bug bot owner can fork the whole blockchain.
member
Activity: 81
Merit: 10
June 06, 2014, 02:34:48 PM

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
Maybe you just have found a vulnerability in Motocoin. To ensure that new blocks are mineable it will never make target time less than median and you found a way to exploit it.

Nice. There is a vulnerability in motocoin that can be exploited by a bot owner to easily make a blockchain fork. Anyway this is too risky to invest money in this coin unless they close the bug.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 12:21:55 PM
Many people are interested when bots appeared. I made a small research.

Could you get a live version of these graphs up somewhere? Maybe integrated to the block explorer?

It would be nice to be able to have this sort of a perspective on bot activity in real time.  (If nothing else, so humans could tell when the bots are simultaneously down (should it ever happen again) and capitalize on the opportunity to play!)
sr. member
Activity: 434
Merit: 250
June 06, 2014, 12:11:09 PM
Some of those more scattered points in the lower nonce space are certainly my other (currently less productive) bot, "crawler."  Unlike "flipper" which tries a very large number of maps and uses random nonce offsets, crawler spends more time trying to learn individual maps, with sequential nonce, and rarely gets into higher nonces.  Crawler is ultimately the smarter bot, and I expect that one day it will overtake flipper in production.
Can you point me to some of crawler's replays? I want to see him in action.

I will when I am where I'd be able to look at its tx history again.  Probably some time over the weekend I will show some of its blocks for discussion.
full member
Activity: 204
Merit: 100
June 06, 2014, 11:48:53 AM
Some of those more scattered points in the lower nonce space are certainly my other (currently less productive) bot, "crawler."  Unlike "flipper" which tries a very large number of maps and uses random nonce offsets, crawler spends more time trying to learn individual maps, with sequential nonce, and rarely gets into higher nonces.  Crawler is ultimately the smarter bot, and I expect that one day it will overtake flipper in production.
Can you point me to some of crawler's replays? I want to see him in action.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 11:36:26 AM

Excellent, maybe arbitrage pressure will help with gaining more momentum on the price correction!
sr. member
Activity: 434
Merit: 250
June 06, 2014, 11:33:12 AM
Many people are interested when bots appeared. I made a small research.

Every time you press F6 your nonce is incremented (and it doesn't reset after a switch to a new block). For human miners nonce values should be low because humans cannot enumerate millions of maps while bots can (and that is what they actually do), therefore high values of nonce clearly indicate bots.

I made some graphs. Horizontal axis is block index, vertical is nonce in that block:
http://motocoin.org/research/nonces_ann.png
and in logarithmic scale:
http://motocoin.org/research/nonces_log_ann.png

Nice!  Looks like I was not the first botter.... probably miniminer was.  The first big "gap" around 10,000 was when flipper was out of commission for awhile do to a bug, interesting that there weren't other bots active during this time, I wonder why.

Some of those more scattered points in the lower nonce space are certainly my other (currently less productive) bot, "crawler."  Unlike "flipper" which tries a very large number of maps and uses random nonce offsets, crawler spends more time trying to learn individual maps, with sequential nonce, and rarely gets into higher nonces.  Crawler is ultimately the smarter bot, and I expect that one day it will overtake flipper in production.
full member
Activity: 204
Merit: 100
June 06, 2014, 09:53:48 AM

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
Maybe you just have found a vulnerability in Motocoin. To ensure that new blocks are mineable it will never make target time less than median and you found a way to exploit it.
full member
Activity: 204
Merit: 100
June 06, 2014, 09:49:00 AM
Many people are interested when bots appeared. I made a small research.

Every time you press F6 your nonce is incremented (and it doesn't reset after a switch to a new block). For human miners nonce values should be low because humans cannot enumerate millions of maps while bots can (and that is what they actually do), therefore high values of nonce clearly indicate bots.

I made some graphs. Horizontal axis is block index, vertical is nonce in that block:
http://motocoin.org/research/nonces_ann.png
and in logarithmic scale:
http://motocoin.org/research/nonces_log_ann.png
member
Activity: 81
Merit: 10
June 06, 2014, 09:42:16 AM
This is entirely what I'd expect, if the current rate is the same as the average rate then no adjustment is necessary.  Are your proposing that if solution times remain consistent, we should retarget?  Should we make the challenge easier or harder in such a case, and by how much, exactly?

The threshold is not connected to the speed of block issue and a chain length. You can build a 5000 block chain with solution time equal to 60sec and time separation between 0 and 5000 block issue times will be less than an hour.

This is not the case in bitcoin. Bitcoin threshold is linked to the block issue time. If you are building a long chain of bitcoin blocks then the threshold will grow up rapidly and complexity of a new block calculation will grow also. But here we see a strange situation when the block solution complexity will not be changed even if blocks will be issued very rapidly. This is what am I talking about.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 09:24:48 AM
There is one more idea I want to share.

If there is a bot owner who can produce a viable solution for every possible starting block that fit in say 60 sec threshold and require less than 60 sec for this...  then this botowner is now probably building an alternate blockchain fork from 8000 block. And he will publish this blockchain shortly. His blockchain will be longer than the current blockchain because he can catch it up very quickly. If he can produce a solution in 5 sec then he needs a 5000 * 5 sec ~ 7 hours to produce a chain of 5000 blocks with solutions close to 60secs. Motocoin network will accept his new chain because his chain will be longer than the current one and it is done. This is not a 51% attack this is something different because attacker do not even need a lot of computation power to achieve this.

In other words. A bot owners can produce a blockchain fork as long as they want, each block in the forked chain will contain a solution close to 60sec. Bot owner needs far less time to achieve this than the sum of the thresholds for blocks in the chain itself. An actual block computation complexity is not connected to the threshold itself. This compromise the main idea of a blockchain. A blockchain fork attack complexity is very low now. Motocoin is literally compromised now. I am out.
What you describe is 51% attack. But you couldn't mine blocks just with 60 sec target time, if you want blocks only with 60 seconds target time then you need to ensure that average spacing between blocks is more than 60 seconds to prevent difficulty retarget to set target time to lower value; to produce longer chain this you will need to set time for some blocks far in the future and network will not accept such blocks.

If I understand this line correctly https://github.com/motocoin-dev/motocoin/blob/e13a143890b9f6a035294dc27d729890641d2b0a/src/main.cpp#L1197:

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.

This is entirely what I'd expect, if the current rate is the same as the average rate then no adjustment is necessary.  Are your proposing that if solution times remain consistent, we should retarget?  Should we make the challenge easier or harder in such a case, and by how much, exactly?

If hashing strength on a sha coin remains constant would you expect changes in difficulty targets??

You are a smart fellow, but there seems to be a theme emerging in a lot of your posts.... you say "moto is flawed because motohashing has BLAH problem" but when we take your arguments and replace "moto" with "bitcoin" and "motohashing" with "sha" they entirely stop making sense.  If we assume that the work function itself is computationally challenging at low bounds (still an open question, but likely true?) than there is little/no difference in semantics from litecoin, and the moto racing might as well be scrypt.  For any argument against moto to succeed with this complexity assumption the argument would also have to hold up against "clasically hashed" coins as well.  If your argument doesn't make sense in the context of sha hashing it likely won't make sense in the context of moto path hashing, unless you can first show that our complexity assumption about the hashing itself is flawed.  (PLEASE do so!  Seriously!  I desperately want to see someone do some real science around a complexity analysis of this work function.  I'd be doing so myself but I'm far too busy with my bots, my dayjob, a web based replay viewer, and living life.)



hero member
Activity: 826
Merit: 1000
sr. member
Activity: 434
Merit: 250
June 06, 2014, 09:13:05 AM
Are there going to be any fixes for this whole bot issue?

I'm starting to feel like I'm screaming into the wind on this, but here goes again!

This bot "issue" is not a problem that needs some "fixes" like a bug or design flaw.  The bots have greatly increased the security of the network, and will continue to do so.  The problem is that the prevalence of the bots, in their current form, put the parameters of the work challenge into a strange in-between point where the difficulty is neither low enough nor high enough for human players to even have an opportunity to compete.  This is unfortunate, but is also (one way or another) entirely temporary.  Either the semantics of map reset will be patched to afford humans more opportunity to compete while we are still in this odd midpoint phase, or the coin will be left alone entirely and eventually difficulty re-targeting will (probably?) reach a point where bots can no longer find solutions so quickly that humans have no opportunity to even try (albeit probably a while from now, as it is in bot miners' best interests to increase their hashrate as slowly as possible while still remaining competitive with other miners) and the human mining game will become playable again.  (The one big, unknown wildcard in this depends on what the actual computational complexity of an ideal solver would be.  If there is a possible deterministic linear integer solver (someone PLEASE convince me that there is not?!?!?!) then not only would humans never be able to compete again, but the coin as a whole would be entirely non-viable.)

Whether we patch and hard-fork to give humans opportunity right now, or wait until opportunity presents itself to humans again naturally, remains to be seen.  Even if/when such a patch is added to the network by devs there will need to be a consensus around the upgrade.  If the majority hashing strength does not adopt the patch, then the network will fork and users will have to wait for the natural adjustment anyway.  Hooray for global digital consensus mechanisms.

Myself, I will be quite likely to adopt any patch the developers put out.  I very much *want* humans to be competitive again, even though this may seem directly at odds with my actions of botting.  (This may seem counter-intuitive and not rational, but I assure you that on a long curve it is entirely the rational thing for a botter.  Think about it... our botted up coins are just a waste of our time and electricity if there is no interest in the coin.)

member
Activity: 81
Merit: 10
June 06, 2014, 09:01:58 AM
There is one more idea I want to share.

If there is a bot owner who can produce a viable solution for every possible starting block that fit in say 60 sec threshold and require less than 60 sec for this...  then this botowner is now probably building an alternate blockchain fork from 8000 block. And he will publish this blockchain shortly. His blockchain will be longer than the current blockchain because he can catch it up very quickly. If he can produce a solution in 5 sec then he needs a 5000 * 5 sec ~ 7 hours to produce a chain of 5000 blocks with solutions close to 60secs. Motocoin network will accept his new chain because his chain will be longer than the current one and it is done. This is not a 51% attack this is something different because attacker do not even need a lot of computation power to achieve this.

In other words. A bot owners can produce a blockchain fork as long as they want, each block in the forked chain will contain a solution close to 60sec. Bot owner needs far less time to achieve this than the sum of the thresholds for blocks in the chain itself. An actual block computation complexity is not connected to the threshold itself. This compromise the main idea of a blockchain. A blockchain fork attack complexity is very low now. Motocoin is literally compromised now. I am out.
What you describe is 51% attack. But you couldn't mine blocks just with 60 sec target time, if you want blocks only with 60 seconds target time then you need to ensure that average spacing between blocks is more than 60 seconds to prevent difficulty retarget to set target time to lower value; to produce longer chain this you will need to set time for some blocks far in the future and network will not accept such blocks.

If I understand this line correctly https://github.com/motocoin-dev/motocoin/blob/e13a143890b9f6a035294dc27d729890641d2b0a/src/main.cpp#L1197:

Quote
int bnNew = 2*Current - Median - (Current - Median)*nTargetTimespan/nActualTimespan;

then if Median is equal to Current... then bnNew will be equal to Current no matter what nActualTimespan is. Even if nActualTimespan is close to zero the new complexity threshold will not be changed.
sr. member
Activity: 434
Merit: 250
June 06, 2014, 08:58:45 AM
There is one more idea I want to share.

If there is a bot owner who can produce a viable solution for every possible starting block that fit in say 60 sec threshold and require less than 60 sec for this...  then this botowner is now probably building an alternate blockchain fork from 8000 block. And he will publish this blockchain shortly. His blockchain will be longer than the current blockchain because he can catch it up very quickly. If he can produce a solution in 5 sec then he needs a 5000 * 5 sec ~ 7 hours to produce a chain of 5000 blocks with solutions close to 60secs. Motocoin network will accept his new chain because his chain will be longer than the current one and it is done. This is not a 51% attack this is something different because attacker do not even need a lot of computation power to achieve this.

In other words. A bot owners can produce a blockchain fork as long as they want, each block in the forked chain will contain a solution close to 60sec. Bot owner needs far less time to achieve this than the sum of the thresholds for blocks in the chain itself. An actual block computation complexity is not connected to the threshold itself. This compromise the main idea of a blockchain. A blockchain fork attack complexity is very low now. Motocoin is literally compromised now. I am out.
What you describe is 51% attack. But you couldn't mine blocks just with 60 sec target time, if you want blocks only with 60 seconds target time then you need to ensure that average spacing between blocks is more than 60 seconds to prevent difficulty retarget to set target time to lower value; to produce longer chain this you will need to set time for some blocks far in the future and network will not accept such blocks.

I'd just like to say that I find it very reassuring that you seem to have a solid grasp (at least much more solid than anyone else in this thread, and quite a bit more solid than most people I talk to in general, heh) on block-chain semantic fundamentals.  I think if this project were in the hands of one of the (many) less capable altcoin devs out there that there would be little hope for this coin.  You seem to be quite up to the task at hand (even despite our complicating your life a bit with our own tasks!) and that gives me great confidence in the future of this coin.

I very much look forward to working with you in developing and bettering moto, the first true 3.0 crypto!
Pages:
Jump to: