One of the people who broke IOTA had some damning words for it, in
Cryptographic vulnerabilities in IOTA:
You might think that IOTA, a cryptocurrency worth over a billion dollars, and
working with organizations like
Microsoft,
University College London,
Innogy, and Bosch, BNY Mellon, Cisco, and Foxconn (through the
Trusted IOT Alliance) would not have fairly obvious vulnerabilities, but unfortunately, thats not the case. When we took a look at their system, we found a serious vulnerability and
textbook insecure code.In 2017, leaving your crypto algorithm vulnerable to differential cryptanalysis is a rookie mistake. It says that no one of any calibre analyzed their system, and that the odds that their fix makes the system secure is low, states Bruce Schneier, renowned security technologist, about IOTA when we shared our attack.
Anybody who buys into such ill-conceived crypto-junk as IOTA deserves to lose their money, on grounds of foolishness.My view: I am far from an expert on cryptography but I will say this,
cryptocurrency depends on rock-solid, secure cryptography. It is exactly where the trust is placed in an electronic money system. By removing it from governments/banks (who don't deserve it regardless), and instead trusting the software and the network it defines (not individual nodes, per se), you must have an extremely robust cryptographic algorithm and you also must be prepared to change it quickly should it ever prove to have a previously unknown weakness. As far as I'm concerned that should be common sense. I don't know precisely what happened with IOTA but I have read a little bit about it and I'm not sure why the currency continues to circulate given what I do know. I guess too many people had invested into it by that point, which is more a political reason for continuing to exist rather than anything based on technical merit or the capability of the system. I'm not sure why the IOTA people thought it was a good idea to throw in some untested cryptography, but that seems like a very amateur thing to do.
I agree that when people make a bad investment they deserve to lose their capital provided it wasn't outright fraud and that it is absolutely crucial to do your own research. I do think that the bar should be lower than having to be a cryptographer, especially as crypto assets are more widely adopted. Governments will seek to "protect" consumers to the extent they are able to. I use quotes around the word protect because I disagree with a few things concerning the current direction that regulation of crypto assets seems to be taking. I believe, in general, that cryptocurrencies should be treated as a currency, not as an investment asset class. I think eventually that will shake out, but governments have a habit of doing all of the wrong things before finally doing the right one, so it does concern me.
As these events occur again and again we get to reflect on code developers and their skills. Should they even be allow to release these coins?
Whos going to stop me from releasing code? You? Some government?
N.b. that anybody who could forcibly stop code monkeys from releasing bad code would also have the practical power to ban Bitcoin.
...
Well, next time somebody tries to argue with my statement that 99.9% of altcoins an 100% of ICOs are pure make-money-fast scamsmay I refer to your above statement?
I agree that many, most, of ICO/ITO projects just seem to be a money grab. I think that's reflected in the high rate of failure and fraud. I believe it has a potential for a promising future method of raising funds for legitimate projects, but I believe the market should really be discerning about what projects people choose to invest in and that there should be some standard way to evaluate these projects. Not mandated by some government but instead expected by the market.
Its all about the right tool for the job. Simplicity is domain-specific, with very particular requirements. The code used for creating Simplicity will inherit some second-order version of the same requirements.
Whereas for general-purpose programming, my own point was that there is no magic bullet. If some Haskell experts think that Haskell is the right tool for their job, then they will probably get good results. But their results will not necessarily be superior to those of C++ experts writing C++. More to the point, Haskell would not be a magic bullet for fixing the trash code churned out by idiots; and on the flipside, there is no sound reason for, say, Core to switch to Haskell.
I observe, Simplicity will not be able to prevent people from writing insecure smart contracts. Again: No magic bullet! Its purpose is to let smart people formally verify their contracts.
Thank you for the link to that white paper. Simplicity looks to be a substantial improvement over Solidity in terms of being able to implement a smart contract that is secure. I agree that an individual contract is only as secure as the contract code. But as far as Solidity goes, it has a funny name now that I think of it, because it seems anything but solid. I really wanted it to be everything I thought it could when I first read about it, but it really "feels" fragile. Maybe it's because of all the horror stories I've read about it. But I don't think so. I don't know how to describe it except to say it just doesn't have the rock-solid stability that one would expect from a scripting language that controls billions of dollars of underlying value. I could be wrong, but usually when I am using a piece of tech and it doesn't have the right feel to it (that's really the only way I can succinctly describe it), it ends up being a dud.
Most of the Bad code is a result of companies using proprietary software. In the Open source environment,
proper Peer review are done, before the code is submitted and applied. Some of these companies are in such a rush to be "first to market" that they skip beta testing and review. They want to be "first to market" and then patch like cowboys in a live environment.

This is why Bitcoin is so secure.
Nothing is rushed, proper testing is done on a TestNet and submitted for Peer review.Open source is not a magic bullet, either. You didnt say as suchbut many people do. Thus why I added boldface to the important parts, which are facilitated and enabled by open source.
We saw what happened with rush implementation with Bitcoin XT.
XT had severe bugs in its wetware layer.
On the other hand, I could say that people/users can be blame too for this inexplicable continuous hacking & bad news. Why?
Simply because most of them don't want projects that are slow on production. They only think about the "hype" without realizing that there is a proper flow for conducting new features. They passively pushes the developers/coders to do an early releases that have greater chances for bugs and errors. This is a very common thing on some projects here in bctalk

This is what
RISKS-subscriber types used to call dancing pigs. People will not pay for correct, reliable, secure things. People will not wait for them, either. They want their dancing pigs, and they want them now!
And in crypto pretty much every bit of code is critical while most devs still seem to be in happy-go-lucky start-up land, instead of in finance.
Your post gave me an inspirational idea. Would having programmers who previously worked for banks be preferred since they'll be particularly aware and sensitive to the nature of finance?
Banks code quality is oftentimes abysmal. Of course, it depends on the institutionand such questions as, consumer banking vesus institutional investment. But overall, I think that
much banking code is WTF-riddled stuff which ultimately relies on transactions being revocable. At best, you cant rely on code being good just because its from a bank!
Moreover, persons from banks have been immersed in an institutional culture which is inimical and antithetical to the culture of Bitcoin. Individuals will differ, of course; but Id start out wary of anybody who had worked for a bank.
Ultimately, with people as with languages, there is no magic bullet. If you look to the backgrounds of the best (non-anonymous) Core developers, I think youll find some vast differences. So as for past history. The common factor in the present is that they are smart, serious, responsible people who are devoted to Bitcoin. In some cases,
zealously.
I agree that proprietary code quality is often horrible, especially banking. My experience with banking code, like many other internal systems, is that it has been adapted and hacked and made to "work" with the digital equivalent of duct tape and bubble gum. And that's on a good day. More recently, there are banking systems that have resulted from merger after merger after merger of smaller banks into the large behemoths we have today that are reliant on code that has been in place for at least a decade. No one dares to touch that code because if they do, they will break 500 things that you'd never expect have some dependency on this swiss-cheese like construct. Most of my experience in this comes from commercial banking as opposed to investment banking, perhaps it's more cohesive over there? But I doubt it. Like any business, banks do not upgrade their systems and proprietary systems are among the worst from a "wtf how is this even working" perspective. I mean, I am sure there are great coders in the banking business. But they are the exception, not the rule.
Open source is NOT a magic bullet, as you said, it is more the peer-review and intensive testing process that creates quality code. If I was writing code, especially something that represented money, or votes, or peoples health, I would want it to be widely tested. Hack it, find the flaws, let's really make sure this code is resilient. The
best open source projects have this. Too many, however, are missing crucial parts of the team or infrastructure to carry this out, or sometimes even the knowledge and understanding that this is a must for any code to be used in production. People thinking they can just throw something together and hope for the best, when you're dealing with something like digital money, is highly irresponsible.
I also admire the zealousness of many of the Bitcoin Core team, those that I know of.
They are a big reason, to me, as to why Bitcoin is something I know deserves more trust than any of the altcoins. Personally, I am a person that is passionate about the projects I take on and when I see that passion emanating from other people about their projects, it resonates with me. Bitcoin is not perfect and certainly, it has evolved over time and will continue to do so. But everything I have observed about the people that are part of Core, their writings on the listserv and discussions on GitHub, etc., shows me that they take their responsibility very seriously. At least to me, that is a very important and crucial distinction between Bitcoin and 99.9% of the altcoins.
Also regarding the "wild west", regulations will be happening. They already are in some legal jurisdictions.
Good luck regulating me. Or discerning which jurisdiction I am in.
Bitcoin is cypherpunk money. Though I am
sensitive to needs by others to comply with legal régimes, I am fundamentally opposed to any Bitcoin regulation of any kind. Also, I myself will always ignore it in my personal affairs.
Moreover, regulations dont work. Highly regulated fields such as (cough) government and military contract work do tend to be bug-riddled abominations. Banking code in many cases, as aforesaid. Healthcare-related code, quite often. And transportation...
Everything is broken. Regulations dont fix it.
Another area that needs a close look is the way that KYC is conducted in ICO/ITO offerings.
I have an easier solution: Dont ever do KYC. Avoid anything and everything which requires it.
For Bitcoin-related purposes,
I have never submitted to any KYC identity-rape.
No, really. Nobodys records show I own even a single satoshinobodys, as in nullius.
Ohyou said ICO. Well, those are scams which should be avoided, regardless.
I agree that staying under the radar of regulations is an ideal scenario when that can be done. However, that is not possible in all circumstances. Fiat/crypto exchange (besides P2P cash) is very difficult, for example, without a relationship with an entity subject to KYC regs (at least in the US). And for the foreseeable future, fiat/crypto conversion will be necessary for adoption.
Regulations rarely do anything useful, I agree with that. The thing about regulations that I know from a lot of experience with regulators is that it is much better to work with them than to ignore them and/or fight them completely. Regulators often will defer to industry when they come together with a reasonable and workable solution to whatever the issue at hand is. When this doesn't happen, the regulators decide on their own how best to handle the situation. Or even worse, other interests chime in with their view and that becomes the model adopted by the regulators. Right now crypto is around $450 billion USD in total market capitalization. That's just a little under the market capitalization of Facebook, one company. We know this is going to grow, and in my view, market capitalization isn't really a good metric to measure currencies, but it's quick on Google. However, once crypto assets
really start to bite into bank profitability, you better believe that they will be whining to the regulators to tighten the screws. I believe that businesses in the cryptocurrency field need to be paying close attention and be prepared to work with regulators instead of letting them run the tables.
As far as ICOs go with KYC, I don't blame you for not giving out your information. It's dangerous. Losing the money you'd invest is bad enough, but having your identity stolen is just as bad, if not worse in many cases. If ICOs are ever going to get away from the fraud aura, they need a way to be conducted legally without the extensive KYC information disclosed. I can go on eBay and buy something right now from a stranger and, yes, they do get my address, but that's only because they're shipping me something. I think there can be a better way to do KYC in the crypto realm. The set of circumstances are very different between me going into a bank to open a bank account or opening an investment account online and deciding to invest in an ICO. I can buy shares of stock without giving them a picture of the front and back of my passport and a selfie holding it up next to my face. Why should it be any different from that? I have some ideas to make KYC more safe and secure, ticking them around in my mind at this point.
Anyway, thanks for good things to think about. I appreciate it.
Best regards,
Ben