Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by martyb on Friday April 20 2018, @09:20AM   Printer-friendly
from the peer-to-peer-to-pocket dept.

Cryptographic currencies are an ongoing source of comedy gold rather than actual gold. Values wildly fluctuate. After being repeatedly asked about crypto currencies, I investigated in more detail. I was aware of leading currencies, such as BitCoin, Ethereum, Monero, ZCash and, after a ridiculous conversation at my local makerspace, pornographic currencies, such as WankCoin, TitCoin, TittyCoin, AssCoin and ArseCoin. Of these, TitCoin is the most viable. Why? Young women, colloquially known as cam-whores, install applications and get paid TitCoin in exchange for showing their breasts or more explicit acts. Surely TitCoins are worthless? No, cam-whores exchange TitCoin for BitCoin which can be used to obtains drugs, designer clothing or high value gadgets via illicit channels and/or major retailers.

That explains why people sell TitCoin but who buys it? The ownership of many cryptographic currencies are skewed towards early adoptors. Most famously, a pizza was exchanged for 10000 BitCoin. In Dec 2017, the same currency had a market value exceeding US$200 million. Indeed, the mysterious Satoshi Nakomoto, who released a working BitCoin implementation in Jan 2009, should be listed as one of the world's richest people. Such people want to diversify out of major cryptographic currencies into minor alternatives - even ones such as DogeCoin which started as a variant of a LOLCat joke and now has a market capitalization exceeding US$50 million. People who quite obviously haven't done any due diligence are also buying a broad spread of currencies.

Many people speculate about the identity of Satoshi Nakomoto. Some speculate that he is a Brit with yellow fever who works late. Others speculate that he is a time traveller from the future and this is more plausible than some theories. I thought there was an unlikely possibility that he was one of the regular customers from my time working in an Internet café. During this period, said customer described to me a "picket fence" data-structure where each block signs the last and a grid of computers sign each other's blocks. Said customer appears to alive, well and living a perpetual holiday on a tropical island. Reading the original paper from Satoshi Nakomoto neither confirmed nor refuted my suspicion but it does much to resolve hand-waving descriptions from journalists who don't understand anything or people who willfully mis-understand because they have something to sell.

Remember all of the fun we had with file sharing? BitTorrent and its many derivatives are able to transport large quantities of data with fidelity due to integrity checks provided by tiger trees or Merkle trees where each branch has two children. This binary tree allows a BitTorrent peer to rapidly discard blocks of data with checksum failures. BitCoin and its many derivatives gain integrity from a Merkle chain where each branch (usually) has one (persistent) child. If multiple blocks have a valid checksum, there is a strict preference for the block which advances the most transactions.

At this point, I had enough understanding to look for weaknesses, such as deliberately processing small blocks of data to get ahead of parties with more resources. This doesn't work. I also considered weaknesses in the cryptography. BitCoin's Merkle chain uses two rounds of SHA256. This was considered bad practice when released and I was specifically told this by the picket fence guy. However, after Edward Snowden confirmed that SHA was deliberately weakened by the NSA, it appears that BitCoin may have been structured with inside knowledge (or the fore-knowledge of a time traveler). The integrity of the first "genesis" block is also predicated on no inside knowledge and no tricksiness with hashes. For all evaluated schemes, the block hashing and public key wallets are vulnerable to quantum attack. Schemes with zero-knowledge proofs offer no additional protection.

