Bitcoin Forum
May 22, 2024, 02:27:41 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [Altcoin Proposal] Expresscoin [EXC]  (Read 928 times)
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 05, 2013, 12:50:27 PM
Last edit: May 05, 2013, 01:04:43 PM by Nova!
 #1

Expresscoin is a planned state of the art crypto currency with a managed economy which is intended to be spent in the course of daily commerce.
The intention here is to take the very best ideas from the current crop of crypto coins and peer to peer tools, both clearnet and darknet and bring them together into a cohesive whole with several distinct advantages.

Expresscoin is different from other altcoins in several ways.

#1 Transaction confirmation times are guaranteed to be 1 second or less.
#2 Block generation rates are also 1 second or less.
#3 It is designed to be spent and is highly resistant to hoarding or at least accidental hoarding by way of wallet loss.
#4 It features a democratically managed, dynamic money supply, that is meant to keep values reasonably checked.
#5 Highly resistant to 51% attacks, griefers or disruption from ASICs & FPGAs.
#6 Designed to be mined on commodity hardware & engineered to make mining profitable for the average joe/jane.
#7 Functions as an open datastore where anything can be stored and preserved unaltered forever.
#8 Open participation is encouraged, we actually want everyone involved to make money from the system.

How does it accomplish these things?  First of all, the planned money supply is far in excess of bitcoin or as far as we know any other cryptocoin.
The yr 1 target alone is initially set to 365.25 billion EXC.  This means an initial target generation rate of about 10,000 coins per second.
A block has a lifetime of 1 year, after which the block expires and all coins contained in it are removed from the supply.  
Thus the money in circulation is actually circulating.
It also means use it or lose it.  Even if you only send it to yourself, do not let your funds sit idle.
They must be moved via a new transaction prior to the expiry date or they will be permanently lost.  
It is expected that this will happen automatically with most wallets and mining software.
Wallets where the key is lost and thus cannot be freshened, will lose their coins.

Expresscoin is for spending, not saving, and a mandatory transaction fee is applied to all transactions.  
This per tx processing fee will be set at 600 coins at the outset.
Once things are going, the fee will be adjusted so that the real cost per transaction is the monetary equivalent of roughly 1 US Cent, although this may vary based on the needs of the economy.
The network removes/ignores half the tx fee from the money supply effectively desroying it, the other half goes to the miners.
Nevertheless it is expected that a single "average" machine on a high speed internet connection,
could provide an income for the miner of about $2 per hour (2,000tx per hour or 3 blocks a day or $50 per day) in today's buying power if run fullthrottle 24/7.  
It would be evaluated and adjusted accordingly.
To do this we will probably have to setup a definition of an average machine, but most likely it would be based on a benchmark machine such as an Amazon EC2 micro instance or some multiple thereof.
The goal is to ensure everyone makes money, but it is doubtful anyone will get rich.
Because of the speed required to process transactions, a transaction and a block look different from bitcoin.

There is no built in programming language or stack involved in transaction processing.  
There are only m of n signature verification transactions and of course a coinbase at the top of each block.
There will also be a payload "data storage" area in each transaction where up to 4KB of base64 hex encoded data can be stored.

