Hi I'm just an enthusiast and I had some far-out ideas I wanted to share before I forget, if it's of use to anyone.
It's overly ambitious, trying to tackle big stuff, and blurry and probably flawed. I lack time/skill/smarts to get more into it, the technicalities, but I leave that there for the forengers. Then I'll be on my way.
A)
So, I had that idea
It is a 2nd token to trade, in the blocks
If you own X% of it, you receive X% of the generated supply
I'm not sure if and how it can be done, but I'm thinking about 2 static outputs for each address with shares, one coinbase and one stackable, if it makes sense
It is my favorite idea, the abstract distributed money printing press, fancy term but I like it, we just distribute the supply through free market
B)
Anyway what it could also do, is that if we want to remove coins, then it removes X% from the associated wallet.
There could be price stabilization done through creating and removing coins from investors of this 2nd token.
I understand people don't want to create more bitcoins, and even less remove, to manipulate the supply.
I was thinking about maybe combining that with sidechains.
When creating a sidechain, everyone contributing Y% bitcoins get Y% of the subcurrency and also Y% shares of its printing press.
Then it adds and removes coins through the shares, to stabilize. Dynamic supply inside the fixed supply.
I think that's interesting. That's one thing. The problem is price input.
It could be decided in the sidechain contract. I suggest simply a vote by wealth, to elect a tracker IP.
Another possibility is giving extra vote power to those who created the sidechain.
For example imagine if Europe made a sidechain then every country would have a key to vote.
But they don't have to have all the power. It could be half power to creators, and half by wealth.
Also there would be veto, on top of vote.
The effect on supply from price input is delayed for a time, during which we can veto, with the same key as the wallet.
I don't know if vote by wealth can be included in the system.
C)
I had another idea for price input. We could use the block hash as random seed to select from a pool of jury, then pay them to tell the price, but only if they all agree, like Prisonner's dilemma. And the next juries can veto the previous. And veto by wealth if all the pool is corrupt. But it's weaker than a closed system, and it needs something to form the pool and hide the votes until next block. I don't like that idea much, but I keep it in mind, could be useful.
D)
I also had an idea of multidimensional economy running in parallel (phasing). Can't find less fancy words.
For example let's say we do vote by wealth, with amount of coins being the weight of the vote.
There could be someone with 51% coins trying to harm the currency. So what we do, is that we collectively decide to ignore his account.
We create a parallel ledger (only the difference is stored, technically) where the coins in his address don't exist anymore. But any transaction done in an economy is done in all compatible economies, it's not totally split.
The disabled account can only spend his coins in the 1st economy. If he sends them to someone, that someone has a warning that says these coins will only be spendable in the first, and maybe it shows a % of how many addresses are compatible.
It is multidimensional economy, it gives power to the people over the ledger.
When a dimension/phase is created it shows the change, and a description of the reason. It could be more complex than just about accounts.
There could be entities trusted with judging them, and we auto-follow who we want for convenience, but if it's abused we can always switch back. The people is the judge.
Basically, we give power to the people over the accounts of the people. It's not centralized, it's democratic. It's my newest idea so it's a bit rough, and maybe not feasable or interesting.
I guess that, even uncentralized, whether the people should have access to the accounts of the people is an ideological debate in itself.
And I guess it'd be answered with a big no, around here. Oh well. Anyway I don't know if it can be done or if it means anything.
E)
You know what I think Bitcoin is lacking, it's banking contracts, trustless banking, cryptobanking. You think Bitcoin is there to eliminate banking, but you don't really hate banking, you hate the current implementation of the concept. But the concept is fondamental. If Bitcoin had banking contracts, then it would mean something different, even though it would be the same protocol. Banking is a protocol to trade instantly between peers who trust a 3rd party, by lending it ownership. I'll tell you what's the problem currently with Bitcoin. When you send coins to a pseudo-bank or an exchange, you have to GIVE them the coins, give them ownership, because the system lacks what you really mean to do. And what you mean to do, is send coins in their wallet but retain ownership, and that's banking. But you have to give them the coins, because the protocol lacks what you mean to do. Banking means sending coins fast with 2 signatures, but slow with one (prosecution). It means asymmetric multisig, where one party has more power than the other, it's not equal. This is how there should be Bitcoin banking: if the 2 parties sign, then the transaction is instant. If only the owner signs, then the transaction has to have locktime, or it's not accepted. And then people don't have to trust a random peer not to double-spend, they only have to trust the 'bank', the signing entity. And yet we retain ownership of the coins, through the forcing-out mechanism. It's better than current banks because it'd cost less and be more efficient and more configurable and less hampered by law, it could be automated through many websites where you'd configure the way you want it to sign. It could even be hierarchical, with one bank (like the home computer) relaying to the superior 'bank'.
I had another related idea where the bank could have an account which can only withdraw with extra long time and we can prosecute money out from its output by contract if it tried to double-spend. We show proof of double-spend with its 2 conflicting signatures and can claim its outputs.
But I'm thinking that maybe instead of just having contract through script, there could be contract as data along transactions, which limit the power of the script. Because if it's just in the script, then you have to stick with the rules in every transaction, when we could just put the rules in one block then in all subsequent blocks the outputs' script has to follow rules according to the contract, and it's enforced by design, I mean the block is just not valid if one of the transaction within doesn't follow the rules in the pool of contracts. But I don't know if it can be done, or if it's a good idea. Maybe people really want everything to be in script.
F)
The last idea is a type of transaction putting 'proof-of-work' in the script, for in-blockchain timelock, or escrow exit
Basically, the output has a target + data in its script, and to spend it you must supply data2 such that datadata2 hashes under target
Some people would solve it faster than others, but it'll always take some time. So it allows in-blockchain escrow. I wrote it but never used a stack language, so take it with a grain of salt:
The script logic is:
if (check(signPayer) and target > hash(data+data2)) true //escrow safety exit
else if (checkmultisig(...)) true //standard escrow success
I did the code for 2-of-2 but it doesn't matter.
Note: I concatenate data/data2 with (data OP_TUCK 32 data2), not sure about that.
And I use LESSTHAN to compare hash/target, but it's only for integer. Anyway here's the script:
1) In the previous transaction, sending coins in the escrow:
- Right-part ScriptPubKey, with rules to spend:
// IF/ELSE for two spending cases, using op_depth as condition
// Case A: there are 3 left stack items in scriptSig: solution hash + key + sig (for escrow exit)
// Case B: there are 4 left stack items in scriptSig: 0 sigA sigB OP_2 (first part of multisig)
OP_DEPTH OP_EQUAL OP_3 OP_IF // If Case A
OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIGVERIFY // check the signature, then discard the 'true'
OP_TUCK 32 OP_HASH256 OP_LESSTHAN // check the solution, then end CaseA with lessthan's true
OP_ELSE // Else Case B
OP_2 OP_CHECKMULTISIG // standard multisig
OP_ENDIF
2) In the current transaction, spending from the escrow:
- Usual ScriptPubKey, giving coins to an address:
OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
- scriptSig if spending with the solution:
- scriptSig if spending with 2 signatures:
0 OP_2
But maybe it's not new or not needed.
Anyway I'm no expert but I hope this was interesting at least in some part to more experienced people.
Goodbye