People have been preoccupied by the details of various financial schemes and I am reminded of the Douglas Adams quotation "This planet has - or rather had - a problem, which was this: most of the people living on it were unhappy for pretty much of the time. Many solutions were suggested for this problem, but most of these were largely concerned with the movement of small green pieces of paper, which was odd because on the whole it wasn't the small green pieces of paper that were unhappy." Despite this, I thought that the major attack surface was the cryptography - until I looked at the code. I forgot that BitCoin had forked repeatedly but the original paper has a reference to what is now "BitCoin Classic". Code for this is run from a GitHub repository which runs on a continuous development cycle with no tagged branches or releases - or any more professionalism than the toy projects which I post on SoylentNews. After downloading a 7MB PKZip and looking at the contents, my initial response was "Oh, holy crap! I'd rather run systemd!" It requires the Boost C++ financial library. Unfortunately, that's the good part. By volume, the majority of the code is C++ templates to implement a custom peer-to-peer protocol. That would be the magic part of Magic Internet Money and it appears to have less due diligence than the average SSL library. The protocol may have multiple buffer overflows. I considered this and I concluded that a worthwhile attack would be to re-write wallet addresses so that nodes in a network profit the attacker rather than their owner. I mentioned this at my local makerspace and I was told this couldn't be possible. Within two weeks, SoylentNews reported an ASIC mining implementation which was vulnerable to this attack. With limits, it is also possible to get a node to mine the attacker's choice of currency.

Even if a reference implementation is clean and compiled with a clean, bug-free compiler, derivative implementations may be tweaked for throughput and have any type of critical bug. There is also the matter of Turing complete scripting for cryptographic currencies. Some people consider this a feature because it allows "smart contract" state machines. However, implementation has been quite lacking. Ethereum gets most of the attention in this matter. For example, a bad method invocation cost speculators US$36 million. However, BitCoin implementations also have some of this functionality. Specifically, BitCoin contains a virtual machine with two stacks. Ordinarily, I strong advocate the use of virtual machines with two (or more) stacks but not without back-checks, on flaky x86 servers, which are readily hacked, via a protocol implemented outside of the virtual machine, known to have critical bugs.

Cryptographic currencies have other problems. Key management remains a cryptographic problem and it is fairly guaranteed that keys from the top 10 wallet management applications are snooped and stored by various governments. As an example, the US Government had no difficulty when recovering funds from the SilkRoad trading system. There is also the matter of Byzantine General Problem. Although it is demonstrably solved when the number of nodes is relatively constant, it does not cover the case a net split. So, when China, Iran, Turkey or the Fourth Reich Of North America disconnects from the Internet, buy TitCoin, spend it lavishly and enjoy yourself. When the connection is restored and the block chains reconcile, the Magic Internet Money may find its way back to you. At this point, go and invest in something which is only moderately insane, like pork belly futures.

The current state of digital money shows promise but it also shows that so much more can be achieved. The perfect currency is:

  1. Widely accepted.
  2. Cannot be stolen.
  3. Cannot be traced.
  4. Cannot be unilaterally diluted.

Historically, the full set of attributes was considered to be an absurd contradiction. In a mythical world where bugs get fixed before features get written, we can have a digital currency which has all of this and more. However, there are some baseline attributes which have been implicit in physical artifacts and now need to stated explicitly. In the manner that database consistency has four criteria and object oriented programming has four criteria, digital currency also requires four criteria:

  1. Currency requires scarcity. The ideal digital currency is fully instantiated from the start. Any scheme which is unbounded (Ethereum) or deferred (BitCoin) dilutes in an attempt to lure speculators. Multiple scams have been executed with undifferentiated BitCoin code.
  2. Currency must not be Turing complete. To quote Doge: Much bad.
  3. Currency must work outside of a server environment where mains electricity and global network routing are not guaranteed. At present, digital currencies are a proxy for energy consumption. In the long-term, a system is required which has an unrestricted light-radius; suitable for Earth, Mars and beyond.
  4. Currency must mitigate against cryptography failures.

