On Decentralization. Part II

This is the second part of my Decentralization topic, started with http://igorartamonov.com/2019/02/on-decentralization-part-i/, based on my presentation about a role of decentralization for a public blockchain.

In my previous article I’ve written about factors that could possible affect decentralization of a public blockchain. And if you start applying them to existing blockchains, it becomes clear that most of blockchains are guilty of one or two of such factors.

It’s much easier to sell centralization disguised as decentralization, and is very profitable. It seems that nobody cares about decentralization anymore. Maybe decentralization doesn’t even matter?

What is the problem?

What is the problem with centralization? It’s obvious that a Central Point is a Point of Failure, but what kind of failure in this case?

Any central point can be used to get some advantage. Control of a public blockchain is a power, which governments, big corporations and criminals want to control. Humans are weak point, they are especially exposed if they are part of that central point. Not necessary to destroy, but force them to do what powerful actor wants.

Most people think it’s impossible to force any changes, “because it’s Open Source”. Unfortunately not every problem is easy to notice, otherwise we wouldn’t have software bugs. Some backdoors can intentionally be planted in a code and pass all verifications, only authors would know how to use them. There are many examples of that.


On Decentralization. Part I

Last week at the Financial Cryptography conference I made a presentation about a role of decentralization for a public blockchain. Now I want to describe better my thoughts and position. I’m going to make few blog posts about it, this one is the first in the series.

If we will come to a decentralization metric from 0 to 100%, where 100% is fully decentralized blockchain. I believe that the average value for the top 10 blockchains will be less than 50%, likely less than 25%.

Most in the top 10 don’t even try to be decentralized. A centralized blockchain is a current trend, it is more effective for the most of the use cases and easier to compete in marketing, so most of the current blockchains are fine with being centralized.

If we speak only about the protocol, a peer-to-peer network, in most of the cases we have a decentralized network. That’s where people usually stop thinking about decentralization.


On the Attempt to Take Over Ethereum Classic (ETC)


Using ETCDEV issues with financing:
• DFG convinced me to give them access to the ETC Github
• DFG was unhappy that I was not going to agree to changes in the ETC core tech in return for them investing in ETCDEV
• Darcy Reno, ETCDEV’s Program Manager, was hired by ETC Labs/DFG and subsequently lured ETCDEV engineers to quit ETCDEV and join ETC Labs
• DFG copied all the ETCDEV code to their account on Github
• DFG took admin control of the ETC Github by removing all other admins

The past month has been very busy for us as we have been experiencing an attempt of a takeover of ETCDEV and ETC. My last post regarding our financing issues was a small part of that. I didn’t want to publish all the details at the time, but now it seems I have no other choice. I’ll try to summarize everything and make it as short as possible.


Alternative to Smart Contracts term

Term Smart Contract is current standard name for a code deployed to a blockchain. Originally proposed by Nick Szabo, and later adopted by Ethereum Foundation. It may be a good name, but apparently it brings some confusion and I think changes the path of the industry.

For me, as non-native english speaker, it was just a term without any extra meaning. I mean we have a very rich terminology in software engineering, and for most of the people outside of english speaking countries nobody thinks about literal meaning. Similar to “San Francisco” which is a name of the city now, and I believe nobody associate it with a religious place.

I started to realize that there is something wrong with the Smart Contract term at 2017, when I noticed that when I talk to people in US about Ethereum they quickly switch to a discussion about legal aspects and agreements between people enforced on blockchain. It was even common to hear something like “Oh, it must be for criminals, [as they can’t use traditional court to resolve disputes]”. Em, what??

The problem that it influences how people think about technology use cases. Once they got into the box of a contract they can’t think outside of it. All the talks are about digital assets, finance, escrow, insurance, tokenization, binary options, logistics, etc. Even Ethereum Foundation, which were originally talking about “world computer” is more focused on tokens and ICOs now. There are not technology talks in blockchain conferences anymore. All talks about legal aspects, regulations, jurisdictions and so on.

While it’s fine to develop something related to legal contracts, it moves technology into one narrow path. There is nothing wrong with Smart Contracts, but it’s just a subset of all possible solutions that can be deployed to blockchain. Maybe other things can leverage decentralized computing? Honestly I don’t think many of contracts needs any decentralization, most of current tokens/ICOs are pretty centralized with a single switch right in a smart contract. But nobody cares, so [for a contract] a decentralized trustless ledger not a critical feature at all.

