Author

Topic: A different kind of coin proposal - WARNING! Wall of Text - Smart people only. (Read 478 times)

newbie
Activity: 23
Merit: 0
For half a second after reading your post, anderl, I toyed with the idea of some sort of "ASIC key" which could be given to institutions... which they could put into their miners, and which would tell the network to only send projects of a certain type to them... thus allowing them to use ASICs.

.. but it would be subject to just so much abuse.  So no.
newbie
Activity: 23
Merit: 0
Yeah you lost me at Is 100% ASIC proof.

If the coin is supposed to support a scientific process I would expect that the more computational power you throw at it the faster a solution is created to the proposed problem.  BUt since you what to hobble the purpose of the coin because you want some relevance to your gpus then you already set yourself up as a pump and dump coin that will die before it even gets started.

If ASICs were the most powerful protein folding machines on the planet and could cure cancers 1000x faster that GPUs could why would you want to prevent them from being developed for that purpose?

If the coin became popularly accepted on any real scale, the processing power of the combined network would vastly outstrip any centralized supercomputer cluster.  ASICs might be faster for specific projects, but millions of multipurpose CPUs and GPUs on a distributed processing network would be more powerful than any ASIC farm.  Why do you think things like BOINC and @Home projects exist?  They realized the potential power of distributed processing networks years ago.

The network would be designed to process ALL KINDS of projects.. not just protein folding, but any kind of project you can imagine.  Why would I hobble the entire system and ensure the eventual centralization of mining and the demise of public pools by allowing ASICs in order to benefit one type of project?  

And anyway, the network is 100% ASIC proof by its very nature.. by virtue of the fact that it can handle a vast array of custom projects, each with their own datasets and algorithms.  How would you design an ASIC for such a system?   Such a system requires a multipurpose, general processing solution.  ASICs by their very nature are not that. I couldn't allow ASICs to mine on the system even if I wanted to.

I don't want to though.  Why would I?;  ASICs centralize the mining power (and thus the wealth generation) into the hands of a few, to the exclusion of everyone else.  They defeat one of the core reasons cryptos were invented to begin with.
hero member
Activity: 714
Merit: 500
Yeah you lost me at Is 100% ASIC proof.

If the coin is supposed to support a scientific process I would expect that the more computational power you throw at it the faster a solution is created to the proposed problem.  BUt since you what to hobble the purpose of the coin because you want some relevance to your gpus then you already set yourself up as a pump and dump coin that will die before it even gets started.

If ASICs were the most powerful protein folding machines on the planet and could cure cancers 1000x faster that GPUs could why would you want to prevent them from being developed for that purpose?
newbie
Activity: 23
Merit: 0
Preface: Absolutely nothing here is set in stone yet, and lots of things have not been decided.  This proposal is incomplete.  Also, I am not perfect, and it is possible that one or more proposed features are fundamentally flawed.   Proposed features will be removed if they are shown to be unworkable, and all ideas are welcome.  If I use your idea, you will be credited.  Thank you for participating, but please don't offer ideas or criticize until you have at least taken the time to read through and understand the full (non-TL;DR) version below.

TL;DR Version:

 Project Proposal:
A coin which aids scientific progress and the development of humanity in general.  Working name:  Scientific Progress Coin - SPC  

This is a proposal for a standalone, completely decentralized currency which would live forever while aiding mankind through the furthering of scientific and other endeavors.  It would be 100% ASIC-proof because it would be processing lots of different unknown and unpredictable data types, and because the protocol wrapper for the project data would be constantly changing it's difficulty in response to the hashing power of the network.

What are we doing with our mining rigs today that is useful (other than making money)?  Absolutely nothing.  All of this processing power is just being used to break cryptographic algorithms.. it doesn't do anything else, and that is a shame because it could be used to do so much good for the world by accomplishing other things in the process:  like protein folding, reversing human aging, forecasting weather and curing cancer.

Other people have had this same basic idea: It is why Gridcoin partnered with BOINC and Folding@HomeCoin partnered with Folding@Home. But these currencies have several critical flaws, the largest of which are:

1) They rely on their partner services to function. If those services ever go away or have any downtime, the whole currency goes with them.

2) The processing power of their networks is only available to the projects in the partner system... not to everyone.

This proposal is a standalone solution to this problem. Completely self contained and decentralized, able to process all kinds of data for all kinds of projects. The network power would be secure and accessible to all organizations for use in processing their projects, and the coin would be 100% ASIC proof by it's very nature (processing lots of different and unpredictable data types)

A project folder would be MD5 hashed, tested to verify it's dataset, processing instructions and difficulty, rared, split into chunks and uploaded to the network via the wallet software.  The network would be designed to insert project data chunks received in this way into it's blocks and wrap them in a variable difficulty cryptographic wrapper (based on the difficulty of the project) both to obfuscate the data inside and to maintain overall network difficulty.  No hard fork required.

