Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: nkocevar on January 24, 2015, 05:28:35 AM



Title: Why not..?
Post by: nkocevar on January 24, 2015, 05:28:35 AM
How about that title for an attention getting advice? Anyways, I have an important (to me) question...


Why not create an altcoin that has a reward based on an order of magnitude of hashing power of each miner such that reward(R) is equal to log base 10 of hashing power? For example:

1 MH/s = (log(1)=R); R=0 coins
2 MH/s = (log(2)=R); R=approx. 0.30103 coins
5 MH/s = (log(5)=R);R=approx. 0.69897 coins
10 MH/s = (log(10)=R); R=1 coin
1337 MH/s = (log(1337)=R);R=3.12613 coins
10 GH/s = (log(10000)=R);R=4 coins
10 TH/s = (log(10000000)=R);R=7 coins

This would create a vast wealth-gap reduction, so that 1% of addresses do not own 70% of coins. In doing so, there would be a great decrease in market-dumping and would be asic-proof in the code itself. If a miner with 10 TH/s mined 1 block with a reward of 7 coins, another miner could make the same profit with 10 MH/s of hashing power in 7 blocks. That discourages huge for-fiat-profit mining operations and encourages everyone to mine to make their coin, further supporting the network itself because everyone can generate coins even with an old CPU (every H/s counts!)


Thoughts, Concerns, "Fuck you, you socialist bastard"(s), etc. ???



Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: Q7 on January 24, 2015, 06:35:09 AM
Although there is nothing wrong with your idea which i think is great that it allows everyone to participate in mining but  I remember there was an altcoin created before operating on the same concept but failed. Wish I could remember the name of the coin though


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: Fernandez on January 24, 2015, 06:37:05 AM
This is easy to get around. I will simply run multiple miners. Anybody sane will break it up and run multiples.


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: nkocevar on January 24, 2015, 06:39:56 AM
This is easy to get around. I will simply run multiple miners. Anybody sane will break it up and run multiples.

How could one fix this? Limited wallets? Limited "mining spots"? Miner verification? There has to be something not too intrusive


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: nkocevar on January 24, 2015, 06:41:17 AM
This is easy to get around. I will simply run multiple miners. Anybody sane will break it up and run multiples.

WAIT A MINUTE! Then everyone could do that... More coins generated, difficulty increases as its common knowledge to run multiple instances... eventually it will reach equilibrium again?


**EDIT: Nevermind... argument flawed again... damnit. People with more fiat resources can purchase a way to run more instances than an average joe.**


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: Bit_Happy on January 24, 2015, 06:42:19 AM
This is about "an altcoin", so shouldn't it be in the other section of the forum?
Edit: Good ideas in the OP...


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: nkocevar on January 24, 2015, 06:45:11 AM
This is about "an altcoin", so shouldn't it be in the other section of the forum?

Altcoin can be used to describe BITCOIN forks ;) maybe this can be sensibly revised and applied to bitcoin itself in some way but still maintain bitcoin as its name... just like switching POW to POS or POS to POW


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: nkocevar on January 24, 2015, 06:52:00 AM
Im going to edit OP to ask mod to switch to proper section of the forum... but for now I'd like some input if anyone is willing.  I'm either beginning a manic episode or I am actually onto something (or both xD).


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: DannyHamilton on January 24, 2015, 06:52:10 AM
By basing a fixed reward on a proof of work Bitcoin prevents a Sybil attack. You have to think about how your protocol will overcome a Sybil attack in order to make it work. I don't see a decentralized way to know exactly how much hash power someone is providing.

You need a centralized entity to determine and enforce rules about splitting hash power.


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: NeuroticFish on January 24, 2015, 06:52:50 AM
If the hashing power would be on a more used algo (scrypt, x11, x13), then a pool that handles the power will do. Basically the pool (multipool) could use some power for coin1, some power for coin2, ... getting more income without rising the diff too much.

So what you need is a smarter multipool program, not really a new coin.


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: nkocevar on January 24, 2015, 06:56:44 AM
By basing a fixed reward on a proof of work Bitcoin prevents a Sybil attack. You have to think about how your protocol will overcome a Sybil attack in order to make it work. I don't see a decentralized way to know exactly how much hash power someone is providing.

You need a centralized entity to determine and enforce rules about splitting hash power.

The "Rules" of bitcoin are determined and enforced via code. With proper code-modification, these new "rules" would be implemented in every computer mining or running wallet software, therefore making it decentralized. Correct?

*EDIT: Plus, those rules could be variable just as difficulty is. Instead of a target block time, you have a target reward (per "user")? Maybe?*


Title: Re: Why not...? (MOD: PLEASE MOVE TO PROPER SECTION, THANK YOU!)
Post by: DannyHamilton on January 24, 2015, 07:09:28 AM
But bitcoin doesn't reward you for something that isn't verifiable (hash power available to you) it rewards you for completing a difficult proof of work. A single reward for a single proof no matter how much or how little hash power you actually have. The proof of work can be (and is) verified by every mode in the network.

Can you think of a verifiable way for everyone to determine exactly how much hash power I have available to me without knowing anything about me?


Title: Re: Why not...? (MOD: PLEASE MOVE TO PROPER SECTION, THANK YOU!)
Post by: DannyHamilton on January 24, 2015, 07:11:51 AM
You have to think in terms of a Sybil stack and determine exactly how you are going to verify whatever you plan to enforce. Then figure out if there is any way for individuals to "spoof" whatever criteria you choose.


Title: Re: Why not...? (MOD: PLEASE MOVE TO PROPER SECTION, THANK YOU!)
Post by: CrackedLogic on January 24, 2015, 07:13:18 AM
You can move it yourself. Look at the bottom left corner. Then click move topic.


Title: Re: Why not...?
Post by: nkocevar on January 24, 2015, 07:17:01 AM
You can move it yourself. Look at the bottom left corner. Then click move topic.

You learn something new every day


Title: Re: Why not...?
Post by: CrackedLogic on January 24, 2015, 07:22:40 AM
You can move it yourself. Look at the bottom left corner. Then click move topic.

You learn something new every day
:)  you're welcome.


Title: Re: Why not...? (MOD: PLEASE MOVE TO PROPER SECTION, THANK YOU!)
Post by: nkocevar on January 24, 2015, 07:24:16 AM
How about this scenario:

Say you have 10 "users" (but lets say instances) mining with the following IPs
1-65.25.42.63
2-126.154.98.22
3-65.25.42.64
4-25.68.36.45
5-65.25.42.65
6-87.22.55.89
7-65.25.42.66
8-45.22.36.59
9-65.25.42.67
10-65.25.42.68

We dont *know*, except for in this scenario, that "users" 1,3,5,7,9, and 10 are the same person trying to commit an attack.

What if every block randomly generates a random number set each new block that corresponds to "instance ID's" assigned to every mining instance such that 49% of instance ID's are randomly picked to ACCEPT work from, and 2% of ID's are maintained from the previous 10 blocks to accept work from...

is there some variant of that in which you can exponentially decrease the odds of 51% of the network being under control by the same group? or is it impossible?


Title: Re: Why not..?
Post by: MaxDZ8 on January 24, 2015, 07:28:42 AM
You cannot work in IPs.
IPv6 maybe. Maybe. But as for IPv4, I know a major ISP around here which puts all its users out of a single IP.


Title: Re: Why not..?
Post by: nkocevar on January 24, 2015, 07:34:18 AM
You cannot work in IPs.
IPv6 maybe. Maybe. But as for IPv4, I know a major ISP around here which puts all its users out of a single IP.

I was just using it as an example. Basically all the network would see would be multiple "instance ID"s submitting work, be it from the same person or multiple people, no IPs are used in the selection process


Title: Re: Why not...? (MOD: PLEASE MOVE TO PROPER SECTION, THANK YOU!)
Post by: DannyHamilton on January 24, 2015, 07:38:03 AM
How about this scenario:

Say you have 10 "users" (but lets say instances) mining with the following IPs
1-65.25.42.63
2-126.154.98.22
3-65.25.42.64
4-25.68.36.45
5-65.25.42.65
6-87.22.55.89
7-65.25.42.66
8-45.22.36.59
9-65.25.42.67
10-65.25.42.68

We dont *know*, except for in this scenario, that "users" 1,3,5,7,9, and 10 are the same person trying to commit an attack.