In 90s there were a lot of talks about “Workstations”, instead of “Personal Computer”. Fortunately PC won, and we have games, internet, Twitter, Instagram, and other totally non-work things now. Maybe we wouldn’t have any of this if we’d use Workstations, who knows.

So, if not Smart Contract, what would be a good name for a code deployed to a blockchain which is not necessary associated with legal aspects?

Blockend follows idea of Frontend, Backend. Ledgerware is from Hardware, Firmware, etc. And Chaincode is used by IBM Hyperledger already.

Basically there are few common prefixes and suffixes, which can be mixed. “Block-”, “Chain-”, “Ledger-” and “-end”, “-ware”, “-code”.

It seems that people liked Chaincode, though I think it has some problems with using it in a common software engineering context. I like Ledgerware, but maybe it doesn’t sound great too.

What could be other options?


Take your seat

A quick note about office desks, seats, people and team spirit.

I’ve spend almost 15 years on software development, saw different companies, different people, different teams and different offices. Maybe hundred of them. Where I used to work, or my friends did. Some offices were small, some large. Cubicles, rooms and open spaces. Noisy and quiet. Cool startups and boring enterprise. Sometimes different offices that belongs to same organization.

At some point I’ve noticed a small difference, a difference in team members as I think is correlates with difference in how theirs work desks are placed. Remember when the same people have moved from one office to another, they started to conduct themselves differently.


Why i’ve switched from Ubuntu to Mac

I’d used linux and Ubuntu for many years, both on server and on desktop. Main reason it was stability of linux. Linux was much more stable than Windows, where you need to reinstall it every half a year, and anyway, you’ll get a lot of crashes.

Few years ago Ubuntu has really ugly UI and lack of features for desktop users. But things are changing, right now it looks much better, developers are adding features, one by one. But, at other hand, after every added feature we get a lot of added bugs :( It’s okay, sadly, but it’s a rule of software development. The problem that nobody want to fix them. It’s cool to add a new feature, but fixing a bug isn’t, because nobody sees it. So, there is no motivation to fix bugs.

As a result – we have unstable OS. Gnome crashes few times a week, have a lot of UI issues, wifi problems, hibernate problems, multi-monitor problems, slow as a snail, and seems that you need to reinstall it periodically, etc, etc :( So Windows becomes more solid at this point.

Ok, it tries to be like Mac OS. But right now it more like a very ugly Mac OS.

Looks like Linux have lost its advantages and opportunities at desktop market :( So, I just bought a Macbook Pro.

PS linux is still doing good on servers, i’m talking only about desktop


Ubuntu Netbook Remix 10.10

Month ago had upgraded Ubuntu Netbook Remix at our EeePC to 10.10, and i was very disappointed about it :( It become much worse than 10.04. It’s very slow, new UI are unusable, but “desktop UI” and previous version (aka “2D”) are broken :( When you are trying to open “File manager” is requires at least 7-10 seconds!!! Even WinXP can show you your files in 1-2 seconds. And every time you click on it, it starts showing you from the start! So, for example, if you are uploading photos to facebook, and browsing your local images directory, to select what to upload (as you know Ubuntu still can’t make thumbnail list at “Open File Dialog”, just like “windows 3.11”), you must start browsing to last opened picture every time you click on “File manager”. It takes 10-20 clicks every time. If you remembered last directory.

So Netbook Remix are unusable on ASUS eeePC, it’s also much slower than Windows 7 or Windows XP :( Common guys, it’s just an Atom 1.6 Ghz with 1Gb of memory. Looks like 10.10 optimized for at least Core2Duo with 2-3 Gb, even netbook version.

So, as a result we had installed Windows 7 on this netbook. There are no alternative now :( And I am very saddened by this.


Let’s go

Just starting my personal blog. I’m already blogging with my russian blog, and also on blogger.com, but just decided that it will be very good to start an personal blog, on my own domain.

I’m having a big experience as a software developer, mostly using java stack, on web, datamining areas, cloud computing and so on, started a few internet projects, and now starting an innovation internet startup. I also worked as a Product Manager, Project manager, and have a teaching experience. So, i have something to write about :)