I want to get all of your takes on the validity of an idea I have been hashing out for several years now and finally have it in a form that I think would work.
Satoshi designed the blockchain to solve many technical challenges at once including:
- creating coins
- distributing coins fairly
- creating a ledger
- transferring coins
- preventing double spend
- ensure everyone can compete for coins with consumer hardware
- converging the ledger to one version
What if we could create solutions to all or nearly all of these with no blockchain? Without a blockchain and thus no time-gating, then transactions can be near instant, mining can be done without connection to the internet, 51% attack impossible, and price can be stabilized.
The solutions I have come up with is called a Digital Collectible and a currency based on it called a digital collectible currency (DCC). This digital collectible is an indivisible solution to a problem created from a private and public key. Basically a miner would create a private key and public key for each coin. Then they would hash it with a nonce to get a large random number. Next they would factor this number using GNFS. The list of prime factors is the Proof of Work and is the Digital Collectible.
At this stage the first two problems, creating and distributing coins, is accomplished.
To create a ledger we would have many nodes each maintaining a database and recording everyone's public key, nonce, and factored solution. Each line in the database is a "coin". They can use GIT or something to show changes over time to their ledger.
To transfer coins the private key of each coin to be transferred would be given to someone else. There is no direct transfer from one public key to another. Now both the giver and receiver of the coin have the private key, and thus either one can spend it, which is the double spend problem.
To solve the double spend problem an update request to the ledger can be made. Anyone with the private key can change the private and public key of the coin by sending a message to every node requesting a public key change that is signed with the original private key and which integrates a new private key for the new public key. So to validate that this transfer happened, you ping the network of nodes and just confirm that indeed their ledger now has changed the public key to the value you proposed. Which message was received first, the one where you change the private key, or the person that sent it to you changes the private key on you? Each node decides that. And by the receiver pinging the nodes and finding out which transactions their trusted nodes thought was first, the receiver can verify that indeed they were first and they now own the coin. If the other person was first, then the coin receiver can decline to give the product to the coin giver, and have him send a new private key.
This idea using GNFS factoring large numbers is the best possible way to ensure consumer hardware can mine it and it does not benefit from GPU, FPGA, or ASIC speedup. However since it is an NP-hard problem and not NP-complete like the hashing algorithms, it can benefit from quantum computer speedup. However a quantum computer that can factor a number as large as a desktop can today, would take decades of development. Also a quantum computer would not win every coin nor could it attack the network, since other coins could be mined by other people simultaneously.
The only problem yet to solve is converging the ledger to one official version. But I think this is actually better, not having an official version would make the ledger flexible and changeable by consensus, and immune to a 51% attack. We would have to trust nodes, and there can be things done to increase trust such as having nodes stake coins, and blacklisting any misbehaving nodes. Nodes would be in a constant war of winning your trust, and you would not have to rely on any one node and can send your requests to as many as you like and nodes would be incentivized to cross check with each other to ensure their ledger is trustworthy. Nodes could require you pay a fee to send them your key change requests (transactions). I foresee it kind of like sharing a podcast. You pay one service to host it, and all the other services pick it up from the RSS and host it for free.
Even though bitcoin claims to be trust-less, in fact you are forced to trust the majority of hash-power. In this idea we do not claim it is trust-less, and yet you are not forced to trust anyone or group, you can choose who to trust. The customer having this choice of nodes, as a free market, is what makes the network robust, and nodes would have to win customers by being more trusted than their competitors by developing a good reputation and connections and/or staking a lot of coins that would be lost if they misbehave. A node is a public IP address, and when a node pings them, they need to sign for their staked coins. If they refuse to sign, then it is assumed they have no staked coins. If word gets out that this IP is trouble, those coins would be blacklisted from all other good nodes. Even if a large percentage are bad, the network can restructure eliminating the bad nodes and no value or security is lost from the coin since nodes are not contributing hash-power.
There can also be a list that nodes hold of Node Staked Coin public addresses (NSC addresses), and also Blacklisted Addresses, so when someone is offering you coins from a public key for trade that is on this list, to be wary that they may be trying to offload their coins because they see judgement coming from the other nodes. These coins would be lost forever if they are blacklisted, no matter who the current owner is when they get blacklisted.
Here are archive links to some articles I wrote on this with more information:
https://archive.is/T3P0Ihttps://archive.is/zDOEPAgain I would ask you to try to find holes in the logic and let me know if you have ideas to improve it. Thanks.