What if every block randomly generates a random number set each new block that corresponds to "instance ID's" assigned to every mining instance such that 49% of instance ID's are randomly picked to ACCEPT work from, and 2% of ID's are maintained from the previous 10 blocks to accept work from...

is there some variant of that in which you can exponentially decrease the odds of 51% of the network being under control by the same group? or is it impossible?

A few questions:

1) How do you get every node on the entire network to choose the same random number (so that they all choose the same 49% to "accept work from"?

2) How do you keep the nodes that will be ignored for the next block from knowing that they will be ignored (so that they don't just turn off all their equipment until the block is solved and the next "random number" is chosen?

3) If nodes 1, 2, 3, 4, and 7 all broadcast the exact same block within a fraction of a second of each other, how do nodes 6 and 8 know which node "solved" the block?


Title: Re: Why not..?
Post by: DannyHamilton on January 24, 2015, 07:40:54 AM
Basically all the network would see would be multiple "instance ID"s submitting work

No.  The network wouldn't.  It's decentralized.

Each node only knows what it's peer tells it.

Therefore, If nodes 2, 4, 6, and 8 were all connected to each other, none of them were connected to nodes 1, 3, 5, 7, or 10, and ONLY node 2 was connected to node 9, then nodes 4, 6, and 8 would all get the submitted block from node 2 (or from each other).  They wouldn't know that node 10 submitted the block at all.


Title: Re: Why not..?
Post by: DannyHamilton on January 24, 2015, 07:46:11 AM
As I've said a few times.  You REALLY need to think in terms of a decentralized system (where there is no identifying information available at all about the hasher), and in terms of a Sybil attack.  Until you can get your mind into that mode, you aren't going to come up with any useable ideas at all.

Note, that it took decades of people thinking in terms of a decentralized system under a Sybil attack all failing to come up with a solution until Satoshi came up with the proof-of-work secured blockchain idea.  If you seriously start thinking in terms of a decentralized system under a Sybil attack the first somewhat workable solutions that you'll come up with will all be "proof-of-something" (work, stake, storage, etc) solutions.  All of these will have the same feature of a fixed reward for completing a fixed proof.


Title: Re: Why not...? (Oooh drawing you in with a question... (and then humor))
Post by: username18333 on January 24, 2015, 08:03:38 AM
Although there is nothing wrong with your idea which i think is great that it allows everyone to participate in mining but  I remember there was an altcoin created before operating on the same concept but failed. Wish I could remember the name of the coin though