The network would accept all kinds of project data, from protein folding and weather system prediction to little Bobby's  High school science fair project Smiley   Each project submitted to the network would have its own algorithms, datasets and processing requirements, and a miner would never know what it would find inside a the next project chunk when it cracked the wrapper and started processing the data within.

Such a system requires a multipurpose, general processing solution.  ASICs by their very nature are not that.  No ASIC would ever be developed for it.

Small projects would be processed for free, but for larger (think institutional or national) projects, using the network power would be a subscription service.   These subscription fees for large projects would be paid for in the SPC currency itself, which would encourage institutions to either mine or purchase SPC in order to pay for their project fees, thus driving up the value.   The community would have the ability, through the wallet software, to vote in worthy projects which are large enough to require a fee but cannot afford it.

SPC put back into the network through project processing fees would not go to any person or entity.. they would become available to be MINED AGAIN, thus extending the release schedule and giving miners incentive to keep their machines running.


Full Version:

Question: Is it possible to create a coin which:

  • Is Fair
  • Is democratic
  • Is 100% ASIC proof
  • Is Future proof
  • Has extreme longevity (Well past it's release schedule.. and perhaps forever)
  • Has a network which is not able to be exploited or manipulated either internally or externally
  • Would futher scientific advancement and other projects
  • Is completely decentralized, not relying on any external systems (such as BOINC or Folding@Home) to work


I have been thinking about it... and in the future I may do more than just think.  But for now, here are the features I (and now a few others) have come up with
(this post will continue to expand as ideas are contributed):

Basic Coin Features

1- It would not be pre-mined, and the first few blocks would have zero reward, so small miners have a chance to get setup and going without the scene being immediately dominated by large pools.

Section contributors other than Nimuecrypto.com: ( Reddit user 'supremeMilo' )

2- This coin would use cryptographic wrappers for project data (see below).  These wrappers would possibly be Scrypt, but Scrypt ASICs might already be just around the corner and it has not been very long since that algorithm was invented, which tells me that Scrypt may not be all that future proof after all.... and the wrapper should still be as ASIC resistant as possible even if the network and project data itself is basically ASIC proof due to its very nature. The harder it is made to develop any kind of dedicated miner for the system, the better.  With this in mind, the wrapper would likely be a newer algorithm, perhaps based on scrypt... but probably not.  Maybe something like X11.  

3- A combination proof of work/proof of stake scheme which discourages currency hopping (multipools) by weighting block rewards in favor of miners and pools who spend more time in-network.  This scheme would use much of the same logic as the PPLNS payment system that pools use to discourage pool hopping.

Advanced Coin Features

1- Since one of the main goals would be to actually aid scientific progress instead of just creating a bunch of noisy space-heaters, this protocol would call for both a Blockchain and a 'Projectchain'.  The Projectchain would record information about projects which are using the processing power of the system

2- The protocol would have the ability to accept uploaded project data through the wallet software and to generate user datastreams, providing I/O to research projects which require vast amounts of processing power.  This system would harness the processing power of the network to solve complex problems instead of just turning it into wasted heat which is what we do now.  

3- Any project, person or organization would be able to use the wallet software to point to a project data folder.  The project data folder would contain the data they want processed,  a scripted instruction set for processing that data, and a verified digital certificate(which one?). The digital certificate would discourage abuse as it could be used to identify the person/organization should they use the system for evil.  Project folders not containing a valid certificate would not be accepted by the protocol and would not be processed.  Access to the network would be a paid service which only accepts SPC. SPC received in this way would be put back into circulation to be mined again, giving miners incentive to keep their machines running and extending the life of the currency well past it's scheduled release end date.

Section contributors other than Nimuecrypto.com: (dQuinlog on facebook and fattyforhire on Reddit)

4- If a user were to click "browse" in the Project tab and point to folder which contained

    
  • the data to be processed
  • a scripted instruction set for processing the data
  • a valid digital certificate

then the wallet software would first generate an MD5 sum for the project folder, after which it would run some preliminary processing tests on the data to make sure the instruction set was valid, and to determine the overall difficulty of the project.

5- Once the difficulty of the project was calculated, the wallet would report it to the protocol, which would create an entry in the Projectchain for that project, and generate one or more TCP datastreams for the user, the connection information for which would be displayed in the 'Project' tab of the wallet software.  The wallet software would then begin uploading the project data to the cloud, and the user would begin receiving the results of their processed data via those streams.  If at any time the MD5 sum of the data in the project folder stopped matching the sum on record, the project would stop processing and a new MD5 and project difficulty setting would have to be determined.

6- Each cryptographic 'block' in the network would consist of many chunks of project data, each of which would contain the difficulty rating, instruction set and certificate of one of the many projects utilizing the network.  Each 'project chunk' would be encased in an encrypted wrapper which would be generated by the protocol using the coin algorithm.  The wrapper difficulty for the chunks of any given project would be adjusted according to the calculated difficulty of that project.  If a project was determined to have a very high difficulty, for example, then the wrapper difficulty would be fairly low, so that the vast majority of the processing power being devoted to the data chunks would be going toward processing the project data, not simply decoding the wrapper.  Conversely, the chunks of an easy project would have higher difficulty wrappers in order to maintain overall network difficulty.  As chunks were decoded, unwrapped and processed according to the instruction set contained therein, the results would be fed to the output stream(s) of the project.

7- The wallet software for the coin would use the Projectchain to display all of the projects currently being processed by the network, along with a brief description of the project and whether or not it's certificate was valid.  

Voting System

The wallet would display the entire Projectchain, and users would be able to up or downvote projects based on merit.  Votes submitted in this way would be recorded in the Projectchain and would be used by the protocol to determine which projects got processing priority.   The protocol would NOT maintain a list of active pools and hashrates, but it would keep track of which project chunks were sent where, and it would monitor the output data stream for the project in order to determine how fast those chunks were being processed.  It would use this information to determine where to send high vs. low priority project blocks in the future.

Initially, most projects would need to pay to get access to the system, after which the voting system would kick in.  Wallet users would be able to vote up or vote down projects.  The higher a project rose on the priority list, the cheaper it would become for the project owners, approaching  zero processing cost at the top of the tier.  The most popular and useful projects would be upvoted by the community and thus processed the most quickly and cost effectively.

There would also be a mechanism for the community to vote in, free of any initial charge, extremely worthy projects which have no way of otherwise affording the service. This would be a completely democratic process, and would be completely community-initiated and executed.

Release schedule:  

Total volume:  
Not yet determined.

Release rate:
Not yet determined.

Block generation time:  
Not yet determined, but certainly less than 5 minutes.  

Ending strategy:  
Having a release schedule which decreases in volume over time and eventually stops is important for the rarity and value of a coin, so this is the strategy which would be employed for the initial release schedule.   However, With miners continuing to hash in order to re-mine the coins which are being put back into the system through project power rentals, another opportunity arises:  mini-release cycles could be triggered every once in a while to make up for coins which had been irreparably lost out of circulation,  extending the life of the currency indefinitely.  These mini releases might only last months or a couple of years at a time, but would bolster the income of the miners and give even more incentive to keep the machines running.

To clarify:
SPC currency recycling would be happening from the launch of the coin, and would occur when external organisations rented (with SPC) the power of the network to process their projects.  All SPC received in this way would be put back into the system to be mined again.  This would not contribute to inflation in any way.

Now for the mini releases.  The idea behind the regeneration of lost coins via mini releases is that although we want the currency to maintain it's value over time, we also want to avoid it ever reaching a point that there is too little SPC in circulation for it to be considered a viable currency anymore.

Absolutely no mini-releases would occur until after the initial release cycle had ended, by which point the value of the coin should be fairly well established.  Miners would still have their rigs running because there would always be coins being recycled back into the system via the network rental fees.. so there should always be a miner base to pick up the releases.  

The mini-releases would occur whenever the protocol determined that there had been a significant decline in the overall amount of SPC in circulation.  It would be able to guess at this figure because it would have access to the blockchain and thus all balances all transactions, and because individual wallets would be anonymously checking in with the system over time, basically just saying "Hey, I'm still alive!".  Now, it is always possible that that some wallets would be offline for years at a time but not actually lost; their .dat files recorded on physical media and stored in a safety deposit box or lost behind a headboard to be discovered many years later.  It is for this reason that the mini releases would not happen very often, and when they did, they might only ever release perhaps 20% of total amount of SPC that the protocol THINKS has been lost.


Additional Notes:


Even more ASIC resistance is inherent in the system
Litecointalk.org user 'Benny' points out that although the Scrypt-esque wrapper algorithm would be the first line of defense against ASIC exploitation, the fact that each project utilizing the network would be using different datasets and instruction scripts, and that each block would contain chunks from multiple projects would itself be a huge deterrent to any kind of ASIC ever being developed to mine this coin.



SOFTWARE

The wallet and mining software for this coin would be combined (at least in windows.  A dedicated miner for Linux would certainly be made).  The reason for combining them is simple:  In order to verify the various project instruction sets and determine the difficulty of any given project, the wallet software must have the ability to actually process the data in the same way that it will be processed by the miners in the cloud.  The best way to do this is simply to combine the wallet and mining suites into a single application.

To avoid confusion for new wallet users, GUI options for mining, and for launching a local project would be hidden by default in windows and mobile wallet versions

Wallet-specific

  • Network-wide project display tab
  • Project voting system
  • Project MD5 verification
  • Project Certificate verification
  • Project data upload capability
  • 'My Project' status display, including TCP stream connection information

Miner-specific

  • Project instruction set validity checking
  • Multiple compilers for processing project instruction sets.  Only a single instruction set language would be supported at first (probably C++), with more added later

Can you think of any other features such a coin might have, or suggest changes to the above feature set?  I will keep updating this top post over time as a consensus is reached.
Jump to: