Proof of Believability, Scalability without Centralization, Easy Development, Mainnet Launch Q1 2019
We’ve mostly covered top market cap coins up to this point.
Coming soon are Waves and Komodo, and then a “Defense of Ethereum” episode, but since the series started, a few other major players have captured attention. They might just find their way into the series.
Hashgraph. Dfinity. Zilliqa. Cosmos (Tendermint).
This week, it’s time for IOST, the Internet of Services project.
Unlike most challengers discussed so far, IOST had no public token sale. Instead, it raised 35,000 ether in a hard-capped private sale in January of this year and is backed by a number of notable investors including Huobi, Sequoia, and half a dozen other groups.
Why Should You Believe Me? (IOST’s Version of Proof of Stake)
IOST’s consensus protocol is what it calls “Proof of Believability.”
As with many proof-of-stake systems, IOST nodes are expected to hold tokens to increase their chances of being selected as a block validator and thus receiving a reward of tokens.
But there’s more to it than simple Proof of Stake.
First, token balance isn’t the only factor in the IOST selection process. You can boost your believability score by participating in the network – by providing reviews, for example.
Second, a portion of your “Believability” is reset to zero when you’re selected. Not permanently, of course. And not by spending all of your IOST tokens.
IOST holders and participants accumulate a non-tradable asset called “Servi” by holding tokens and by helping the network in other ways. Your Servi are all spent when your node is selected to help verify a block, reducing your Servi balance and the weight it gives you to zero. Some factors in your Believability score, like feedback from the “Fair and Transparent Feedback System” (FTFS), survive the Servi purge, but this feedback must be obtained from other users, services, and smart contracts, not from simple staking.
Upon hearing about FTFS, I immediately started thinking about how it could be gamed, probably by collusion. I’m guessing that IOST’s launch, like EOS’s, might have a few cases of possible collusion that come to light and need to be dealt with by the community.
In any case, this Servi reset helps mitigate the immense power that whale token holders can have. Perhaps other mitigations, like quadratic voting, will help this problem on other platforms. IOST wants to tackle it right out of the gate, and I’m excited to see how Servi and PoB work out.
But to make a proof of stake system fair and secure, there’s another critical component that has pestered computer programmers since the early days: the difficulty of generating random numbers.
Fooled by Randomness
One of the major problems with proof-of-stake networks – and indeed with blockchains and blockchain applications in general – is the difficulty of producing truly random numbers. Without truly random numbers, or at least unpredictable random numbers, blockchain applications can be gamed.
If you can guess or forge a random number a system will use, even with a moderately small degree of certainty, you can probably attack the system.
So IOST takes significant pride in the protocol’s mechanism for securely generating random numbers.
According to the IOS Token’s whitepaper, the system’s random number mechanism satisfies these requirements:
1) It has to be resistant to dishonest participants (including clients and servers) within a certain ratio.
2) The final random number must be unforgeable and unbiased (uniformly random), except negligible probability.
3) A dishonest participant is not able to try multiple times to generate a random number that favors the participant, even if multiple dishonest participants collude.
4) Third parties are able to verify the output is generated by faithfully running the protocol (i.e., verify that it satisfies all the above requirements).
(This above from the whitepaper, but I’ve cleaned it up a little since the translation of the original paper is poor and frequently missing words, though it is understandable.)
Most methods to generate randomness on smart contract platforms rely on expensive proof of work or a trusted third-party (even if that party is voted in). Exceptions include Cardano’s Ouroboros, which has a “secure, multiparty implementation of a coin-flipping protocol,” and IOST’s approach, Distributed Randomness Protocol, is also multiparty, using a “non-interactive zero-knowledge proof (NIZK) and publicly verifiable secret sharing (PVSS).”
You can read the technical journal article behind this tech, “Scalable Bias-Resistant Distributed Randomness,” over at IEEE Explore.
However, the IOST mainnet has not quite launched yet. It’s coming in Q1 2019. This is an updated roadmap – the team is ahead of their original schedule.
It remains to be seen how secure IOST's implementation of their randomness tech will be in the real world. This caveat applies to most of these challengers, and I’m okay with bearing with a blockchain product as it overcomes difficulties – Ethereum being one partially past example, and EOS certainly being another.
Speaking of EOS…
IOST and EOS
Around the web, IOS – which I usually call IOST to avoid confusion with iOS and EOS both – has sometimes been attacked on this point.
IOST – and in particular Jimmy Zhong, both founder and greatest English-language IOST evangelist – even capitalizes on this comparison.
Tweets Jimmy Zhong:
What is #IOST?— Jimmy Zhong (@jimmyzhong_iost) July 10, 2018
✅【IOST - A Better EOS】A more Decentralized & Dev friendly EOS.
✅【IOST - Best Dev team】A dev team of 15+ PHDs & NOI Gold Medalists backed by Sequoia Capital China & etc.
❌Some BS lie with “1M” QPS and can not be launched within years.
The main point of the IOST/EOS comparison is scalability, but to be honest, nearly every platform we’ve considered except Ethereum Classic has a focus on scalability. So IOST’s play in the scalability game is to beat most of them to the punch.
Tweets Jimmy Zhong again:
Forgot to say, main net is gonna be launched in the next 6 months. We are here to build a USABLE blockchain. Not some BS that can’t be used, even with the main net(basically the case for every token except ETH/EOS now. Sorry)— Jimmy Zhong (@jimmyzhong_iost) July 10, 2018
In the interest of full disclosure, I’ve been involved in the EOS community – moonlighting on the Everything EOS podcast, writing a few smart contracts, creating a video that introduces UBI and Dan Larimer’s proposed URI.
Still, I find the distinction that IOST claims appealing: more decentralization, without the usual scalability drawbacks.
DPoS’s Block Producers, while I don’t find them as terrible as some critics do, are indeed a compromise. As much as I like EOS, anyone who calls the BP system something other than a compromise made for the sake of scalability has blinders on. The system can be argued to be safe, and decentralized enough, but it’s still a compromise.
So if IOST can truly launch a scalable product without the need for a mechanism like DPoS, I’m interested.
Efficient Sharding and Inter-Shard Transfers
Even scalable systems want to be more scalable, and sharding is a hot topic that slices across all of them.
We’ve looked a little bit at sharding before, and will consider it in depth in the upcoming Ethereum article. In short, sharding splits up the blockchain into multiple parallel chains, multiplying the protocol’s capacity.
This has potential security implications as smaller networks are easier to attack, but some products are finding ways to mitigate this.
One upcoming platform (and upcoming article in this series), Zilliqa, uses Proof of Work to do so. But IOST executes sharding without proof of work. “While Zilliqa’s sharding creation depends on two PoW(s) processes to elect a committee and assign shards, our Efficient Distributed Sharding technology makes the sharding creation process even faster by replacing the PoW process with cryptographic sortition.”
An immediate problem is how shards can avoid a double spend attack – where I tell one shard I pay 5,000 IOST to someone and tell another shard I spend the same 5,000 IOST to pay someone else. It’s what I would try if I were just a bit less virtuous.
To solve this problem, IOST is developing a tech called Atomix. Atomix is – everybody don your tech buzzwords helmet – “a novel two-step inter-shard atomic commit protocol that guarantees transaction atomicity in Byzantine setting.”
This approach shows some similarities to Omniledger tech. In short, transactions are “gossiped” between shards before funds are finally released to the recipient of a transaction. You can read more details in the technical whitepaper.
The IOST Virtual Machine
The “Virtual Machine” is the layer that allows blockchain platforms to act like a single computer, running program code in a decentralized manner.
The virtual machine runs smart contracts and interacts with the blockchain. Since decentralized platforms have certain characteristics, virtual machines necessarily have limitations. Some more than others. The most notable virtual machine currently is Ethereum’s EVM.
As IOST Senior Engineer Li Haifeng points out, Ethereum and EOS both have some disadvantages as far as their virtual machines go. I don’t agree that all of the particular points in this article are major concerns, and some are in the process of being addressed. But IOST is building its VM with the direct intention of remedying these shortcomings. You can read more about the VM, including some sample Ethereum, EOS, and IOST code for benchmarking, in the second part of Li Haifeng’s article.
Developers can check out IOST’s growing documentation. IOST also releases regular “tech updates” to keep the community up to date on the status on various parts of development, on these and other features like Micro State Blocks, TransEpoch node/shard switching, and Multiversion Concurrency Control (MVCC), which eliminates the need for rollback on state in the event of a fork. The latest tech update as of this writing is November 20th.
Marketing and Community
IOST has undeniably emphasized the building of its community.
It was what IOST founder Jimmy Zhong spoke about with Mike Finch and me in our interview podcast:
Jimmy is the incarnation of enthusiasm – for IOST, for its community, for the projects being developed on it. In the interview, he mentions a number of projects that he can’t discuss the details of yet. The game Crypto Heroes will launch on IOST, and I can only surmise that IOST will attract a number of projects for the same reasons EOS has.
In fact, the IOST project I’m most familiar with is one I use every day.
One project which has committed to launching on IOST when its mainnet arrives (planned for Q1 2019) is Berminal.
An impressive app on mobile and desktop both, Berminal has quickly become my go-to for news in the cryptocurrency space. Users can earn tokens by voting “bull” or “bear” on articles – though in almost every case the bulls outnumber the bears by 10-20 times regardless of the article’s content – and by accurately predicting what Bitcoin’s price will be come evening.
Even if no upcoming features are in the works, this sleek tool is a solid addition to your crypto day.
I had to wait 97 days for a screenshot this green.
But why does it need a token? Perhaps like Brave and BAT, Berminal’s token is an add-on that will hopefully see more value in the future. Or perhaps it’s just Berminal’s way to try to get free BTC market sentiment data, rewarding people with their own token.
Update: Berminal has recently begun advertising their new app Bermi, which uses the BERM token and lets video creators share “the best in short video content.”
That’s right: IOST might just raise the dead.
In any case, noisy projects like Berminal will serve to help IOST’s launch. It remains to be seen how big – and how successful – that launch will be. I’ll be watching.
The Big Questions
We’ve ended each episode with a quick round-up of seven big questions that pit each project against Ethereum, just to make sure there’s nothing I’ve missed. Here they are again:
How does IOST stack up?
IOST claims up to 100,000 tokens per second on its Proof of Believability protocol. Mainnet hasn’t launched quite yet, so we won’t have real-world (read: not testnet) numbers until then. Clearly the network’s capacity will exceed that of the much slower alternatives.
IOST wants to implement a “fully-decentralized” on-chain governance system. Interim governance until that happens is handled by
the Politburothe Internet of Service Foundation, which is a not-for-profit organization based in Singapore with members around the world.
IOST raised funds in January 2018 and is currently in the final stages of testnets, with mainnet launch scheduled in Q1 2019 and a version 2 mainnet with native sidechain support scheduled for Q2 2019.
A larger set of standard libraries mean developers won’t have to recreate a number of features they would need to re-roll on other platforms.
A domain name system provides human-readable names. IOST transactions will currently include transaction fees. I don’t have an estimate for these fees, or any way to measure my expectation they’ll be abstracted away from users, until we see the mainnet in action.
IOST is certainly an underdog but seems to be focused on rapid development. Several significant projects have committed to moving to or launching on IOST when its mainnet launches. One effect of IOST’s greater centralization is that we haven’t seen too many proactive community entities emerge like EOS’s Block Producers, unless they work outside of my language fluency and so I haven’t seen them yet. IOST will need more active community groups to seriously compete against EOS, other platforms, and especially Ethereum.