You may be thinking of YACoin (https://www.yacoin.org/tech.html), which features “a variable block reward” (YACoin) that is inversely proportional to its “network difficulty” (YACoin).



https://www.yacoin.org/dist/img/reward.png (https://www.yacoin.org/tech.html)


Title: Re: Why not..?
Post by: nkocevar on January 24, 2015, 08:10:37 AM
As I've said a few times.  You REALLY need to think in terms of a decentralized system (where there is no identifying information available at all about the hasher), and in terms of a Sybil attack.  Until you can get your mind into that mode, you aren't going to come up with any useable ideas at all.

Note, that it took decades of people thinking in terms of a decentralized system under a Sybil attack all failing to come up with a solution until Satoshi came up with the proof-of-work secured blockchain idea.  If you seriously start thinking in terms of a decentralized system under a Sybil attack the first somewhat workable solutions that you'll come up with will all be "proof-of-something" (work, stake, storage, etc) solutions.  All of these will have the same feature of a fixed reward for completing a fixed proof.

I dont know if you can read/understand this...

http://s9.postimg.org/agazobkfj/NEWCOIN.jpg

The "proof" could possibly be something like a SET hashrate somewhat determined by the user. Say your ASIC can run at 350 GH/s, there is a prompt that asks you to set your Hashrate statically, and then a RNG adds a xx number decimal point to that static rate. So you set your rate to 322 GH/s, and then the built in RNG puts in say, 12 decimal points, so it sets your static hashrate to 322.125875456251 GH/s and that is how the network issues you your "ID" starting at 1 and ending at 999999999999 based upon the numbers after the decimal point. Is that possible? **To maintain a static hashrate**

**=Edit


OH MY. I SPELLED BROADCAST WRONG :o


Title: Re: Why not..?
Post by: nkocevar on January 24, 2015, 08:28:36 AM
Would one consider an "executive", "legislative", and "judicial" branch centralized?

What if each node switched between these "roles" where:

- legislative defines, without influence, from which sources in the "executive" branch work is accepted from
- executive does work, and only sources from which work was selected to be submitted will be sent to the "judicial" branch for review in a "pre-valid block"
- Judicial branch ensures that no double spends are contained in the block etc. and then broadcasts the block
**all branches have some "judicial" power to ensure judicial branch isnt compromised

if one of these branches defects, aka 33%, then the other two branches, 66%, will further divide into 3 branches again
if two branches defect, since all branches have some judicial review, then 33%, or 1 branch, will divide into the 3 branches again, etc.


Title: Re: Why not..?
Post by: username18333 on January 24, 2015, 08:37:22 AM
A hard limit on “network difficulty” is a more elegant (at least, programmatically) “solution (https://bitcointalk.org/index.php?topic=776426.0)” to the problem.


Title: Re: Why not..?
Post by: DannyHamilton on January 24, 2015, 09:22:45 AM
I dont know if you can read/understand this...

http://s9.postimg.org/agazobkfj/NEWCOIN.jpg

I can read it, as for understanding it, I'm not sure what it's even trying to accomplish.  As best I can tell, you are still looking for examples that show your system "working".  You need to try to think of examples where your system "doesn't work".  Only if you have tried all possibilities that you can think of (and all possibilities that anyone else thinks of) and still can't find a way that it "doesn't work" can you start to think you might be on to something.  Finding 1 example of a way it could "work" is not proof that it does work.  It's only proof that you haven't looked at enough possibilities yet.

The "proof" could possibly be something like a SET hashrate somewhat determined by the user.

And a user can lie.  As a matter of fact, in any such system you might try to design, you have to assume that ALL users WILL lie.  That is how/why Bitcoin works.  Every node assumes that every other node will lie to it.  EVERY node verifies EVERYTHING (transaction inputs, signatures, block headers and hashes, merkle roots, etc).

Say your ASIC can run at 350 GH/s, there is a prompt that asks you to set your Hashrate statically, and then a RNG adds a xx number decimal point to that static rate.

A RNG?  Run by who?

So you set your rate to 322 GH/s, and then the built in RNG puts in say, 12 decimal points, so it sets your static hashrate to 322.125875456251 GH/s

And if I lie and say that my hash rate is whatever the smallest hashrate is that will get me the largest possible "reward"?  How will you determine that my hash rate is actually larger?  How about if I generate a new "random ID" every few seconds?  How will you keep track of the difference between one user generating millions of IDs and millions of new users all deciding to start mining?

and that is how the network issues you your "ID" starting at 1 and ending at 999999999999 based upon the numbers after the decimal point.

"The network" issues me an ID?  Who is "the network"?  What keeps two different people from being assigned the same ID?  What keeps one person from getting mutliple IDs?

Is that possible? **To maintain a static hashrate**

Does it matter, since I can just lie about my hash rate?


Title: Re: Why not..?
Post by: DannyHamilton on January 24, 2015, 09:27:45 AM
Would one consider an "executive", "legislative", and "judicial" branch centralized?

What if each node switched between these "roles" where:

How do you force a node to switch roles?  How do you know if a node has switched?

- legislative defines, without influence, from which sources in the "executive" branch work is accepted from

You still haven't come up with a reliable way to define a "source".

- executive does work, and only sources from which work was selected to be submitted will be sent to the "judicial" branch for review in a "pre-valid block"

Won't everyone just run an "executive" node, since that is the only node submitting work?

- Judicial branch ensures that no double spends are contained in the block etc. and then broadcasts the block
**all branches have some "judicial" power to ensure judicial branch isnt compromised

if one of these branches defects, aka 33%, then the other two branches, 66%, will further divide into 3 branches again

if two branches defect, since all branches have some judicial review, then 33%, or 1 branch, will divide into the 3 branches again, etc.

What mechanism is used to determine if a branch has defected?  How do you force any individual node to divide into another role?


Title: Re: Why not..?
Post by: nkocevar on January 24, 2015, 09:44:05 AM
Would one consider an "executive", "legislative", and "judicial" branch centralized?

What if each node switched between these "roles" where:

How do you force a node to switch roles?  How do you know if a node has switched?

- legislative defines, without influence, from which sources in the "executive" branch work is accepted from

You still haven't come up with a reliable way to define a "source".

- executive does work, and only sources from which work was selected to be submitted will be sent to the "judicial" branch for review in a "pre-valid block"

Won't everyone just run an "executive" node, since that is the only node submitting work?

- Judicial branch ensures that no double spends are contained in the block etc. and then broadcasts the block
**all branches have some "judicial" power to ensure judicial branch isnt compromised

if one of these branches defects, aka 33%, then the other two branches, 66%, will further divide into 3 branches again

if two branches defect, since all branches have some judicial review, then 33%, or 1 branch, will divide into the 3 branches again, etc.

What mechanism is used to determine if a branch has defected?  How do you force any individual node to divide into another role?


Great constructive criticism. I like it! Did you work in product design and development at some point?

To address your concerns, I must say that I am in no way shape or form qualified to even begin to provide a counterarguement. As a matter of fact, I am staring at the white paper trying to think of a way to somehow modify the way bitcoin works all together. It may just be best to start an entirely new algorithm and concept and not compare it to bitcoin, yet maintain a crypto currency standard of anonymization and public transactions, etc.


Title: Re: Why not..?
Post by: DannyHamilton on January 24, 2015, 09:55:52 AM
Great constructive criticism. I like it! Did you work in product design and development at some point?

Design? No.  Development?  Yes for at least the past 40 years.

However, most of the criticism you are getting from me comes from over 3 years of studying Bitcoin, participating in this discussion forum, and seeing some of these same "new ideas" repeated again, and again, and again.

To address your concerns, I must say that I am in no way shape or form qualified to even begin to provide a counterarguement. As a matter of fact, I am staring at the white paper trying to think of a way to somehow modify the way bitcoin works all together.

Then you are taking on a monumental task.  The white paper was born out of decades of failed ideas.  While there have been some very small variations on what is described in the white paper, there have (after 6 years of MANY people trying) not yet been any significant workable modifications to the basic concepts.  You can't even start to come up with a workable idea until you understand what problems were encountered in the attempts prior to Bitcoin and how Bitcoin solves those problems.

It may just be best to start an entirely new algorithm and concept and not compare it to bitcoin, yet maintain a crypto currency standard of anonymization and public transactions, etc.

It is easy (trivial even) to implement a crypto currency with a centralized clearing house.  But if you want to create something new truly decentralized from the ground up, then you need to understand concepts such as the byzantine generals problem and Sybil attacks.  You need to understand why the blockchain concept is necessary and what it is accomplishing.  You need to understand that EVERY node MUST assume that it is being lied to in every communication that it receives unless it can prove that it is not being lied to.


Title: Re: Why not..?
Post by: First.Bitcoins on January 24, 2015, 03:10:12 PM
There is a simple way to do this with pool mining.

We do it with the AppleByte pool, which has a bonus paid to our CPU & GPU miners


Here are the technical details, if you are interested:

We pay a bonus to every account in the pool. The bonus is the same regardless of the hash power you use to mine. We pay the bonus on every block mined by the pool. So whether you mine with an old PC getting 5khs or ASICS getting 25mhs, you get the same bonus every time the pool finds a block, greatly increasing the amount of ABY given to smaller miners.


So for example:

Miners using the CPU on a typical laptop get 10 - 15 khs, and can mine about 100-150 ABY per day
The largest miners on the pool get 25mhs, and can mine about 10,000 ABY per day.

Our bonus is the same for each size of account, so for example if the bonus is 0.5 ABY per block (and the pool mines 200 blocks per day, each account gets a bonus of 100 ABY per day.

The bonus is paid by the AppleByte Foundation, and is not taken from anyone's share.
These estimates are approximate & can change based on the number of miners.



More AppleByte Details:
Announce Thread:  Announce Thread (https://bitcointalk.org/index.php?topic=503131.0)
Website: AppleByte.me (http://AppleByte.me)
Facebook: AppleByteMe FB Page (https://www.facebook.com/applebyteme)
Twitter: AppleByteMe Twitter (https://twitter.com/AppleByteMe)