Although the plan is initially to use this area for instructions to wallet services (an embedded signed transaction request I'll explain in another post).  
The primary use of this area is actually to have it sold off by individual businesses as a way to use the network to store data that needs to be preserved forever.
It should also serve as an incentive to get people to actually use the coins.

If you need to store more than 4KB, then of course you break the file up into 4K chunks and send it in seperate transactions.  
It could get a little spendy depending on the size of the file, but it's a 1 time fee for permanent storage and makes a great alternative to Glacier, S3 etc and should have performance in excess of bittorrent without the need to seed or provide trackers.

Verification of transactions is different as well as the risk profile.  
The miner that creates a block, must show not only a proof of work, but also a proof of stake.
That is, to mine a block, you must be in control of more coins than the block itself contains.  (There will be a faucet like mechanism to get a new miner started).
This causes hashing power on the network to be self limiting and forces miners to slowly "grow" into the network.
As a miner, you (your mining application actually), then signs a transaction, effectively pledging those coins in the event that the block you generated turns out to be invalid.
This "hold on funds" lasts for 1 month, at which time, the miner gets his/her pledged coins back, plus the coinbase if the block has not been flagged as invalid by the network.
The network has 24 hours to flag it as invalid and take action on it.  However the funds are still frozen for 1 month to limit the power any single entity can gain over the network.

As a general non-mining user, your funds are guaranteed to the merchant immediately by the miner who accepted the transaction and declared a block from it.
Because of the ultra fast response rate required, it is very likely that merchants will work directly with miners in close physical proximity to themselves.
It would be unsurprising if in many cases merchants themselves also ran mining nodes due to the speed boost involved,
however they then bear the full risk of the transaction being invalid (such as a double spend) and thus they will need miners.

Going back to validation.  If the network determines during the 24hr hold period that a block is invalid,
the block is invalidated and all the funds it contains are used to rebuild the remaining block chain,
and re-imburse the upstream, sans anything that would have gone to the originating miner, which would now go to the auditing node.

Again to invalidate a block, requires a proof of work and a proof of stake.
All miners can function as auditors for this purpose, however it is envisioned that some miners will specialize specifically in auditing or team up with auditors who only audit.  
This is an intentional design decision and allows differentiation of services.
Any miner/auditor that can successfully invalidate a transaction or block in a 24 hour period would be able to reclaim the rebuild profit from the original block.

Similar to bitcoin, an actual block is just a collection of transactions.  
A transaction is collection of inputs.
However unlike any other coin, the inputs themselves must be from within the last 365 days for a block to be valid.

All rates are controlled by the miners themselves.
Every hour the network evaluates the block production rate and sets a new difficulty level to keep the production rate on target.

Each quarter a meeting is held of everyone involved in the production of the coinage (the miners) and they will vote on the next year's production target.
There is no "primary" miner, however a signed transaction to ones self showing the amount of coin one currently controls will be used to select the leader for the purposes of the meeting.
The will also be 100 voters, selected by the fact that they are present and chosen in order of how many coins they currently control.
Each voter is given an equal weight. A resolution can be made by anyone at the meeting, but any change to targets must be passed with a 51% majority vote.
This voting is to control the output quantity, rate and fees for the next year.  
However the changeover happens gradually at an even and predictable rate over the course of the year, starting with a 2 week grace period to allow equipment to be loaded with the new target information.
The update is an updated configuration file as opposed to a software or hardware update.

I hope this initial introduction is clear.  There is a lot of work to see this thing through and it is just one part of a much bigger puzzle I'm currently putting together.
I'm definitely open to any questions, comments, constructive criticisms or ideas that you may have!

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
hathmill
Full Member
***
Offline Offline

Activity: 186
Merit: 100



View Profile
May 05, 2013, 01:24:16 PM
 #2

U asked for critique so here it is: the coins makes no sense what so ever. Whats the point of low confirmation if block can be invalidates later? There is so much more that is so wrong. Please study definition of money before deciding on protocol. I like the name though.
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 05:37:44 AM
 #3

U asked for critique so here it is: the coins makes no sense what so ever. Whats the point of low confirmation if block can be invalidates later? There is so much more that is so wrong. Please study definition of money before deciding on protocol. I like the name though.

From your statement it sounds like you're thinking that this is an alt chain somehow based on the same principles as bitcoin, with minor tweaking. 
It's not.

To address your statement that I should learn the definition of money.  I have studied the definition of money, in fact I have a degree in it.  Not to get into with you, but I have a masters degree in finance and a bachelors in computer science and over a decade working in IT primarily with banks and finance companies.  I only mention this fact so that you can see where I'm coming from is a perspective of experience, not just something someone once told me.

I realize you've probably read Satoshi's papers and probably a lot of other things off the internet.   
You should be aware that there is a lot of errant information out there, mostly due to misunderstandings about how money works vs what money is.
The average person knows what a car is.  They see a car and probably know how to operate one.  But few people actually know how a car works.
The same thing can be said of money.  You look at the cash and cards in your wallet and you assume they are money.  You assume you know where they came from, how to use them and hopefully how to get more when you need them.  However it is doubtful that you really understand how money works at a fundamental level.  What units are being moved around in what quantities and why.  Do you know exactly where that 5 spot in your wallet originated from, and who handled it for what reasons up until the time you placed it in your wallet?  Probably not.  Neither do I, but the point is money is only part of an economic system, however it is a vital part of one and as I said before it is part of a living, breathing, chaotic, dynamic system.  Expresscoin is designed to enable commerce by being able to enable the same types of transactions where you would use other currencies and financial instruments.  At the same time it is designed to allow people of limited means to support themselves while preventing the types of dynastic wealth accumulation that have ruined other financial systems.

Even though your post is a bit terse, I can see that you are looking at it from too narrow of a view point.
You appear to see ExpressCoin as another altchain built on bitcoin rules with minor modifications.  You would be wrong.

The reason for this coin is that I believe bitcoin and other altcoins have certain things right and other things wrong.

Before you can understand all of that, you need to look at what money actually is.

Money is anything that is commonly accepted in an exchange of goods or services. 
Currency is just a type of money that is specialized to a particular market.
All currency is money, not all money is currency.
Everyone will accept money, but not everyone will accept any particular currency. 
Just try spending a Euro at a place that takes dollars or vice versa for an example of what I'm talking about.

The value of a currency is nothing more than a reflection of the confidence of the people who accept it, have in the originator of the currency.
This is why you can't go into a grocery store and buy a gallon of milk with a silver ingot.  The merchant doesn't know if the ingot is real and wouldn't know the exchange rate of silver to gallons of milk even if they could prove it's real, i.e. the merchant has no confidence in your silver ingot.

But if you go into the store with an actual silver dollar, you can use two or three of them to buy your milk.
Now a silver dollar weighing 1 once with 99% purity has a melt value of $24 in todays prices.
A silver eagle dollar bought from the US mint would cost you $48 today. 
You just traded 2 or 3 of them for a gallon of milk, that's about $150 for a gallon.
Nevertheless, the merchant isn't actually accepting your silver. 
They are accepting the marks on the coin. 
These marks say that the full faith and credit of the US government in that ounce of silver amounts to exactly $1.

This is why your dollar can be made of silver, paper, base metal, or 1's and 0's in bank account somewhere.
The merchant's faith and your faith have now amounted to saying that this gallon of milk has cost you $3 regardless of how much money those dollars cost you to obtain.

Bitcoin's design exhibits a lack of faith and trust. 
This is an intentional design feature.
It doesn't need trust or faith because everyone has full access to the complete history of any bitcoin and can verify that the coin has 3 properties. 
First that the coin actually existed prior to being spent, second that it's "not stolen" (not stolen being defined as a signature signing it over), third that it's not counterfeit (double spent).

This comes at a cost.  Some of the cost is imposed by the network and some of it is imposed by the design of the currency.
The primary cost is in the size of the block chain. 
It will continue to grow forever because it will need to be readily available for each and every transaction to be fully verified.

The second cost is in the time it takes to confirm a transaction. 
Bitcoin uses artificial scarcity to enforce a very slow block generation rate.  It does this through it's difficulty level which is adjusted every few weeks.
On it's surface this is ok, because ensures that there is a specific, planned amount of money in the system.
However it's bad for the kinds of commerce that require instantaneous confirmation. 

The third is in what a transaction confirmation actually means.
In bitcoin it means the 3 things I've stated above. 
First that the coins existed prior to being spent, second that it's not stolen and third that it's not counterfeit.

The fourth problem is one of the actual money supply or more accurately the currency supply.
Bitcoin states that only 21M bitcoins will EVER be mined.  After which transaction fees will account for most of the income of miners.
Unfortunately 21M anything is not enough currency to support any economy.  Even if you infinitely divide it, if you have to know the complete history of a coin it will take longer and longer to verify.
This means that as time goes on, the power behind the currency will consolidate into fewer and fewer hands. 
This is because the computing power needed to verify a trasaction grows with the total number of transactions in the system. 
Just as with mining now, hashing power is being consolidated and it will become only a few large players that make the majority of the bitcoins.
That is not a desirable feature of a democratic currency.

In addition, because there are so few bitcoins ever and because coins once lost can never be replaced, the overall economy will rarely be deflationary, only hyper deflationary.
This "coin attrition" also means that there is no way to distinguish what is being hoarded vs what is being lost. 
This lack of information in the system makes it very speculative and is one reason that prices will continue to fluctuate outside the realm of what anyone other than speculators feel comfortable with.

Some people will say that these are all good things for a currency and for the right type of person this is probably correct.
Other's will say that the underlaying problem here, "price instability" is a good thing because it is the result of a free market.
These people are conflating a free market with an ignorant market.
Both free and ignorant markets lack any sort of significant price controls. 
A free market can only exists when everyone has access to the same information (this is why insider trading is considered a crime btw).
If a major portion of the market cannot access information about it but still participates in it then you no longer have a free market, just an ignorant one.

ExpressCoin doesn't style itself as something for investors or speculators.  Speculators aren't needed because it's intended to be highly liquid by design.
ExpressCoin is designed for the needs of daily commerce, or in otherwords it is designed to fuel an actual economy.

For instance the act of waiting on confirmations.  This drastically slows down commerce. The only practical purpose it serves is to avoid doublespends.
Statistically speaking, even now with bitcoin, for a transaction to be considered final , it just needs to be included in a block by a miner. 
That means on average it is 10 minutes before you "know for sure" it went through and even then it could be a day.

The problem is that even though most people are not criminals or out to defraud anyone, the bitcoin network treats every transaction with suspicion.

With ExpressCoin, ALL tranactions are assumed to be valid unless PROVEN otherwise.  When a transaction IS proven as invalid, the risk passes solely to the miner. 
The merchant bears no risk.  The merchant will always get his money, thus he has confidence in the system.

Another key difference is how far back we go to validate a transaction.
With bitcoin you have to go back to the genesis block.
With ExpressCoin we only go back a max of 1 year.

Under ExpressCoin we state that a valid transaction consists of
#1 A list of input transactions.
#2 That all inputs have the requisite m of n signatures.
#3 That no inputs are already spent.


However what it really does is transfer the risk of a bad transaction occuring off from the merchant and onto the miner.
Because the miner is accepting this risk, and is in effect "backing the transaction", the turn around time on a transaction can be measured in milliseconds on average and a few seconds at most.

In accepting this limited risk, the miner is rewarded far in excess of what the risk actually would be.
Since the primary people who might attack the currency would be miners themselves (trying to get invalid blocks to be accepted), it makes the most sense to transfer the risk to them.
This risk transference is done by way of the bond system I mentioned earlier, but here is a shorter version.

A miner recieves a transaction and adds it to a block.  He computes the hashes and declares a block.
When he declares a block, he must place an amount in escrow equal to the amount of coins that the block contains.
If after 24 hours the network still views the block as valid then those funds now belong to the miner.

If there is a problem with the block, it is unwound, the errant portion removed and the block is rehashed. 
This must happen for all blocks which derive from that block and of course it is disruptive to the network.
Because of the disruption caused by a teardown and rebuild, the miner must pay a penalty.
However there is no reason why the merchant should have to wait, nor the consumer.
As long as the miner is performing the minimal verification we've mentioned above though, this should never happen.  it would only be invoked against a misbehaving miner.
In fact the estimate is that if we are creating a billion transactions per day, that this would happen less than once a week and should disrupt the network for no more than 5 minutes.

That's all really heady stuff so let's say that ExpressCoin's motto is...
Money should enable commerce, not get in the way of it.



Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
Shad3dOne
Sr. Member
****
Offline Offline

Activity: 261
Merit: 250


Interesting.....


View Profile WWW
May 06, 2013, 05:57:51 AM
 #4

interesting...

Domain for sale -> NXTcoin.com, 200 btc/2.9 M nxt. pm me
like craigslist but for btc! --> Visit BTClist.com
FederationCredits--> C6khbXzADRUeT9di2SpNubCt2UVTuayKMV What's this?
markm
Legendary
*
Offline Offline

Activity: 2940
Merit: 1090



View Profile WWW
May 06, 2013, 05:58:26 AM
 #5

That's all really heady stuff so let's say that ExpressCoin's motto is...
Money should enable commerce, not get in the way of it.

I kind of feel or suspect or maybe just "prefer" the term "currency" to the term "money" for that motto, but maybe that is an artifact of left-over old usages I have experienced of those words.

(That is, my impression was "it should say [b[currency[/b] should enable commerce".)

Initially the impulse was that currency is current, flow, whereas some forms of money can be more like voltage, potential; and that in some ways the whole point of certain compound-formations intended to serve as or represent money is precisely to make it as difficult as possible for that static wealth to be turned into liquid "current", which in my mind was being tagged "aka currency".

For example, Fort Knox, back when it actually did succeed at least for a while in locking down lots of gold to prevent anyone sneaking it out from being static, locked-down potential (possibly akin to voltage in some way) into being flowing/liquid (moving) "current" (aka currency???)

However your statement that currency is specialised/niche money makes me think maybe in your terminology money that has been specialised into a special form (fortress full of armed guards keeping gold from being moved) is, by very virtue of being specialised, by definition "currency" Huh

Is the superficial appearance of relation between "current" and "currency" just an unfortunate coincidence rather than a useful (in providing an insight into the actual meaning of the word) etymological relation?

Or maybe it is an etymological relation but not at all a fortunate one but rather a misleading one, a kind of superstitious carry-over of primitive misconceptions as to what property or properties are significant?

Also presumably, even stuck in Fort Knox, that gold, thusly guarded and locked down, was in some way enabling commerce Huh

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
co2pop
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
May 06, 2013, 06:11:22 AM
 #6

What attracts people to mine for coins early on if they become worthless as time passes?
RauBan
Newbie
*
Offline Offline

Activity: 17
Merit: 0


View Profile
May 06, 2013, 06:17:07 AM
 #7

With 1 second targets wouldn't this enable sub 51% attacks all you'd need is to be the biggest node by some margin? as the network as a whole will have a hard time cooperating properly, this in turn will promote centralization instead of discouraging it, which is something we weren't going for here? am i wrong?
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 06:36:50 AM
 #8

That's all really heady stuff so let's say that ExpressCoin's motto is...
Money should enable commerce, not get in the way of it.

I kind of feel or suspect or maybe just "prefer" the term "currency" to the term "money" for that motto, but maybe that is an artifact of left-over old usages I have experienced of those words.

(That is, my impression was "it should say [b[currency[/b] should enable commerce".)

Initially the impulse was that currency is current, flow, whereas some forms of money can be more like voltage, potential; and that in some ways the whole point of certain compound-formations intended to serve as or represent money is precisely to make it as difficult as possible for that static wealth to be turned into liquid "current", which in my mind was being tagged "aka currency".

For example, Fort Knox, back when it actually did succeed at least for a while in locking down lots of gold to prevent anyone sneaking it out from being static, locked-down potential (possibly akin to voltage in some way) into being flowing/liquid (moving) "current" (aka currency???)

However your statement that currency is specialised/niche money makes me think maybe in your terminology money that has been specialised into a special form (fortress full of armed guards keeping gold from being moved) is, by very virtue of being specialised, by definition "currency" Huh

Is the superficial appearance of relation between "current" and "currency" just an unfortunate coincidence rather than a useful (in providing an insight into the actual meaning of the word) etymological relation?

Or maybe it is an etymological relation but not at all a fortunate one but rather a misleading one, a kind of superstitious carry-over of primitive misconceptions as to what property or properties are significant?

Also presumably, even stuck in Fort Knox, that gold, thusly guarded and locked down, was in some way enabling commerce Huh

-MarkM-


Wow!  That is an awesome and well thought out reply.  However your first instinct was correct it was actually a typo.  I too get lazy sometimes and conflate money with currency.
Money is a superset of all currencies so long as someone somewhere accepts that currency as a medium of exchange.
Once it is no longer being accepted it stops being currency and becomes a collectors item.  look at the dead coins threads for proof Smiley

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 06:42:11 AM
 #9

What attracts people to mine for coins early on if they become worthless as time passes?

They only become worthless if they sit still for a year.  To keep your coins just shuffle them around a bit.
Try to remember though they are designed to be spent.  As soon as you spend them then the clock is reset for whoever gets them.  They can circulate forever until someone tries to hoard them for too long, then *poof* they're gone Smiley

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 07:36:24 AM
 #10

With 1 second targets wouldn't this enable sub 51% attacks all you'd need is to be the biggest node by some margin? as the network as a whole will have a hard time cooperating properly, this in turn will promote centralization instead of discouraging it, which is something we weren't going for here? am i wrong?

It would if this were just bitcoin with some rule mods, but it's not, so this isn't a problem.

To create a block, a miner must pledge their own funds to back the entire value of the block.
The block is not considered "official" until 24 hours have lapsed, which should be more than enough time for it spread across the network and be validated by all rules compliant nodes. 

If a block can be proven to be non-compliant, the pledged funds, the coinbase and the transaction fees are forfeit.
The block (and any descendants in it) are rebuilt as quickly as possible and then added back into the network. (This is not done silently, there will be lots of alarms going off eachtime this happens, detailing which blocks and which transactions were effected).

After those 24 hours have lapsed, the miner doesn't actually get his money for 1 month, although the people on the receiving end of those transactions in the block are free to spend theirs as soon as the block appears.  The 24 hour period is basically to provide time to audit the block and have the network accept or reject it on a permanent basis.

Now remember, what ExpressCoin calls a valid transaction is completely different than what bitcoin calls a valid transaction. 

In bitcoin a transaction is valid if 51% of the network agrees that the transaction history is true and correct all the way back to the coinbase of each transaction contained in a block and that each of the coinbases themselves were correctly calculated, going all the way back to the genesis block.
In 5 years this has resulted in a blockchain that is over 2GB long.

In ExpressCoin we only care that the input transactions were all included in a valid block and that this block was less than a year old at the time the block was created.

Oddly enough the way ExpressCoin is designed it's total block chain size will be about 40GB in it's first year and could go all the way into the yottabytes eventually.  However it's distributed.  Very few people will ever hold the entire blockchain, instead chunks of it are scattered about everywhere.  Most miners will never have to deal with more than 500MBs unless they are dealing with lots of international transactions.

If all of that is hard to follow imagine this scenario.

I go to a merchant and use my debit card to buy a gallon of milk. 
I'm not aware of it, but my balance is too low.  The merchant's card processor is unable to communicate with the bank, but approves the transaction anyways because it is low risk, low value.
Later on, the card processor communicates with my bank and the bank declines saying my balance is too low.

In today's world, the transaction is retried a couple of times, but if it doesn't eventually approve, the merchant is the one who loses out via a chargeback. 
The card processor reverses the transaction against them and will usually charge them a penalty for doing so.

In ExpressCoin the miners are the "card processors". 

However they have no right to reverse a transaction against anyone but themselves.
Thus they must back every single transaction they approve.  If it turns out that they accept a tx that was a double spend or simply invalid then they pay the price out of their own funds.  The merchant get's his money.

This is designed to inspire confidence.  The more merchants who take the currency, the more widely it will be used.  Especially if they don't have to change anything about how they currently do business.  Just a small software upgrade on their end.
 

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
hathmill
Full Member
***
Offline Offline

Activity: 186
Merit: 100



View Profile
May 06, 2013, 09:09:49 AM
 #11

I am curious, since you have thought a great deal about this (at least I imagine that you have) then if you were an attacker - how would you go about destroying the coin. I am not teasing you here, I honestly just want too learn more and when it comes to coins I am very interested in learning about the weak links. If I know what the system "hinges on" I might get a better understanding of it. So, how would you attack it? Setting up a computer that doubles spends a lot?
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 09:24:13 AM
 #12

Not to reply to my own thread, but I worked with a mathematician on analyzing attack vectors earlier in the day and we did find a flaw that an attacker could potentially use.
I'm not entirely sure that this is economically feasible, but in time it could be, so we probably need to find a rule to address it.

The network is designed so that no one needs to ever have a complete snapshot of the blockchain, only a maximum of 1 year's worth of block data.
Because verification only looks back a year, it is possible to create false blocks (mathematically legitimate, but not tied to valid coinbases originating from the genesis block), and inject them into the system.

This would effectively create "newly minted" money, that to the system appears to have been circulating for a year, but that the system has heretofore been unaware of.

The system would accept them and view them as legit pretty much their whole life cycle. (Because of mandatory tx fees eventually all money is removed and replaced).

The effect of this would be the same effect to the economy as a bunch of counterfit bills circulating, i.e. a devaluation of the currency because the money supply increased proportional to the amount of the counterfit chain.

The reason counterfitting is so lucrative is that the cost of production is less than the market value of the product (same reason anything else is made).

By having a target production of 365 Billion coins per year, we can negate the effect of counterfit coins because their cost of production should be much more than their value.
Someone would have to produce a significant quantity of counterfit blocks (1 years worth) for this attack to work.

It may be that the best option here is to absorb the counterfit chain as legitimate and then reduce the target output rate automatically to compensate.
But I'm open to suggestions.

For the record, with ExpressCoin, not every miner is working together simultaneously.  Instead miners (because of the laws of physics such as the speed of light), will primarily cover geographic areas.  They may also specialize in servicing particular customers, for instance I may start my own miner / processor that specializes in merchants in my home state, or I may choose to just serve gas stations, or grocery stores.  Nothing is barring me from handling transactions from customers in other places, but the laws of physics means that the further away I am from the customer the longer the round trip time would be.  

Because of this a miner would have a 1 to 1 connection with their source of new transactions and thus they would have first dibs on new transactions coming from those customers.  The miner works in relative isolation but has interconnects with up to 255 other miners.  It will automatically prioritize interconnects by ping time and valid block count.  Nevertheless, connections which are more than 1 second away would generally not be communicating directly with the miner.  Instead they would hop using message passing.  Also most business deal with customers in their local area, thus many transactions can be handled much more efficiently by specializing on local service because the miner or his adjacent neighbors will have a clearer and more ready view of the blockchain as it looks from their area.
The natural effect of this is that branches of the tree will be more frequently serviced by some miners than others, and no single miner would ever need to see the entire tree.

What this boils down to is that counterfitting is possible and presents a problem, however not one that is insurmountable.  I'm open to ideas and suggestions on how to deal with it.

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
Nova! (OP)
Full Member
***
Offline Offline

Activity: 140
Merit: 101


View Profile
May 06, 2013, 10:05:04 AM
 #13

I am curious, since you have thought a great deal about this (at least I imagine that you have) then if you were an attacker - how would you go about destroying the coin. I am not teasing you here, I honestly just want too learn more and when it comes to coins I am very interested in learning about the weak links. If I know what the system "hinges on" I might get a better understanding of it. So, how would you attack it? Setting up a computer that doubles spends a lot?

No these are exactly the types of questions I want to answer before we build the software and deploy a network (and resultant economy) on it.

I want to clarify your question though.
Do you mean...
A. How do we prevent spending of expired coins? (Rules in the engine, non-compliant miners will have their funds, if any, seized and others would just be ignored).
B. Undermine confidence in the system? (Most powerful tool here would be a lot of FUD, but we're going to be fighting that from the beginning anyways with needing to explain what we mean by expiring coins and all)
C. Make it mathematically unsound so that transactions can't be relied upon?
D. Steal all or some of everyone's coins.
 
Most efficient way to do C, is to try and perform a 51% attack, but that would be hard because to become a miner you must know one.
You either need to be sponsored to mine, or purchase a ton of coins on the open market which would drive the price up and if we saw that, the currency would adjust by increasing it's output target and thus driving the prices back down.  The goal is to keep the buying power pegged as close as possible to 600 coins to the US cent and adjust it for inflation, unless and until the miners (who are the ones actually producing the coins), decide otherwise.  This is an intentional several orders of magnitude more than the true cost of CPU time & electricity & hard drive space to produce one which is estimated 0.000006 and of course that cost is likely to go down as computing power progresses.

If you're just generating a ton of invalid transactions and flooding the network with them, you would place a load on the system and be a pain in the butt, but eventually you would just be ignored.  Each node that passes a block needs to verify that the block is legit.  There are a max of 255 nodes that will even talk to you, and the only nodes that really matter to the economy are the ones with an economic interest in engaging solely in legitimate transactions.  If you're not within the 1 second hop time of one of those nodes, then they probably are going to put you way down on their priority list.  This means that since most concerted attacks will be within a close physical proximity to eachother, the odds are pretty high that you're only launching an attack on your cohorts.

D. Is more difficult to address.  If ECDSA is ever cracked, then the currency is completely hosed until we find a better algorithm and spread it across the network with some sort of required upgrade.  So that of course is a legitimate problem. 

The current design requires that no transaction reflect back to the originator and thus a new key or keys must be used on each transaction if you want your change back.  This was actually created to allow paper bills to be printed which could be circulated in areas where there is limited access to internet, effectively allowing offline usage. 

(If you don't see how this could be handy I would like to invite you to visit Montanita Ecuador sometime especially on a weekend where both ATMs in town invariably fail, no merchant has change for anything larger than a $1 bill and because of the transient, las vegas like nature the town, no merchant in his right mind will take your credit cards or anything bigger than a $20).

However this simple fact may serve as an effective counter to an ECDSA attack unless there is some attack short of a preimage (not mathematically feasible) that can predict future ECDSA keys.

Anyone else have ideas for an attack?

Donate @ 1LE4D5ERPZ4tumNoYe5GMeB5p9CZ1xKb4V
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!