Under current power structures, a full or partial solution is a very bad idea. The type of person who is most able to understand and develop digital money is more likely than average to fall afoul of such a system. This year, you may profit from digital currency. Next year, you may not be able to feed yourself or shelter yourself without a government approved, government authorized mark. Digital money isn't going to disappear but liberty is at risk if we don't develop a system which meets the four criteria of traditional money and the four criteria of digital money.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 5, Insightful) by AndyTheAbsurd on Friday April 20 2018, @01:42PM (10 children)

    by AndyTheAbsurd (3958) on Friday April 20 2018, @01:42PM (#669628) Journal

    The current state of digital money shows promise but it also shows that so much more can be achieved. The perfect currency is:

    1. Widely accepted.
    2. Cannot be stolen.
    3. Cannot be traced.
    4. Cannot be unilaterally diluted.

    Properties 2 and 3 above are in contradiction. If a currency cannot be stolen, you must be able to verify who the correct owner is by having a history of ownership transfers, back to some party that you trust. If a currency cannot be traced, you cannot have a history of ownership transfers, you must instead trust that whoever currently holds the currency is the proper owner.

    Some people believe that BitCoin, etc. cannot be traced because the only necessary identifier is your wallet address. This is not true, the wallet address just serves as a pseudonym for you - if you attempt to actually use the wallet while Big Brother is watching, eventually those transactions can be traced to you. It may take time but it can be achieved.

    --
    Please note my username before responding. You may have been trolled.
    Starting Score:    1  point
    Moderation   +4  
       Insightful=2, Interesting=1, Informative=1, Total=4
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   5  
  • (Score: 3, Interesting) by bradley13 on Friday April 20 2018, @02:42PM (5 children)

    by bradley13 (3053) on Friday April 20 2018, @02:42PM (#669655) Homepage Journal

    Well, yes, the properties he names are somewhat self-contradictory. However, he did say that they are ideals of a "perfect" currency. Which I take to mean: something to strive for. One can make a currency difficult to steal, and difficult to trace. Something like Monero leans in this direction.

    The main thing we are missing is the "widely accepted". Wide acceptance would also have the effect of stabilizing the value. Also, "proof of work" needs to be replaced. It is wasteful, and there are better alternatives.

    --
    Everyone is somebody else's weirdo.
    • (Score: 2, Interesting) by Anonymous Coward on Friday April 20 2018, @03:01PM (1 child)

      by Anonymous Coward on Friday April 20 2018, @03:01PM (#669662)

      Also, "proof of work" needs to be replaced. It is wasteful, and there are better alternatives.

      With the amount of energy spent on running/blocking javascript I doubt that will make much difference. Look at the typical webpage today and it will be less than 1% actual content by kB. People don't seem to actually care about waste. If anything proof of work will spur development of cheaper energy sources and using a deflationary currency will decrease the amount of wasteful spending people do (since they will save rather than buy crap).

      • (Score: 1, Interesting) by Anonymous Coward on Friday April 20 2018, @03:37PM

        by Anonymous Coward on Friday April 20 2018, @03:37PM (#669680)

        Has anyone ever calculated how much energy is wasted due to the ubiquitous DRM?

    • (Score: 3, Interesting) by JoeMerchant on Friday April 20 2018, @03:21PM

      by JoeMerchant (3937) on Friday April 20 2018, @03:21PM (#669670)

      Also, "proof of work" needs to be replaced. It is wasteful, and there are better alternatives.

      I couldn't agree more, but... I believe that "proof of work" is part of the psychology that has led to widespread adoption/acceptance of bitcoin as having value. If people could do the "proof of work" step without investing real-world money, all the players would be less inclined to HODL their coin and more inclined to sell for lower values.

      --
      🌻🌻 [google.com]
    • (Score: 4, Interesting) by Thexalon on Friday April 20 2018, @06:18PM (1 child)

      by Thexalon (636) on Friday April 20 2018, @06:18PM (#669747)

      There are reasons why it doesn't have wide acceptance though:
      1. Most importantly, nobody really has any reason to bother. Potential customers holding Bitcoin also as a general rule have access to dollars, pounds, euros, yen, etc, so you aren't foregoing much if any business by not accepting Bitcoin.

      2. The value of a Bitcoin is too volatile to set prices for things effectively. Say what you will about the Federal Reserve, European Central Bank, etc, the simple fact is that the value of a dollar doesn't change that suddenly. OK, maybe widely accepted Bitcoin would be less volatile, but as things currently stand nobody has reason to be the first mover on this.

      3. Accepting any currency other than your nation's standard currency is a pain in the tuchas. Your bank can work with your company to, for example, accept Euro at a US company and vice versa, but there's a bunch of paperwork, exchange rates to worry about, extra variables to through at any payment processing system you have, etc. And with Bitcoin, odds are your bank can't do that for you, so now you're holding Bitcoin and have to set up a system to exchange them yourself for something you actually want. And per the volatility problem, what you can actually get for said Bitcoin is going to be highly variable day by day.

      4. Taxes cannot as of yet be paid in Bitcoin. That means that you have to come up with some amount of your national currency each year to stay on the good side of government law enforcement. And if you need your national currency anyways, then it's a convenience to use it for other things.

      5. Labor laws often require your employees be paid in your national currency. So if your company is taking in a ton of Bitcoin, you again have to exchange it any time you want to pay people that work for you.

      Of those problems, I should also point out that only the last 2 problems are caused by the government. The other 3, which are caused entirely by private behavior, are more than enough to convince vendors not to accept Bitcoin or any other alternative privately-created currency.

      --
      The only thing that stops a bad guy with a compiler is a good guy with a compiler.
      • (Score: 0) by Anonymous Coward on Saturday April 21 2018, @02:13AM

        by Anonymous Coward on Saturday April 21 2018, @02:13AM (#669899)

        only sellouts, idiots and cowards pay income taxes.

  • (Score: 2) by JoeMerchant on Friday April 20 2018, @03:17PM

    by JoeMerchant (3937) on Friday April 20 2018, @03:17PM (#669667)

    3. just isn't a property of currency, period.

    Even one dollar bills are printed with serial numbers. Metal coins have the property of untraceability, unless you follow the person who is exchanging the coin - just as:

    if you attempt to actually use the wallet while Big Brother is watching, eventually those transactions can be traced to you. It may take time but it can be achieved.

    The problem with digital currency, and to a lesser degree paper money, is that the cost of counterfeit reproduction has become trivial. So, to satisfy 4. cannot be unilaterally diluted, you need to violate 3. cannot be traced.

    I remain astounded at the length of time that the internet consensus understanding of Bitcoin was that it was untraceable. I only ever held one bitcoin, obtained for $4 back in 2010-ish, and sold for ~$200 in 2013-ish. The reality of that experience was: turning bitcoin to actual cash required working with an exchange that was a whole other layer on top of the bitcoin protocol.

    --
    🌻🌻 [google.com]
  • (Score: 0) by Anonymous Coward on Friday April 20 2018, @05:06PM (1 child)

    by Anonymous Coward on Friday April 20 2018, @05:06PM (#669713)

    You're confused. Items 2 and 3 are not contradicting. You don't need to trace ownership to a name, only to a claim. If I claim to own this BT, then you should be able to confirm that without knowing exactly who I am. I think BT allows that.

    • (Score: 2) by Thexalon on Friday April 20 2018, @07:38PM

      by Thexalon (636) on Friday April 20 2018, @07:38PM (#669782)

      If I claim to own this BT, then you should be able to confirm that without knowing exactly who I am.

      That's impossible.

      I might be able to have a record that, say, the BT in question is owned by user a4f612896ed10b. Which is all well and good, except now you need to stop somebody else, not necessarily using the same software you are, from saying "I'm user a4f612896ed10b, that's my BT" and spending your BT.

      The same problem exists for dollars, which is why there's bureaucracies and automated systems set up to prevent bank fraud. There isn't an easy solution, especially when any identity-related information you can think of to store regarding user a4f612896ed10b that could verify you really are user a4f612896ed10b could also be easily copied by the bad guys.

      --
      The only thing that stops a bad guy with a compiler is a good guy with a compiler.
  • (Score: 0) by Anonymous Coward on Saturday April 21 2018, @02:15AM

    by Anonymous Coward on Saturday April 21 2018, @02:15AM (#669900)

    "If a currency cannot be stolen, you must be able to verify who the correct owner is by having a history of ownership transfers, back to some party that you trust."

    not true if the author meant not "stealable" instead of a coin not having been stolen.