Jekyll2023-01-21T07:28:00+00:00https://www.blepcoin.com/feed.xmlBlepcoinDaydreaming about ICOs.BlepcoinElrond2019-06-07T00:00:00+00:002019-06-07T00:00:00+00:00https://www.blepcoin.com/blockchain/2019/06/07/elrond<p>Elrond is a blockchain and decentralized application platform that aims for more than 10k transactions per second, minimal latency, negligible fees, and interoperability. Elrond implements adaptive state sharding, which allows the network to scale linearly - the more validators, the more throughput and data it can support.</p>
<p>The consensus group is secured by “Secure Proof of Stake” and random selection using BLS single signature, where the current leader signs the previous random source with its own private key to generate a new random number. It assumes that 2/3+1 of the eligible nodes are honest (similar to many other blockchains).</p>
<p>On 29 May 2019, Elrond released its testnet at <a href="http://testnet.elrond.com">http://testnet.elrond.com</a> along with a <a href="https://medium.com/elrondnetwork/elrond-zero-to-one-testnet-update-41a1b7cfd4b0">blog post detailing the update</a>.</p>
<p>*Update 22 June 2019: Since this article was published, <a href="https://medium.com/elrondnetwork/after-exceeding-10k-tps-in-testnet-elrond-is-going-open-source-61dd25e93fd9">Elrond has fully opened the source of their code.*</a></p>
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">1/ ZERO TO ONE - MAJOR MILESTONE FOR THE BLOCKCHAIN SPACE<br /><br />Elrond testnet has been released yesterday, validating that Adaptive state sharding and Secure proof of Stake work at scale<br /><br />Just take a look at this beauty: elegant, clean and fast: <a href="https://t.co/4VC0f8P5Bs">https://t.co/4VC0f8P5Bs</a> <a href="https://t.co/9ww5M6kTr3">pic.twitter.com/9ww5M6kTr3</a></p>— Beniamin Mincu ⚡ (@beniaminmincu) <a href="https://twitter.com/beniaminmincu/status/1133744265010581505?ref_src=twsrc%5Etfw">May 29, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<h2 id="token-metrics">Token metrics</h2>
<p>The token metrics look great in this market, in my opinion. Having a larger IEO than private round means there’s less centralized sell pressure. The hardcap, at $5.15MM, is sustainable by this current market. The inflation and deflation models make sense.</p>
<p>From <a href="https://elrond.com/files/Elrond_Token_Metrics_EN.pdf">https://elrond.com/files/Elrond_Token_Metrics_EN.pdf</a>:</p>
<p><strong>Total Tokens (Genesis)</strong>: 20,000,000,000 ERD, plus <2.5% inflation, minus transaction fees (burned)
<strong>Softcap</strong>: $1,900.000
<strong>Hardcap</strong>: $5,150,000
<strong>Total Tokens Sold</strong>: 8,800,000,000
<strong>Percentage Sold</strong> (Private + IEO): 44.00%</p>
<p><img src="/images/elrond9.png" alt="" /></p>
<h4 id="token-distribution-and-lockups">Token distribution and lockups:</h4>
<ul>
<li>Token Generation Event (TGE) will take place during or immediately after the IEO</li>
<li><strong>Private Round: 19.00%</strong>
<ul>
<li>7.5% at TGE</li>
<li>6 equal tranches every 3 months after IEO (15.41% every 3 months)</li>
</ul>
</li>
<li><strong>Initial Exchange Offering (IEO): 25.00%</strong>
<ul>
<li>100% at TGE</li>
</ul>
</li>
<li><strong>Ecosystem Rewards: 7.00%</strong> - These tokens will be used only for incentivizing users to join
the platform and/or use future products and services.
<ul>
<li>50% at TGE</li>
<li>50% 6 months after TGE</li>
</ul>
</li>
<li><strong>Marketing/Grants/Accelerator Pool: 8.50%</strong> - These funds will be distributed to individuals,
developers, companies or startups willing to build and/or promote interesting tools, services or
dApps on top of Elrond.
<ul>
<li>81,17% at the TGE, 9,41% every 6 months after TGE</li>
</ul>
</li>
<li><strong>Community fund: 2.00%</strong> - These funds will be distributed in accordance with the decisions
made by the community through the governance system.
<ul>
<li>33.3% at TGE</li>
<li>33.3% 6 months after TGE</li>
<li>33.3% 12 months after TGE</li>
</ul>
</li>
<li><strong>Advisors: 2.50%</strong>
<ul>
<li>100% 1 year after TGE</li>
</ul>
</li>
<li><strong>Team (Founders and Core team members): 19.00%</strong>
<ul>
<li>10% 6 months after TGE</li>
<li>10% 12 months after TGE</li>
<li>15% 18, 24, 30 and 36 months after TGE</li>
<li>20% 42 months after TGE</li>
</ul>
</li>
<li><strong>Company reserve: 17.00%</strong> - These tokens are retained by Elrond to support the Elrond
network and ecosystem.
<ul>
<li>33.3% at TGE - !Can only be used for staking during 1 year after TGE.!</li>
<li>66.6% in 3 equal tranches over 3 years, starting 1 year after TGE</li>
</ul>
</li>
</ul>
<p><img src="/images/elrond8.png" alt="" /></p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>Zilliqa, Algorand, Ethereum 2.0 (Serenity), and Multivac are competitors. While there are many technical details on how each implementation is different, and compete on throughput, scalability, and security, <strong>ultimately what they’re competing on is providing a platform that offers an easy way for developers to build reliable products</strong>.</p>
<p>Ethereum 1.0 is the clear winner in this regard so far, giving it the advantage of network effects; however, there is a huge unaddressed market of potential products that require higher throughput and scalability, with lower costs to use. None of the current solutions have achieved the levels of adoption that would prevent Elrond from getting there first.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<ul>
<li>
<p><a href="https://www.linkedin.com/in/beniaminmincu/"><strong>Beniamin Mincu</strong></a>, CEO</p>
<ul>
<li>Previously part of NEM core team, leading business, marketing and community efforts</li>
<li>Invested and supported some 30 blockchain projects among which Icon, Matrix and Zilliqa.</li>
<li>General Partner of Metachain Capital</li>
<li>4 years with blockchain startups</li>
</ul>
<p>In other words, Beniamin knows how the industry works.</p>
</li>
<li>
<p><a href="https://www.linkedin.com/in/luciantodea/"><strong>Lucian Todea</strong></a>, COO</p>
<ul>
<li>Entrepreneur and active investor in startups and the blockchain space</li>
<li>15 years experience in tech businesses, and as an executive with significant operational, business development, general management, leadership and international experience</li>
<li>CEO, founder and partner in several tech companies</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/lucianmincu/"><strong>Lucian Mincu</strong></a>, CIO</p>
<ul>
<li>8 years experience spanning from developing end-to-end startup products, to designing and implementing highly technical yet comprehensive infrastructure and network solutions for large enterprise clients like the German State</li>
<li>Co-founded Metachain Capital and ICO Market Data.</li>
<li>3 years of blockchain experience.</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/fixone/"><strong>Felix Crisan</strong></a>, Head of research</p>
<ul>
<li>Co-founded BTKO, Romania’s first Bitcoin exchange platform</li>
<li>Co-founder and CTO of Netopia where he implemented market leading solutions for online and mobile payments</li>
<li>20 years of working experience in IT and teaches BigData concepts and technologies</li>
<li>Bitcoin Lightning Network contributor</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/raduchis/"><strong>Radu Chis</strong></a>, Head of technology</p>
<ul>
<li>PhD in Computer Science, research in Advanced Computer Architecture, Design Space Exploration and Machine Learning</li>
<li>Published several scientific papers in prestigious journals and international conferences</li>
<li>Participated in EU funded research projects</li>
<li>10 years experience as a software engineer, deploying enterprise solutions for multiple sectors</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/adrian-dobrita-74310437/"><strong>Adrian Dobrita</strong></a>, Head of engineering</p>
<ul>
<li>1st Place in a national Ai Multi-Agent Systems Competition</li>
<li>BS in Computer Science, MS in Advanced Computing Systems</li>
<li>10+ years experience in software engineering</li>
<li>Intel, ST-Ericsson, Continental, developing industry-grade embedded software in areas such as mobile and automotive. He has also worked for several startups as back-end developer</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/iulian-pascalau-69587665/"><strong>Iulian Pascalau</strong></a>, Core developer</p>
<ul>
<li>10 years experience in industrial-grade software</li>
<li>Experience with IoT devices, network infrastructures, as well as analog and digital electronics</li>
<li><a href="https://www.linkedin.com/in/iulian-pascalau-69587665/">Linkedin</a>, <a href="https://twitter.com/iulian_pascalau">Twitter</a>.</li>
<li>BS in Computer Science</li>
</ul>
</li>
<li>
<p><a href="https://www.linkedin.com/in/sebastian-marian-a86b4614b/"><strong>Sebastian Marian</strong></a>, Core developer</p>
<ul>
<li>four times winner of the 3rd place in global AI competition RoboCup</li>
<li>Member of the RoboCup Executive Committee, and previously member of the RoboCup Technical Committee</li>
<li>Extensive experience in Multi-Agent Systems, Machine Learning and AI</li>
<li>18 years experience in software engineering</li>
<li>BS in Computer Science</li>
</ul>
</li>
</ul>
<p>Other engineers:
<a href="https://www.linkedin.com/in/stancu-mihai-91980327/"><strong>Mihai Dorian Stancu</strong></a>, <a href="https://www.linkedin.com/in/cristi-corcoveanu-10606111b/"><strong>Corcoveanu Cristian</strong></a>, <a href="https://www.linkedin.com/in/andrei-m-marinica-0b8a79b8/"><strong>Andrei Marinica</strong></a>, <a href="https://www.linkedin.com/in/sasu-robert-3b11ab55/"><strong>Robert Sasu</strong></a>, <strong>Camil Ioan Bancioiu</strong>, <a href="https://www.linkedin.com/in/endre-simo-87aab239/"><strong>Endre Simo</strong></a>, <a href="https://www.linkedin.com/in/beniamin-drașovean-876bbb170/"><strong>Beniamin Drasovean</strong></a></p>
<p>Other team members:
<a href="https://www.linkedin.com/in/dan-voicu-448b56162/"><strong>Dan Voicu</strong></a>, <a href="https://www.linkedin.com/in/daniel-serb-blockchain/"><strong>Daniel Serb</strong></a>, <a href="https://www.linkedin.com/in/larisa-oltean-65735966/"><strong>Larisa Oltean</strong></a></p>
<h4 id="advisors">Advisors</h4>
<p>The advising team includes an Ethereum core dev, a computer science professor, cofounders of City of Zion and NEX, and a VP of engineering.</p>
<p><a href="https://www.linkedin.com/in/iskold/">Alex Iskold</a>, <a href="https://twitter.com/ATabarrok">Alex Tabarrok</a>, <a href="https://www.linkedin.com/in/raulejordan/">Raul Jordan</a>, <a href="https://www.linkedin.com/in/grigorerosu/">Grigore Rosu</a>, <a href="https://www.linkedin.com/in/canesin/">Fabio C. Canesin</a>, <a href="https://www.linkedin.com/in/ethanfast/">Ethan Fast</a>, <a href="https://www.linkedin.com/in/andreipitis/">Andrei Pitis</a>.</p>
<h4 id="partnerships">Partnerships</h4>
<ul>
<li><a href="https://nash.io/">Nash</a>, (formerly known as NEX)</li>
<li>
<p><a href="http://www.mobilpay.ro/public/en/">NETOPIA</a></p>
</li>
<li><a href="[http://coned.utcluj.ro/](http://coned.utcluj.ro/)">Distributed Systems Research Laboratory</a></li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Elrond has been self-funded so far, and is fundraising <em>after</em> already demonstrating a proof of concept and another iteration. There are some technical/economic competitive advantages, such as low computational requirement and low network participation costs, which also help in terms of potential adoption.</p>
<p>In my conversations with the team, they clearly understood that competitive advantage isn’t just about the tech, but also about navigating the crypto ecosystem, gaining niche then mainstream adoption, and building a constructive development community.</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<p>Elrond token, ERD, is a <strong>utility token</strong> that will be used as:
-a <strong>unit of payment and settlement</strong> between participants in the Elrond Network
-a <strong>unit of staking to validate transactions</strong> by masternodes</p>
<h2 id="tech">Tech</h2>
<h3 id="regarding-sharding">Regarding sharding</h3>
<p>Sharding is a way to horizontally distribute storage and processing loads, to increase performance with scalability. Elrond accomplishes this with a method dubbed “adaptive state sharding.”</p>
<p>Sharding implementations have to deal with a variety of issues stemming from the complexity. The Elrond whitepaper puts it succinctly:</p>
<blockquote>
<p>Sharding introduces some new challenges like: singleshard takeover attack, cross-shard communication, data availability and the need of an abstraction layer that hides the
shards</p>
<p>- <a href="https://elrond.com/files/Elrond_Whitepaper_EN.pdf">Elrond whitepaper page 5 </a></p>
</blockquote>
<p>To address these, Elrond uses a tree structure, where the shards from the last tree level also must hold the state from their siblings. This improves performance when sibling shards merge, since they already have the data.</p>
<p><img src="/images/elrond0.png" alt="" /></p>
<p>In addition, for each epoch, a third of the nodes are uniformly redistributed across shards, thus preventing cartels from dominating a single shard.</p>
<p>I think that makes a lot of sense.</p>
<hr />
<h3 id="secure-proof-of-stake">Secure Proof of Stake</h3>
<p>This Proof of Stake designed by Elrond uses several layers of security schemes to prevent double spend, shard takeover, invalid transaction attacks, while keeping the whole system closely synchronized.</p>
<p>Layers</p>
<ol>
<li><strong>Random sampling of nodes into shards</strong> at the end of each epoch. Minimum nodes per shard are 400, and new shards are created if the minimum requirement is met.</li>
<li><strong>Random sampling of nodes to form the consensus group</strong> of 63. A modified BFT scheme is used, and 2/3 + 1 valid signatures are necessary to push a new block into the blockchain. For the metachain, the consensus group size is 400.</li>
<li><strong>Random number generator</strong> using BLS single signature scheme. The current leader signs the previous random seed with its own private-key, effectively creating effectively a random number. <a href="https://medium.com/elrondnetwork/elrond-improvement-change-in-consensus-and-randomness-source-d764a3fad35">The team wrote a blog post about the RNG updates since the whitepaper was written.</a></li>
<li><strong>Block-finality concept</strong>. The block with nonce N is considered final only if block with nonce N+1, …, N+k are valid and constructed on top of block N in the correct order. “Honest” validators will not build over an invalid block.</li>
<li><strong>Fisherman challenge</strong>. Any “node” can challenge a proposed block. The cost of an invalid challenge is the full fisherman stake. A validated challenge will result in slashing the signers of the invalid block, while the slashed amount will be rewarded to the fisherman. Challenge is done through merkle proofs.</li>
<li><strong>Fisherman challenge can be sent by sibling shard nodes</strong> as well, only one node from 800 has to be honest, and putting an invalid block can be challenged.</li>
<li><strong>Metachain only notarizes blocks from shards which are final</strong> - block finality K. In that time the fisherman can send their challenges.</li>
<li><strong>Data must be shared with fisherman</strong>, otherwise it does not get finalized.</li>
</ol>
<p>The probability of signing two consecutive malicious blocks is ~10^-18 without the fisherman challenge.</p>
<p>Shard takeover is possible only if the malicious group has super majority. The probability of this in case of 10 shards and 25% of total nodes malicious is 2.88*10^-78 without the fisherman challenge.</p>
<p>SPoS is provably secure even if the malicious group is highly adaptable, and bribing was considered as well.</p>
<p><strong>Probability of shard takeover with fisherman challenge is: 10^-211.</strong></p>
<p>Team member Robert Sasu wrote an in-depth explanation and justification <a href="https://ethresear.ch/t/building-towards-a-99-fault-tolerant-sharded-system-currently-provably-67/5348">here</a>.</p>
<hr />
<h3 id="metachain">Metachain</h3>
<p>Elrond includes a metachain to notarize all network and global data operations, such as nodes joining/leaving the network, eligible validator lists computation, shard-specific consensus, handling valid/invalid transactions, etc. Every round of every epoch, each shard sends headers and proofs to this metachain, on which consensus is run. Then, shards may request information from the metachain to process cross-shard transactions.</p>
<hr />
<h3 id="pruning">Pruning</h3>
<p>At the end of epoch e+1, nodes drop the body of the previous epoch’s state block (containing the hash of the Merkle tree’s root), and all blocks preceding it. Therefore, new nodes do not need to download full history; they can start from the last valid state block.</p>
<hr />
<h3 id="code">Code</h3>
<p>The team wrote a <a href="https://github.com/ElrondNetwork/elrond-node-prototype">prototype in Java</a>, tested it, and determined that they needed to rewrite it using a faster language. I love this pragmatic approach – proofs and whitepapers only get you so far, but building and testing and iterating is a sign of experience. I saw test files for every significant component of Elrond!</p>
<h4 id="elrond-go-sandbox-the-protocol">Elrond-go-sandbox: the protocol</h4>
<p><img src="/images/elrond1.png" alt="" /></p>
<p>The following picture is of the recent pull request history (proposed and approved changes). Their iterative process is very clear as every issue and every pull request is linked to a <a href="https://www.atlassian.com/software/jira">Jira</a> ticket.</p>
<p><img src="/images/elrond2.png" alt="" /></p>
<p>Consistent progress from core team members since Summer 2018.</p>
<p><img src="/images/elrond6.png" alt="" /></p>
<h5 id="seednode">seednode</h5>
<p>The seednode is a service for network discovery, and is an entry point in the network for the other nodes.</p>
<p>Looking at at /cmd/seednode/main.go: it creates a new random number, then creates a net messenger which does some p2p discovery using <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">dht</a> or mdns.</p>
<h5 id="node">node:</h5>
<p>There are 5 main entry points: <strong>Consensus</strong>, <strong>Data</strong>, <strong>Node</strong>, <strong>Process</strong>, and <strong>P2P</strong>.</p>
<p><strong>Consensus</strong>: defines the SPOS - reducing the necessary communication rounds from 5 to 2, and communication overhead from O(N^2) to O(N). <del>The team has implemented Bellare-Neven consensus operation and chronology with rounds and epochs already; however, the team says this will be changed to BLS multi-sig in the next few weeks.</del></p>
<p>Update 07 June 2019: BLS multi-sig is already implemented and live in the testnet.</p>
<p><img src="/images/elrond3.png" alt="" /></p>
<p><strong>Data</strong>: defines basic types, data structures which are needed for processing: block, header, metablock, transaction, etc. It also holds the merkle tree implementation to hold the state of the blockchain and account. Unfortunately this is something I’m unable to test, but according to the team, Elrond has a new implementation of patricia merkle trees which is 40% faster than the trie in Ethereum and faster than any other implementation in wide use in the crypto space..</p>
<p><strong>Node</strong>: connecting high level components to each other.</p>
<p><strong>Process</strong>: sync, bootstrap, creating new blocks, processing signed blocks, validating blocks, processing transactions, processing cross shard transactions.</p>
<p>Transaction sharding can be seen in process/block - here you see the core block processing units for shard and metachain as well.</p>
<p><img src="/images/elrond4.png" alt="" /></p>
<p><strong>P2P</strong>: builds upon libp2p and holds implementation for the communication layer: discovery through <a href="https://en.wikipedia.org/wiki/Kademlia">kademlia dht</a> and <a href="https://en.wikipedia.org/wiki/Multicast_DNS">mdns</a>, and a messenger implementation that defines the communication between elrond nodes. Elrond is using pubsub for broadcasting through topics but can also send messages directly. It also has a load balancer that ensures that critical communication channels are not starved when there is high communication activity (ie. lots of transactions).</p>
<p>Aside from these entry points, there is another key directory:</p>
<p><strong>sharding</strong>: Holds a multishard coordinator, which handles the state data according to the binary tree model described in the whitepaper. The nodes shard coordinator is currently in progress, and utilizes a fixed number of shards rather than calculated dynamically. The selection of validators for consensus groups is done in each shard according to the randomness as described in the paper, but is currently part of the consensus code. The team says it will be refactored soon into the nodes sharding coordinator.</p>
<p>Other directories include <strong>Crypto</strong> (cryptographic functions), <strong>DataRetreiver</strong> (key-value data holder), and <strong>Storage</strong> (a bloom filter and key-value store persistence layer).</p>
<h3 id="k-framework"><a href="https://github.com/ElrondNetwork/k">k-framework</a></h3>
<blockquote>
<p>K is a rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined using <em>configurations</em>, <em>computations</em> and <em>rules</em>.</p>
<p>- <a href="http://www.kframework.org/index.php/Main_Page">www.kframework.org</a></p>
</blockquote>
<p>Grigore Rosu, one of Elrond’s technical advisors, started K framework in 2003 at UIUC.</p>
<p>Elrond added a Golang backend K framework, which is used to create a virtual machine for smart contracts.</p>
<p>Check out this small subset of publications that have included K framework:</p>
<p><img src="/images/elrond5.png" alt="" /></p>
<blockquote>
<p>In a fruitful collaboration with <a href="http://fsl.cs.illinois.edu/grosu">Prof. Grigore Rosu</a>’s <a href="http://fsl.cs.illinois.edu/">Formal Systems Laboratory (FSL) at UIUC</a>, Runtime Verification (RV) has used the <a href="http://www.kframework.org/index.php/Main_Page">K framework</a> to successfully build and test a mathematical model of the Ethereum Virtual Machine, which makes it possible to formally verify the accuracy of smart contracts.</p>
<p>- https://runtimeverification.com/blog/k-framework-enables-verification-of-evm/</p>
</blockquote>
<h3 id="elrond-node-prototype-elrond-wallet-prototype"><a href="https://github.com/ElrondNetwork/elrond-node-prototype">elrond-node-prototype</a>, <a href="https://github.com/ElrondNetwork/elrond-wallet-prototype">elrond-wallet-prototype</a></h3>
<p>These are the prototypes done in Java. They haven’t been updated since Nov 2018, but gave the reason for the team to rebuild in Golang.</p>
<h3 id="elrond-wallet">elrond-wallet</h3>
<p>The Elrond client is made from <a href="https://reactjs.org/">Reactjs</a> (<a href="https://electronjs.org/">Electron</a>) and javascript. Works standalone and in browser.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Overall, I really like Elrond. My first call with them showed me that they had a great depth of knowledge not just about blockchain tech, but also so many other things: on how to manage a growing team, the importance of the non-tech side of startups, and even the intricacies of the quickly changing crypto industry.</p>
<p>After looking at the public and private code, along with their project management system, I can confidently say that the team knows what they’re doing. The level of detail, planning, and testing demonstrate a lot of experience handling large projects with large teams with the end of goal of creating something new and useful.</p>
<h2 id="other-info">Other Info</h2>
<ul>
<li>using existing libraries instead of building own, unless a custom version can bring 30% performance gains</li>
<li>
<p>There is 80-85% test coverage</p>
</li>
<li>
<p>uses Jira and Continuous Integration on github</p>
</li>
<li>There’s a 30x performance improvement from prototype to testnet</li>
</ul>
<blockquote>
<p>Lucian Mincu, [May 1, 2019 at 11:00:38 AM]:
the key management and flag configuration for starting ./node has been changed as well, this was only for testing purposes not for production.</p>
<p>ok</p>
<p>Lucian Mincu, [May 1, 2019 at 11:01:19 AM]:
so everything is right now in place and we’ll have a key management system integrated before the testnet release</p>
</blockquote>BlepcoinElrond is a blockchain and decentralized application platform that aims for more than 10k transactions per second, minimal latency, negligible fees, and interoperability. Elrond implements adaptive state sharding, which allows the network to scale linearly - the more validators, the more throughput and data it can support.Privatix2019-05-07T00:00:00+00:002019-05-07T00:00:00+00:00https://www.blepcoin.com/vpn/2019/05/07/privatix<p>Privatix is an internet broadband marketplace. “Agents” can sell bandwidth based on time, megabyte, or other metric. “Clients” can purchase this bandwidth to deliver data to themselves or others.</p>
<p>Specific use cases for decentralized bandwidth are implemented as plugins. Initial use cases are VPN and proxy services, as the Privatix team has domain expertise as well as 1.7M users in their centralized VPN service. Other potential use cases for a distributed bandwidth network includes 3rd party decentralized VPNs, ProxyMarket, Monetization, Anti-censorship solutions, and content delivery networks (CDNs).</p>
<p><strong>Whitepaper</strong>: <a href="https://dxw4crzwfgmzw.cloudfront.net/whitepaper/PRIVATIX-WHITEPAPER.pdf">https://dxw4crzwfgmzw.cloudfront.net/whitepaper/PRIVATIX-WHITEPAPER.pdf</a></p>
<p>Testnet is live, with a network graph here: https://privatix.network/graph</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>While Privatix is not a VPN-specific project, the go-to-market strategy is to implement a <strong>decentralized VPN</strong> on top of the decentralized bandwidth network.</p>
<blockquote>
<p>[The] VPN market is expected to reach USD 106 billion by 2022</p>
</blockquote>
<p>The biggest competitors for this strategy are existing centralized VPN services. However, this competition may convert into an opportunity to become the infrastructure layer for these competitors, if the cost and performance is comparable to the existing datacenters they use.</p>
<p>The team mentions that 3rd parties could use the network to develop a <strong>decentralized CDN</strong> in the future. While I do suspect implementations will be complex (to deal with caching), if successful this would be a huge market to enter as well.</p>
<blockquote>
<p>The market size of CDN is expected to grow from $4.95 billion in 2015 to $15.73 billion
in 2020, and to $70.3 billion by 2025.</p>
</blockquote>
<p><strong>Additional potential markets:</strong></p>
<p>Privatix.FAAS: Anti-censorship as a service: basically a built in VPN client for specific apps.</p>
<p>Privatix.Monetize: Replacing ads in apps with a built-in Agent to share bandwidth. Proceeds go to the app developer.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<p>The team’s past projects speak for themselves. (note: the team tells me that this picture is now a bit outdated – there are now over 1.7M users on Privatix VPN)</p>
<p><img src="/images/privatix1.png" alt="" /></p>
<p><img src="/images/privatix2.png" alt="" /></p>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Privatix is an <strong>existing company with a VPN product</strong>. They have market expertise and <a href="https://medium.com/privatix/2018-recap-and-future-plans-e6a34c17469b">1.7 million users</a> who have already installed their product. The marketing and distribution problem is essentially already solved.</p>
<p>[<strong>Privatix for Opera](https://addons.opera.com/en-gb/extensions/details/privatix-for-opera/) addon</strong>: 546,000+ downloads, with a 3/5 star rating.</p>
<p><strong><a href="https://play.google.com/store/apps/details?id=com.privatix&hl=en">Android</a></strong>: 100,000+ installs, with 4.5/5 star rating.</p>
<p><a href="https://chrome.google.com/webstore/detail/privatix-free-vpn-and-unl/dpdmolbociagblhlkopalkepebeoifka"><strong>Privatix Google Chrome extension</strong></a>: 48,000+ downloads, with a 4/5 star rating.</p>
<p><a href="https://addons.mozilla.org/en-GB/firefox/addon/privatix/"><strong>Privatix for Firefox</strong></a>: 3,900 downloads, with a 3.5/5 star rating</p>
<p><em>Note: Apple doesn’t provide public metrics for iOS App Store. <a href="[https://itunes.apple.com/il/app/privatix/id1106910668?mt=8](https://www.google.com/url?q=https://itunes.apple.com/il/app/privatix/id1106910668?mt%3D8&sa=D&ust=1556157596547000&usg=AFQjCNH_ngoClzUKvGcYkWvKlhRZ-C3Mzg)">Here’s the US App Store link</a>.</em></p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<p>The tokenomics model is designed as a medium of exchange model, with some mechanisms to capture value from the growth of the underlying network (eg. user base, higher utilization). One of the existing value capture mechanisms is that when Agents register their service offering onto the Ethereum blockchain, they must place a deposit. Similarly, when Clients want to connect to an Agent, they must place a deposit as well.</p>
<p>They are also currently researching <a href="https://education.district0x.io/general-topics/understanding-ethereum/token-curated-registry/">token curated registries</a> (TCRs) for ranking/tagging domains, to enable the users to filter out specific content, such as illegal content in specific countries. In this case, the token would be used for voting in the TCR, thus, adding value to the network and reducing circulating supply.</p>
<p>So, is the utility of the token so high that it’s worthwhile for people to overcome the network effects and cognitive overhead of having a new application specific token? There are 3 key ways to increase the chances, and the team is doing all three:</p>
<ul>
<li>Add features to capture value as the network grows (such as the TCR above)</li>
<li>Reduce onboarding friction (the team plans to have a fiat onramp ASAP, and utilize <a href="https://github.com/ethereum/EIPs/issues/865">EIP865</a> to allow users to pay PRIX token as transaction fee)</li>
<li>Considering an automatic price feed of USD/PRIX in the client side software so users don’t need to have that cognitive overhead.</li>
</ul>
<p>While there is more friction than just using a chain’s native coin, the team does have more flexibility in increasing token utility without increasing rent seeking.</p>
<hr />
<h3 id="markets">Markets</h3>
<p>There are two markets: <strong>PRIX/mb</strong>, and <strong>PRIX/usd</strong>. End users will only care about <strong>usd/mb</strong> as it provides the least amount of cognitive overhead.</p>
<p><strong>The PRIX/mb market</strong> is not an asset market, but an internal service market. In other words, people will use megabytes when they need it; they cannot store megabytes when they are cheap, and sell megabytes when they are expensive. Therefore, even if PRIX/mb is volatile, almost all service users will only be affected by the much more stable, <a href="https://en.wikipedia.org/wiki/Moving_average">moving average</a>.</p>
<p><strong>The PRIX/usd market</strong> is an asset market, and changes in exchange rate will depend on network demand due to the captured network value described below.</p>
<hr />
<h3 id="captured-network-value">Captured Network Value</h3>
<p>There are different views on what really impacts marketcap. According to Vitalik Buterin’s equation of exchange:</p>
<p>Market cap = Transaction volume • Holding time of network participants</p>
<p>On the other hand Scott Locklin’s paper (2018) states it’s all about supply and demand and even argues that Vitalk’s equation contains various overt errors and misunderstandings.</p>
<p>Regardless, it all comes down to “network growth value.”</p>
<p><strong>There are a couple mechanisms Privatix has included to capture network value:</strong></p>
<ul>
<li>The network absorbs tokens out of the supply from the time it takes to convert USD to PRIX, send PRIX while service is delivered, and convert PRIX to USD</li>
<li>Agents must place deposit when registering a service offering to the Ethereum blockchain</li>
<li>Clients must place deposit when starting state channels and connecting to a client</li>
<li>A rating system, as explained in detail in this <a href="https://medium.com/privatix/privatix-network-rating-651b5171cf1f">post</a> (already live at <a href="https://privatix.network/">https://privatix.network/</a>)</li>
<li>The team is also looking into the possibilities of integrating a burning mechanism (economic burning, see BnB as a reference project) in order to capture value from the network growth as a result of the growing user base and therefore utilization of the network</li>
</ul>
<p>As the team adds more functionality to the token, the network would be able to absort more tokens out of the supply, which means there would be greater demand for lower supply.</p>
<p>In the end, both Buterin’s focus about Token Velocity and Locklin’s focus on supply and demand both are applicable and make sense.</p>
<hr />
<h2 id="tech">Tech</h2>
<h3 id="architecture">Architecture</h3>
<p>Privatix has many parts, as described in this <a href="https://medium.com/privatix/understanding-privatix-network-76026eeae870">blog post</a>:</p>
<ul>
<li><a href="https://github.com/Privatix/dappctrl"><strong>Privatix core</strong></a>: responsible for billing and orchestrating service life-cycle</li>
<li><a href="https://github.com/Privatix/dapp-openvpn"><strong>Service Plug-in</strong></a>: package that provides or consumes a single service, eg VPN. It automates service provisioning, usage reporting, access to service, and start/stop of service consumption.
<ul>
<li>VPN Agent</li>
<li>VPN Client</li>
</ul>
</li>
<li><a href="https://github.com/Privatix/dapp-gui"><strong>User Interface</strong></a>: a single interface to control all operations</li>
<li><a href="https://github.com/Privatix/smart-contract"><strong>Token contract</strong></a>: ERC20 smart contract</li>
<li><a href="https://github.com/Privatix/dapp-smart-contract"><strong>Service contract</strong></a>: Handles offerings by allowing discovery, aging old offerings, preventing overbidding, etc.</li>
</ul>
<h3 id="code">Code</h3>
<h4 id="httpsgithubcomprivatixprivatix">https://github.com/Privatix/privatix</h4>
<p>Looking at the <a href="https://github.com/Privatix/privatix/blob/master/build/unix/README.md">README</a>, this repo is all about installing prerequisites, preparing config files, and compiling the code. We don’t need to get too deep into the repo as most of the interesting code will be elsewhere.</p>
<hr />
<h4 id="httpsgithubcomprivatixdappctrl">https://github.com/Privatix/dappctrl</h4>
<p>(1502 commits, 11 contributors)</p>
<p><img src="/images/privatix5.png" alt="" /></p>
<p>Starting with <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L264">main.go</a>’s <code class="language-plaintext highlighter-rouge">main()</code> function, we can see the overall logic of dappctrl:</p>
<ul>
<li>
<p>Connect to a postgresql database using <a href="https://github.com/go-reform/reform">Reform</a>, an ORM for sql databases. (line 275)</p>
</li>
<li>Create a new worker (line 308)</li>
<li>Create a new queue, attach to worker (line 316)</li>
<li>Create a new processor, attached to worker (line 320)</li>
<li>Create a new Monitor (line 323)</li>
<li>Create <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L161">UI Server</a> (line 335)</li>
<li>Create <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L179">session server</a> (line 344)</li>
<li>If this is a Client installation, create a client billing monitor (line 353)</li>
<li>If this is an Agent installation, create an <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L363">Agent SOMC Server</a>, <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L380">payment server</a>, and <a href="https://github.com/Privatix/dappctrl/blob/master/main.go#L386">agent billing monitor</a> (line 362).</li>
</ul>
<p>Pretty straightforward.</p>
<p>Let’s dive into some of the other directories to see how <strong>processors</strong>, <strong>monitors</strong>, <strong>sessions</strong>, and <strong>SOMC</strong> are implemented. Also, let’s see how agent/client billing monitors differ.</p>
<p><a href="https://github.com/Privatix/dappctrl/tree/master/proc"><strong>Processors</strong></a>: Looking at <a href="https://github.com/Privatix/dappctrl/blob/master/proc/processor.go">processor.go</a>, it looks like a job processor and state machine for all Agent and Client interactions, pretty much as described in this diagram below (from whitepaper):</p>
<p><img src="/images/privatix3.png" alt="" /></p>
<p>A lot of business logic is here to handle <a href="https://github.com/Privatix/dappctrl/blob/master/proc/worker/account.go">accounts</a>, <a href="https://github.com/Privatix/dappctrl/blob/master/proc/worker/agent.go">agents</a>, <a href="https://github.com/Privatix/dappctrl/blob/master/proc/worker/client.go">clients</a>, and to <a href="https://github.com/Privatix/dappctrl/blob/master/proc/worker/eth.go">interface</a> with the Ethereum network. Each of these has a golang file to handle changes, for example for Agents there are functions to handle <code class="language-plaintext highlighter-rouge">AgentAfterChannelCreate</code>, <code class="language-plaintext highlighter-rouge">AgentAfterUncooperativeCloseRequest</code>, etc. Looks comprehensive!</p>
<p><img src="/images/privatix4.png" alt="" /></p>
<p><a href="https://github.com/Privatix/dappctrl/tree/master/monitor"><strong>Monitors</strong></a>: Looking at <a href="https://github.com/Privatix/dappctrl/blob/master/monitor/monitor.go">monitor.go</a> and the readme, it’s clear that this is an Ethereum blockchain monitor. It <a href="https://github.com/Privatix/dappctrl/blob/master/monitor/produce.go#L37">filters all irrelevant transactions</a>, and <a href="https://github.com/Privatix/dappctrl/blob/master/monitor/produce.go#L43">generates jobs</a> for the processor.</p>
<p><a href="https://github.com/Privatix/dappctrl/blob/master/sess/"><strong>Sessions</strong></a>: Exposes the API that is used to orchestrate service plug-ins (eg. OpenVPN) incl. authentication, create, start, suspend, ususpend, terminate service actions. There is also <a href="https://github.com/Privatix/dappctrl/blob/master/sess/product.go">some code</a> that pushes Agent’s server configuration to dappctrl and associates server’s IP addresses with geographical location.</p>
<p><strong>SOMC (Service Offering Messaging Channel)</strong>: The interface through which <a href="https://github.com/Privatix/dappctrl/blob/master/agent/somcsrv/client.go">Clients</a> and <a href="https://github.com/Privatix/dappctrl/tree/master/agent/somcsrv">Agents</a> share Offerings and connection data. This connection is through <a href="https://www.torproject.org/">Tor</a>.</p>
<p><a href="https://github.com/Privatix/dappctrl/blob/master/agent/bill/monitor.go"><strong>Agent billing</strong></a>: This utilizes the blockchain monitor and local sql database to verify that the payment matches the service delivered. Also handles cases such as long billing lag, inactive channels, and suspended channels.</p>
<p><a href="https://github.com/Privatix/dappctrl/tree/master/client/bill"><strong>Client billing</strong></a>: This makes sure that payment is <a href="https://github.com/Privatix/dappctrl/blob/master/client/bill/monitor.go#L244">posted</a> when it’s supposed to, and cleans up the channel if <a href="https://github.com/Privatix/dappctrl/blob/master/client/bill/monitor.go#L206">it’s been inactive for too long</a>.</p>
<h4 id="thoughts">Thoughts:</h4>
<p>The git repo was organized nicely, easy to navigate, and comments and readmes where things might have gotten a little confusing without them. In addition, a big portion of the codebase is well tested as shown by how comprehensive each test file is (you can see for yourself all the files that have a <code class="language-plaintext highlighter-rouge">_test</code> suffix). This shows that the team has experience and is building for the long run, as code maintenance takes more time than an initial build. If I can get a grasp of where each moving part is in 30 minutes, that means it should be really accessible for the open source community and seamlessly maintainable/upgradable by future team members.</p>
<p>I also like that the team considered privacy factors such as the IP addresses of service providers.</p>
<hr />
<h3 id="vpn-service-plug-in"><a href="https://github.com/Privatix/dapp-openvpn">VPN Service Plug-in</a>:</h3>
<p>(276 commits, 6 contributors)</p>
<p><img src="/images/privatix6.png" alt="" /></p>
<p>Once again, the readme is superb. This repo installs <a href="https://openvpn.net">OpenVPN</a> then imports templates to the Privatix core database to allow OpenVPN service to be shared over the Privatix network.</p>
<p>The readme mentions <a href="https://github.com/Privatix/dapp-openvpn/blob/master/scripts/build.sh"><code class="language-plaintext highlighter-rouge">./scripts/build.sh</code></a>, which tells us that the important application directories in this repo are at <code class="language-plaintext highlighter-rouge">/adapter</code> and <code class="language-plaintext highlighter-rouge">/inst</code>.</p>
<p><a href="https://github.com/Privatix/dapp-openvpn/tree/master/adapter">/adapter</a>: This works by starting OpenVPN and scanning the output as it runs. As OpenVPN outputs data on <a href="https://github.com/Privatix/dapp-openvpn/blob/master/adapter/main.go#L205-L216">usage</a>, status, and errors, this <code class="language-plaintext highlighter-rouge">adapter</code> handles authentication, connections, monitoring, and sessions with the Privatix core app.</p>
<p><del><a href="https://github.com/Privatix/dapp-openvpn/tree/master/installer">/installer</a>: Copies over Offering templates, Product templates, and other config templates, from the repo to the service adapter directory.</del> (deprecated)</p>
<p><a href="https://github.com/Privatix/dapp-openvpn/tree/master/inst">/inst</a>: Custom Privatix adaptation of OpenVPN.</p>
<p><em>Interesting <a href="https://github.com/Privatix/privatix/blob/master/doc/general.md">note</a> about the verification of service:</em></p>
<blockquote>
<p>Privatix Network is a platform for buying and selling various services. Any service that can be measured on seller’s and buyer’s side, using single parameter, might be bought and sold via Privatix Network without 3rd party. There is no escrow party, that can decide, if service was provided or consumed. Instead service is sold and paid in such small portion, that risk for misbehavior considered neglectable.</p>
</blockquote>
<hr />
<h3 id="user-interface"><a href="https://github.com/Privatix/dapp-gui">User Interface</a>:</h3>
<p><img src="/images/privatix7.png" alt="" /></p>
<p>GUI based on <a href="https://electronjs.org/">electronjs</a> and <a href="https://redux.js.org/">redux</a>. Nice but nothing too critical for the network itself.</p>
<hr />
<h3 id="smart-contracts"><a href="https://github.com/Privatix/dapp-smart-contract">Smart Contracts</a>:</h3>
<p><img src="/images/privatix8.png" alt="" /></p>
<p><a href="https://github.com/Privatix/dapp-smart-contract/blob/master/contracts/Token.sol">Token contract</a>: Standard <a href="https://github.com/OpenZeppelin/openzeppelin-solidity">openzeppelin</a> erc20 token implementation.</p>
<p><a href="https://github.com/Privatix/dapp-smart-contract/blob/master/contracts/PrivatixServiceContract.sol.mustache">Service contract</a>: More interesting. Contains all the functionality that the whitepaper touches on, and includes the code to let this smart contract utilize the balances of the token contract. I don’t have experience security-auditing smart contracts so I don’t have additional insights to share.</p>
<hr />
<p>Overall, I love that their code <a href="https://github.com/Privatix/privatix/blob/master/doc/README.md">has clear documentation</a>. It’s clear that this team has run a public-facing open-source project before, and have made considerations in order to reduce as much onboarding friction as possible. For example, the installation guide (https://privatix.atlassian.net/wiki/spaces/BVP/pages/624689306/Install+Privatix+Agent+node+via+CLi+to+DigitalOcean+cloud)</p>
<p><em>Interesting tidbit: One of the devs, <a href="https://github.com/dzeckelev">Maxim</a>, also contributes to the <a href="https://fantom.foundation/">Fantom</a> codebase.</em></p>
<hr />
<h3 id="rating-system">Rating system:</h3>
<blockquote>
<p>Rating system is still not implemented in Agent and Client, but it is implemented as PoC on http://privatix.network. We wanted to test the concept and its performance. Now it is clear, that we can do it on each Agent and Client in decentralized manner and going to do it soon. Code can be found here -> https://github.com/Privatix/privatix/tree/develop/rating</p>
<p>- team (2019. 04. 26.)</p>
</blockquote>
<hr />
<h4 id="security">Security:</h4>
<p>A decentralized VPN faces many of the same weaknesses as Tor, because exit nodes are untrusted and adversaries are motivated to attack from that angle.</p>
<p>This <a href="https://matt.traudt.xyz/p/mRikAa4h.html">article</a> makes some good points about the tradeoffs in security, privacy, and performance of Tor and VPNs.</p>
<blockquote>
<p>Using only Tor, she doesn’t have to trust any single entity. Using a VPN, she has to completely trust her VPN provider.</p>
</blockquote>
<p>A user trusts a centralized VPN provider</p>
<ul>
<li>to not keep payment information</li>
<li>to not keep logs</li>
<li>to not share information with their adversary</li>
<li>to be competent at keeping their network and machines secure</li>
</ul>
<p>With a decentralized VPN utilizing a public blockchain with non-private transactions, all of these vulnerabilities get amplified; users now have to trust not just the one VPN company, but <strong>every node providing service</strong>.</p>
<p>Malicious entities would be able to host (or hack) some Agent nodes and log all non-ssl traffic and IP connections from non-ssl AND ssl traffic.</p>
<p>The team has mentioned that they may exclude unencrypted http traffic from the network completely, to reduce the attack surface. In addition, the team mentioned adding an option to route DNS traffic through the client’s ISP.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Privatix is impressive in that they’re a real company with over a million users already, giving it great odds in tackling the biggest barrier facing crypto companies today: adoption.</p>
<p>The tokenomics is straightforward, and there are additional features planned that increase network value capture as the network grows.</p>
<p>My only potential concern is with security, if the team decides to not exclude all http traffic by default from the client side. For most VPN users who want to get around geographical blockers or censorship, this is not an issue regardless. And, those who are concerned, can set their devices to only allow https connections. However, the non-tech-savvy user might stumble onto a malicious Agent thinking it’s safe, only to be recorded on every move.</p>BlepcoinPrivatix is an internet broadband marketplace. “Agents” can sell bandwidth based on time, megabyte, or other metric. “Clients” can purchase this bandwidth to deliver data to themselves or others.Ferrum Network2018-12-09T00:00:00+00:002018-12-09T00:00:00+00:00https://www.blepcoin.com/dag/exchange/2018/12/09/ferrum<p>Ferrum is a DAG network offering interoperability with other networks, and includes a DEX, mobile wallet, and fiat on-ramp.</p>
<ul>
<li>Directed acyclic graph (DAG) forked from IOTA (the extent of changes is described in the Code section below)</li>
<li>Interoperable: Ferrum can create “Proxy Tokens”, wrapped versions of other digital assets that can be transacted on chain. Will support derivatives.</li>
<li>Ferrum DEX</li>
<li>FRM coin is used as gas on the network</li>
<li>Wallet and Mobile wallet</li>
</ul>
<p>Whitepaper: <a href="https://whitepaper.ferrum.network">https://whitepaper.ferrum.network</a><br />
One Pager: <a href="https://onepager.ferrum.network">https://onepager.ferrum.network</a><br />
Press Releases: <a href="https://medium.com/ferrumnetwork">https://medium.com/ferrumnetwork</a></p>
<h2 id="token-metrics">Token metrics</h2>
<p>(from one pager)</p>
<p><strong>Token Ticket</strong>: FRM<br />
<strong>Token Price</strong>: $0.0168<br />
<strong>Hardcap</strong>: $6,000,000<br />
<strong>For Sale</strong>: 40%<br />
<strong>Post-ICO valuation</strong>: $15MM</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>There are countless DLT projects that claim to be performant and support tokens/other asset classes. However, they are all struggling to get adoption and usage. While Ferrum is newer and has less exposure to the market, most existing competitors are not far ahead.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<h3 id="team">Team</h3>
<ul>
<li>Executive team:
<ul>
<li><a href="https://www.linkedin.com/in/naiem-yeganeh-12874712"><strong>Naiem Yeganeh</strong></a> (CEO) (<a href="https://github.com/naiemk">github link</a>)
<ul>
<li>Core Machine Learning Engineer at Bloomberg, (2017 - present)</li>
<li>Software Engineer at Amazon, (3 years)</li>
<li>Software Engineer at Microsoft 343 Industries with Halo Team, (7 months)</li>
<li>Senior Developer at Schneider Electric (2011 - 2013)</li>
<li>PhD, Computer Science (Distributed Database Systems and Data Quality Management) at The University of Queensland, (2007 - 2013)</li>
<li>MS, Computer Software Engineering at IAU Quazvin, (2004 - 2006)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/ian-friend-bb949657/"><strong>Ian Friend</strong></a> (COO)
<ul>
<li>Associate and Co-Founder of Wilson Elser Blockchain and Digital Assets Practice Team, (2017 - 2018)</li>
<li>Associate Attorney at several legal firms</li>
<li>JD Business Law, Graduated Cum Laude at New York Law School, (2009 - 2012)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/pokey-rule-551130a4/"><strong>Pokey Rule</strong></a> (Software Engineer) (<a href="https://github.com/pokey">github link</a>)
<ul>
<li>Software Engineer at OptumSoft, (2007 - 2011)</li>
<li>MS in CS at Stanford University, (2009-2014)</li>
<li>BS Mathematics and CS at Stanford Unversity, (2005 - 2009)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/hadjarhomaei/"><strong>Hadjar Homaei</strong></a> (Product Engineer) (<a href="(https://github.com/xeeg)">github link</a>)
<ul>
<li>Director of Area 51 at Microsoft, (2018 - Present)</li>
<li>CEO/Co-Founder of Teela technology startup, (2016 - 2018)</li>
<li>Product Development Lead at Cody Inc, (2014 - 2016)</li>
<li>Software Development Engineer at Amazon with Similarities Team, (2011 - 2014)</li>
<li>PhD ‘11, Computer Science and Cognitive Science, All but dissertation, at University of Colorado Boulder (2006 - 2011)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/afshin-abadi-708493b9/"><strong>Afshin Abadi</strong></a> (Quantitative Researcher)
<ul>
<li>Lead Data Scientist at Dropoffmap LLC, (2017 - 2018)</li>
<li>Data Scientist & Algorithms at PathSence Inc., (2016 - 2017)</li>
<li>PhD ‘14, Electrical Engineering/Machine Learning at University of Southern Carolina</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/erik-powers-cfa-7b579919/"><strong>Erik Powers</strong></a> (Financial Strategist)
<ul>
<li>Associate at The Blackstone Group</li>
<li>Analyst and Associate at The Blackstone Group</li>
<li>Associate and Officer at State Street, (2011 - 2014)</li>
<li>BA, Economics at Boston University, (2005 - 2009)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/benjamin-blatt-17bb5814/"><strong>Benjamin Blatt</strong></a> (Investor)
<ul>
<li>Head of Capital Markets at Pagaya Investments, (2017 - Present)</li>
<li>Capital Markets Manager at CommonBond.co, (2017 - 2017)</li>
<li>Principal Credit Analyst at Capital One, (2016 - 2017)</li>
<li>Director of Structured Credit at Aviation Finance Corporation, (2012 - 2016)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/hkieu/"><strong>Huy Kieu</strong></a> (Lead Comunity Manager and Marketing Strategist)
<ul>
<li>Business Development Associate at Token Research Group, (2018- Present)</li>
<li>Lead Community Manager at Ankr Network, (2018 - Present)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="advisors">Advisors</h3>
<p><a href="https://www.linkedin.com/in/anton-uvarov-phd-mba-1232785/"><strong>Anton Uvarov</strong></a>: Senior Strategic Advisor<br />
<a href="https://www.linkedin.com/in/evtkruys/"><strong>Etiënne VantKruys</strong></a>: Senior Advisor<br />
<a href="http://linkedin.com/in/emeka-enu-mba-a29b37b/"><strong>Emeka Enu</strong></a>: Marketing and Business Development<br />
<a href="https://www.linkedin.com/in/germaine-ifudu-55958351/"><strong>Germaine Ifudu</strong></a>: Senior Blockchain Advisor<br />
<a href="https://www.linkedin.com/in/hamedahmadi1/"><strong>Hamed Ahmadi</strong></a>: Senior Engineer and Product Lead</p>
<h3 id="partnerships">Partnerships</h3>
<p><a href="https://www.prnewswire.com/news-releases/rivetz-and-ferrum-network-partner-to-deliver-military-grade-digital-asset-protection-for-wallets-300751036.html">Rivetz</a><br />
<a href="https://www.kudi.exchange/">Kudi Exchange</a>: fiat to digital asset exchange for West Africa. Owned and operated by TLG Ventures, a strategic investor in Ferrum. More details <a href="https://medium.com/ferrumnetwork/ferrum-network-and-the-kudi-exchange-6147542c25f9">here</a>.</p>
<h3 id="strategic-investors">Strategic Investors</h3>
<p><a href="https://kosmos.capital/">Kosmos Capital</a>: Well connected in the Australian market<br />
<a href="https://trgroup.io/">Token Research Group</a><br />
<a href="http://tlg.ventures/">TLG Ventures</a>: Well connected in African market</p>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Most other projects depend on external exchanges for listing, and do not have direct fiat onramps. Ferrum has 4 planned methods:</p>
<ul>
<li>XRP as intermediary</li>
<li>direct integration in various locales</li>
<li>in-house fiat gateway</li>
<li>Kudi Exchange</li>
</ul>
<h2 id="tokenomics">Tokenomics</h2>
<blockquote>
<p>Every Ferrum transaction needs to present a proof of work.</p>
<p>[Users can] add weight to their transactions by spending
FRM instead of, or in addition to, proof of work.</p>
<p>When FRM is used to execute a transaction, the
token is burned.</p>
<p>– whitepaper</p>
</blockquote>
<p>The tokenomics seem pretty simple - a twist on the standard PoW. However, I’m not sure how a proof of work can be bundled with a transaction.</p>
<h2 id="code">Code</h2>
<p><img src="/images/ferrum1.png" alt="" /></p>
<h3 id="ferrum-ext-gateway"><a href="https://bitbucket.org/naiemk/ferrum-ext-gateway">ferrum-ext-gateway</a></h3>
<p>From the README,</p>
<blockquote>
<p>This repo contains gateways that are used by the Ferrum Node to talk to outside world. This is to help unifying the APIs both for wallet and node use.</p>
</blockquote>
<p>Currently, only a Ripple gateway has been developed. Written in <a href="https://www.typescriptlang.org/">Typescript</a>, the code liberally uses the newer features of Javascript such as classes and async/await.</p>
<p><code class="language-plaintext highlighter-rouge">ferrum-ext-gateway/ripple/src/</code>:</p>
<table>
<thead>
<tr>
<th>Filename</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>model/RestApiTypes.ts</td>
<td>Type definitions</td>
</tr>
<tr>
<td>App.ts</td>
<td>Starts <a href="https://expressjs.com/">expressjs</a> application with handlers for a generic command API: create new address, get transaction by id, and get incoming transaction. The actual functions are implemented in <code class="language-plaintext highlighter-rouge">RippleApi.ts</code>.</td>
</tr>
<tr>
<td>RippleApi.ts</td>
<td>Connects to a Ripple server and does some data normalization to something more universal (for future support of additional networks).</td>
</tr>
<tr>
<td>index.ts</td>
<td>Starts <a href="https://nodejs.org/en/">nodejs</a> server on a specified port. Bootstraps <code class="language-plaintext highlighter-rouge">App.ts</code></td>
</tr>
</tbody>
</table>
<p>The main concern I have with this design is that it provides a single point of failure, in the following code (within <code class="language-plaintext highlighter-rouge">RippleApi.ts</code>):</p>
<p><img src="/images/ferrum2.png" alt="image-20181204021658190" /></p>
<p>This is Naiem’s response:</p>
<p><img src="/images/ferrum8.png" alt="image-20181208155648022" /></p>
<p>More explanations at the end of the review.</p>
<hr />
<h3 id="ferrum-node"><a href="https://bitbucket.org/naiemk/ferrum-node">ferrum-node</a></h3>
<p>Ferrum-node has 30 commits since forking <a href="https://github.com/iotaledger/iri/releases/tag/v1.4.2.2">IOTA v1.4.2.2</a> from Feb 24, 2018.</p>
<p><img src="/images/ferrum3.png" alt="image-20181204033623899" /></p>
<p>As you can see, there have been 2 stages of development - <code class="language-plaintext highlighter-rouge">no-ternary</code>, and prior. To give some background, IOTA was designed with a <a href="https://en.wikipedia.org/wiki/Balanced_ternary">balanced ternary system</a> rather than binary. While theoretically, a balanced ternary system might be more energy efficient, in reality, the specialized hardware it takes makes it a much more fragile ecosystem. It looks like Ferrum has decided against IOTA’s decision to use a balanced ternary system, and gone back to traditional binary. In the <code class="language-plaintext highlighter-rouge">no-ternary</code> branch, the hashing function, encryption algorithm, and serialization / deserialization model are changed, making it compatible to Ethereum.</p>
<h4 id="here-are-the-stats-of-the-no-ternary-branch">Here are the stats of the <code class="language-plaintext highlighter-rouge">no-ternary</code> branch:</h4>
<p><img src="/images/ferrum4.png" alt="image-20181204035750253" /></p>
<p>As a result of the first command, you can see the number of file changes, and the number of lines added and deleted.</p>
<p>As a result of the second command, you can see the distribution of the changes. Since <code class="language-plaintext highlighter-rouge">src/main/java/com/iota/iri/model/</code> and <code class="language-plaintext highlighter-rouge">src/main/java/com/iota/iri/hash/</code> have the most changes, let’s see which files actually changed:</p>
<p><img src="/images/ferrum5.png" alt="image-20181204040541949" /></p>
<p>In the results, the first column is additions, and the second column is deletions. Looks reasonable – a quick double check of the files shows that most of the hashing functions have been replaced by very commonly used Keccak Sponge functions.</p>
<h4 id="here-are-the-stats-of-the-ferrum-branch-the-changes-between-forking-from-iota-and-the-no-ternary-branch-above">Here are the stats of the <code class="language-plaintext highlighter-rouge">ferrum</code> branch (the changes between forking from IOTA and the <code class="language-plaintext highlighter-rouge">no-ternary</code> branch above)</h4>
<p><img src="/images/ferrum6.png" alt="image-20181204042855964" /></p>
<p>The biggest changes are adding the Ferrum specific files as highlighted in the picture above, and modifying the other files to be compatible. You may notice that <code class="language-plaintext highlighter-rouge">src/main/java/com/iota/iri/service/API.java</code> also seems to have many changes, but checking the actual difference in the code, it looks like mostly whitespace changes rather than functionality changes. <code class="language-plaintext highlighter-rouge">TRANS.md</code> is an architecture doc and todo list.</p>
<p>The files that end with <code class="language-plaintext highlighter-rouge">Bundle.java</code> look good to me. I’m not very familiar with IOTA bundles, but taking a look at the <a href="https://domschiener.gitbooks.io/iota-guide/content/chapter1/bundles.html">Bundles documentation</a>, they look like reasonable implementations.</p>
<p><del>The <code class="language-plaintext highlighter-rouge">ExternalBitcoinApi.java</code> and <code class="language-plaintext highlighter-rouge">ExternalEthereumApi.java</code> might have some issues. Take a look at the hardcoded <code class="language-plaintext highlighter-rouge">BASE_URL</code> below:</del></p>
<p><del><img src="/images/ferrum7.png" alt="image-20181204045220755" /></del></p>
<p><del>It could be a potential source of vulnerability due to the complexity of the oracle problem.</del></p>
<p>Edit, based on team response:</p>
<blockquote>
<p>These two were the original design. They are being moved to the gateway nodes such as Ripple</p>
</blockquote>
<p>More explanations are at the end of the review.</p>
<p>Another file that is a work in progress is <code class="language-plaintext highlighter-rouge">TxCurrency.java</code>, where it’s still a hardcoded list.</p>
<p><img src="/images/ferrum12.png" alt="image-20181204044315466" /></p>
<hr />
<h3 id="ferrum-js-api"><a href="https://bitbucket.org/naiemk/ferrum-js-api">ferrum-js-api</a></h3>
<p>Javascript/Typescript API for Ferrum. There is a <code class="language-plaintext highlighter-rouge">no-ternary</code> branch to complement the <code class="language-plaintext highlighter-rouge">no-ternary</code> branch of Ferrum-node. The files below contain handlers for all the endpoints.</p>
<p><img src="/images/ferrum9.png" alt="image-20181208160801030" /></p>
<p>This repo does not include tests yet, but as just an interface to the Ferrum network, it’s not super critical at this stage.</p>
<hr />
<h3 id="ferrum-wallet"><a href="https://bitbucket.org/naiemk/ferrum-wallet">ferrum-wallet</a></h3>
<p>Web wallet for Ferrum. Made with React. Contains functionality for the following features:</p>
<p><img src="/images/ferrum10.png" alt="image-20181208161816782" /></p>
<hr />
<h3 id="ferrum-wallet-app"><a href="https://bitbucket.org/naiemk/ferrum-wallet-app">ferrum-wallet-app</a></h3>
<p>React native Ferrum wallet for Android / iOS. Contains functionality for the following features:</p>
<p><img src="/images/ferrum11.png" alt="image-20181208162324977" /></p>
<hr />
<h3 id="ferrum-docker-compose"><a href="https://bitbucket.org/naiemk/ferrum-docker-compose">ferrum-docker-compose</a></h3>
<p>Uses <a href="https://docs.docker.com/compose/">docker-compose</a> to set up ferrum, dex, dex bot, and gateway-ripple. Seems outdated due to the mismatching repo names to what is available, but it’s just a config file that can be updated in 5 minutes so not a big deal.</p>
<hr />
<h3 id="ferrum-sub0"><a href="https://github.com/naiemk/ferrum-sub0">ferrum-sub0</a></h3>
<p>A proof of concept of sub-0 client. React native app.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Ferrum is competing in a tough space technologically, but differentiates itself by demonstrating good business development progress and onboarding advisors that can actually help in terms of adoption in geographically diverse locales.</p>
<p>The code is architected in such a way that demonstrates Naiem’s engineering experience. While it should be cleaned up and made developer friendly at some point, the team has made it clear that it’s pre-release. The git commit messages are clear and concise, which is a good sign that there was some time spent on making the codebaseo maintainable long term.</p>
<p>It is interesting to note that all the git commits are by Naiem, the CEO (this may be due to git rebasing, so not much insight here).</p>
<h2 id="other-info">Other Info</h2>
<p>Naiem Yeganeh | Ferrum Network, [Dec 4, 2018 at 5:31:13 AM]:</p>
<blockquote>
<p>…The external data is not pushed to Ferum by oracles. Every single node connects to random external nodes. This will be effectively as every Ferrum node is also a node from all external nodes. E.g. Once you run a Ferrum node, you run an Ethereum, Ripple, Bitcoin, etc node with it that Ferrum talks to.</p>
</blockquote>
<p>Naiem Yeganeh | Ferrum Network, [Dec 4, 2018 at 5:40:00 AM]:</p>
<blockquote>
<p>Obviously this would be too expensive and not everybody will do that, although is an option and can be done.
To take the specific example of Bitcoin, assuming there is 1000 Ferrum Node, they would be connected to 1000 different Bitcoin nodes. For an adversary to present a fake transaction, it should hack a significant percent of the Bitcoin nodes that Ferrum nodes connect to.
Another problem that adversay has is that it doesn’t know which Bitcoin nodes are used by Ferrum nodes so the adversary should hack majority of the Bitcoin network to be able to fool Ferrum nodes to get a fake transaction through.</p>
</blockquote>BlepcoinFerrum is a DAG network offering interoperability with other networks, and includes a DEX, mobile wallet, and fiat on-ramp.Sovrin2018-11-19T00:00:00+00:002018-11-19T00:00:00+00:00https://www.blepcoin.com/identity/2018/11/19/sovrin<p>Sovrin is a decentralized, global public utility for <strong>self-sovereign identity</strong> and <a href="https://www.w3.org/TR/verifiable-claims-data-model/"><strong>verifiable claims</strong></a>. In other words, Sovrin is a protocol for sharing and verifying identities, and associating them with additional credentials such as education status, passport data, and driver license data. Due to the sensitive nature of this data, Sovrin utilizes cryptography to make the data private yet verifiable.</p>
<p>The Sovrin blockchain is <strong>permissioned</strong>, and <strong>public</strong>.</p>
<p><a href="https://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf">Link to whitepaper</a></p>
<p><em>Full disclosure: I’m working on an early stage physical identification technology that securely associates physical and virtual/blockchain identities. Although we’re both dealing with identities, these two projects work in very different parts of the identity stack (secure hardware vs trustless verifiers).</em></p>
<h2 id="token-metrics">Token metrics</h2>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>So many use cases rely on identity and verifiable claims, in and out of the crypto space. We, as humans, have identities. Companies have identities. Machines have identities. Our possessions have identities. I mean… if you can identify it, it has an identity.</p>
<p>To make things more complex, individual identities can have multiple credentials. For example, you probably have a national credential (passport), a fingerprint, and an Ethereum wallet address.</p>
<p>Currently, in order to connect these three, you have to use a trusted third party to verify that these credentials are valid, every time someone different needs to know your identity. That’s a ton of risk exposure, which increases linearly over identity usage.</p>
<p><strong>Sovrin removes the need for a trusted third party by being able to directly validate those credentials, therefore increasing efficiency and decreasing risk.</strong> Nobody has full control of all your credentials, and it enables anyone to issue credentials (only useful if the issuer builds trust with others).</p>
<p>A few examples:</p>
<ul>
<li>Standardize KYC/AML (crypto exchanges, OTC, ICOs)</li>
<li>Single login (dapps)</li>
<li>Electronic signature verification</li>
</ul>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<h3 id="relation-between-sovrin-evernym-the-linux-foundation-and-w3c">Relation between Sovrin, Evernym, the Linux Foundation, and W3C</h3>
<p><strong>Evernym</strong> was started in 2013. The <strong>Evernym</strong> team developed the source code for <strong>Sovrin</strong>, which was then donated to the <strong>Sovrin Foundation</strong>. Sovrin Foundation then contributed the code to the <a href="https://www.linuxfoundation.org/">Linux Foundation</a>, where it is now fully open source and known as <a href="https://www.hyperledger.org/projects/hyperledger-indy">Hyperledger Indy</a>.</p>
<p>The <strong>Sovrin Foundation</strong> is a non-profit governed by trustees, with the vision of becoming a global public utility.</p>
<p><strong>Evernym</strong>’s business is helping organizations and people leverage Sovrin’s capabilities. They do this by building software that works on the Sovrin Network and consulting with organizations about using Sovrin. (<a href="https://forum.sovrin.org/t/relationship-between-sovrin-and-evernym/390/10">source</a>).</p>
<blockquote>
<p>Sovrin is entirely based on open standards. Evernym is just one of at least a half-dozen companies, including Blockstack, uPort, Gem, Microsoft, and Digital Bazaar, contributing to the <a href="https://w3c-ccg.github.io/did-spec/">DID specification 9</a> at the <a href="https://w3c-ccg.github.io/">W3C Credentials Community Group 6</a>. And Evernym is only one of at least 40 companies contributing to the <a href="https://www.w3.org/2017/vc/charter.html">W3C Verifiable Claims Working Group 8</a>.</p>
<p>- Drummond Reed (<a href="https://forum.sovrin.org/t/relationship-between-sovrin-and-evernym/390/10">source</a>)</p>
</blockquote>
<hr />
<h3 id="sovrin-foundation-team"><a href="https://sovrin.org/people/">Sovrin Foundation Team</a></h3>
<ul>
<li>Executive team:
<ul>
<li><a href="https://www.linkedin.com/in/royavondet/"><strong>Roy Avondet</strong></a> (CFO)
<ul>
<li>Partner at NextStep Partners, a C-suite leadership consulting firm (7 years)</li>
<li>CFO Global Upside Corporation, (7 years)</li>
<li>experienced with Professional Employer Organization services</li>
<li>CFO at several small companies through NextStep Partners</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/heathercdahl"><strong>Heather Dahl</strong></a> (CEO)
<ul>
<li>Cofounder of CynjaTech, a data security firm (3 years)</li>
<li>Chairman Emeritus / Board of Directors at National Press Foundation (9 years)</li>
<li>Founder of Kometa, an analyst relations and marketing strategy consulting firm (4 years)</li>
<li>Director of Global Analyst Relations at Neustar (blockchain and data security leadership experience) (4.5 years)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/nathangeorge/"><strong>Nathan George</strong></a> (CTO)
<ul>
<li>Software Architect at Evernym 2016-18</li>
<li>Senior Engineer at Perfect Search and Symantec</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>13 people on the Board of Trustees</strong>, consisting of representatives of people and organizations who own identities on the Sovrin network.</p>
<p><strong>15 people on the Technical Governance Board</strong> (TGB). The TGB reviews technical qualifications of Steward Candidates and is “responsible for governing the design, architecture, implementation, and operation of the Sovrin identity network as a global public utility for self-sovereign identity.”</p>
<hr />
<h3 id="evernym-team"><a href="https://www.evernym.com/our-team/">Evernym Team</a></h3>
<ul>
<li>
<p><a href="https://www.linkedin.com/in/tobinandrew">Andy Tobin</a> (Managing Director, Europe)</p>
</li>
<li><a href="https://www.linkedin.com/in/danielhardman">Daniel Hardman</a> (Chief Architect)</li>
<li><a href="https://www.linkedin.com/in/drummondreed">Drummond Reed</a> (Chief Trust Officer)
<ul>
<li>Founder of Respect Network (acquired by Evernym)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/elizabethrenieris">Elizabeth M. Renieris</a> (Global Policy Counsel)</li>
<li><a href="https://www.linkedin.com/in/jamesmonaghan">James Monaghan</a> (VP, Product)</li>
<li><a href="https://www.linkedin.com/in/jasonalaw">Jason Law</a> (Co-founder, CTO, Chairman)</li>
<li><a href="https://www.linkedin.com/in/steve-havas-6501212">Steve Havas</a> (Chief Operating OFficer)</li>
<li><a href="https://www.linkedin.com/in/stevejackson2018">Steve Jackson</a> (VP of Engineering)</li>
<li><a href="https://www.linkedin.com/in/rufftim">Timothy Ruff</a> (Co-founder, CEO)
<ul>
<li>Evernym April 2013</li>
</ul>
</li>
</ul>
<p>49 other team members listed on the website.</p>
<hr />
<h3 id="sovrin-stewards"><a href="https://sovrin.org/stewards/">Sovrin Stewards</a></h3>
<p>Stewards are “trusted organizations within the ecosystem who have agreed to abide by the requirements in the Sovrin Trust Framework and are responsible for operation the nodes that maintain the Sovrin distributed ledger.” They also accept/reject changes to the ledger codebase.</p>
<p>The stewards consist of companies from all over the world (all continents except Antarctica and Australia) and many industries (financial service, university, blockchain, consulting, legal, tech, certifying authority, credit union, cybersecurity, payments, data, KYC, identity)</p>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Identity platforms are sensitive to network effects, due to requiring buy-in from three sides: <strong>users</strong>, <strong>verifiers</strong> (eg. companies evaluating or trusting the claim), and <strong>issuers</strong> (eg. government entity issuing credentials).</p>
<p>Sovrin has <strong>solved the chicken and egg problem by forming the most partnerships</strong> I have seen for a crypto project in this fundraising stage. These partners will not only act as verifiers and issuers, thus seeding demand within the tokenomics, but also maintain the functionality of the network by participating in ledger governance and node hosting. These partners are called “stewards,” which includes at least <strong>39 listed organizations</strong>, such as Cisco (potential verifier), IBM (potential verifier), Veridium (potential issuer), and InfoCert (potential issuer) (<a href="https://sovrin.org/stewards/">full list here</a>).</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<p><img src="/images/sovrin1.png" alt="image-20181108005723929" /></p>
<p>When a <strong>verifier</strong> accepts a credential from a credential <strong>presenter/owner</strong>, both the verifier and the presenter receive real value from the <strong>issuer</strong> of the credential.</p>
<p>In the current world, every verifier has to set up a payment account with every issuer. For example, a potential tenant or a landlord would have to pay a credit agency to get a credit report. Separately, they would have to pay a background check service to get a background check. While this makes sense for higher risk (eg. being stuck with a bad tenant in a contract) situations, lower value situations (social media verifications, LinkedIn endorsements) are often overlooked.</p>
<p>High risk/high value credentials in a high friction market means large, centralized, credential issuers, who also happen to store a lot of personal data – a huge target for hackers. A low friction market would increase low risk/low value credential utility, and also encourage credential verification to become commoditized.</p>
<hr />
<p><img src="/images/sovrin3.png" alt="image-20181108011314313" /></p>
<p>Using zero-knowledge proofs in the payment protocol, Sovrin keeps payment metadata private where it needs to be. Issuers don’t know who is using a credential nor where it’s being used.</p>
<hr />
<p><img src="/images/sovrin2.png" alt="image-20181108012247214" /></p>
<p>“Digital credentials paid for with the Sovrin token could also be insured with the Sovrin token.” Insurers have the capability to do risk assessment on issuers, reflected in their pricing and possibly become a repuation signal that verifiers can rely on.</p>
<hr />
<p><img src="/images/sovrin4.png" alt="image-20181108012702549" /></p>
<p>Since credential owners control the data, Sovrin opens up the possibility of a marketplace for customer data controlled by the subject of the data.</p>
<h2 id="codetechcommunity">Code/Tech/Community</h2>
<p>This section is usually titled “Code” only, but there’s something to be said about how developer friendly this project is. Take a look at the <a href="https://github.com/hyperledger/indy-sdk/blob/master/doc/getting-started/getting-started.md#apply-for-a-job">Developer’s Getting Started Guide with LibIndy</a>. I’ve only seen this level of documentation from large scale open source projects. In addition, Sovrin hosts a <a href="https://zoom.us/j/232861185">group video call every Thursday at 3pm UTC</a>.</p>
<p>Sovrin also has a ton of documentation to help newcomers understand the architecture of the system. Here’s a clear spec with well defined flows for all users, which demonstrates the level of detail with which this project is designed: <a href="https://github.com/hyperledger/indy-sdk/blob/677a0439487a1b7ce64c2e62671ed3e0079cc11f/doc/design/005-dkms/DKMS%20Design%20and%20Architecture%20V3.md"><strong>DKMS (Decentralized Key Management System) Design and Architecture V3</strong></a>.</p>
<p>The high level design is well thought through and explained in a straightforward manner in the <a href="https://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf">whitepaper</a>. The spec includes pairwise-pseudonymous identifiers, off-chain private data storage, and zero knowledge proofs, which solves some long-term problems that some other identity projects do not consider.</p>
<hr />
<h3 id="repositories">Repositories</h3>
<p>Distributed Ledger:</p>
<ul>
<li><a href="https://github.com/hyperledger/indy-node">indy-node</a>: indy-plenum based implementation of distributed ledger</li>
<li><a href="https://github.com/hyperledger/indy-plenum">indy-plenum</a>: Identity system specific distributed ledger technology based on <a href="https://pakupaku.me/plaublin/rbft/5000a297.pdf">RBFT</a></li>
</ul>
<p>Client Tools:</p>
<ul>
<li><a href="https://github.com/hyperledger/indy-sdk">indy-sdk</a>: Contains client and anoncreds implementation</li>
<li><a href="https://github.com/hyperledger/indy-agent">indy-agent</a>: Reference agents and associated tools.</li>
</ul>
<p>Shared Components:</p>
<ul>
<li><a href="https://github.com/hyperledger/indy-hipe">indy-hipe</a>: Hyperledger Indy Project Enhancements</li>
<li><a href="https://github.com/hyperledger/indy-crypto">indy-crypto</a>: Shared crypto library based on <a href="https://github.com/milagro-crypto/amcl">AMCL</a></li>
</ul>
<p>With such a complex and long-running project, it’s very difficult to dig into each individual file in each individual repository to get a mental model of how everything fits together as I typically do for other projects. It also comes with diminishing returns, since we can already grasp how strong the tech is based on the thoughtfulness of the design documentation. A quick scan through all the repositories show that there is a ton of progress, everywhere, with the biggest code contributions from active team members.</p>
<hr />
<h3 id="technical-roadmap"><a href="https://wiki.hyperledger.org/projects/indy/roadmap">Technical roadmap</a></h3>
<p><img src="/images/sovrin5.png" alt="image-20181108014816138" /></p>
<h2 id="conclusion">Conclusion</h2>
<p>Universal digital identity and verifiable claims enables innovation that offers more automation, efficiency, and privacy.</p>
<p>Sovrin is a strong contender, by bringing not only an experienced team, but also countless value-add partnerships, a very well thought through technical design, and <em>very significant</em> technical progress. For the longer term, they are also doing everything right when it comes to developer community development; it’s clear the team knows that adoption is everything when it comes to making new standards.</p>
<p>The tokenomics make sense to me.</p>
<p>I have some concerns about the delay of the token launch, which was meant to be in July 2018, now slated for Q1 2019. This may be due to fundraising taking longer than expected as a result of difficult market conditions.</p>
<h2 id="other-info">Other Info</h2>
<ul>
<li>The “technical paper” is not released yet, but there is a lot of technical documentation and code that is self-documented.</li>
</ul>BlepcoinSovrin is a decentralized, global public utility for self-sovereign identity and verifiable claims. In other words, Sovrin is a protocol for sharing and verifying identities, and associating them with additional credentials such as education status, passport data, and driver license data. Due to the sensitive nature of this data, Sovrin utilizes cryptography to make the data private yet verifiable.MetaHash2018-08-30T00:00:00+00:002018-08-30T00:00:00+00:00https://www.blepcoin.com/2018/08/30/metahash<p>#MetaHash is a network for sharing digital assets and a dapp platform, claiming the following features:</p>
<ul>
<li>validation rate under 3 seconds</li>
<li>50000 tps</li>
<li>5 different consensus algorithms</li>
<li>decentralized</li>
<li>supports erc20 tokens</li>
</ul>
<p>There are 4 components of the system.</p>
<ol>
<li>TraceChain: the blockchain</li>
<li>#MetaApps: Decentralized applications</li>
<li>#MetaGate: Wallet + dApp directory</li>
<li>#MetaHashCoin: the coin</li>
</ol>
<h2 id="token-metrics">Token metrics</h2>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>There are countless other projects competing in dapp platform space. However, Ethereum is still the biggest and has the network effects.</p>
<blockquote>
<p>#MetaHash block anchors in Bitcoin and Ethereum networks</p>
</blockquote>
<p>I don’t see many other projects offering this.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<blockquote>
<p>#MetaHash is an open-team structured project, which welcomes all people and companies.</p>
</blockquote>
<blockquote>
<p>More than 150 members already joined #MetaHash</p>
</blockquote>
<p>https://metahash.org/#teambanner</p>
<ul>
<li><strong><a href="https://www.linkedin.com/in/glebnikitin/">Gleb Nikitin</a></strong>, (Cofounder & CRO)
<ul>
<li>Founder of AdSniper</li>
<li>Previously CEO of Dozory</li>
<li>Economics at Univ. of Mannheim ‘01</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/oleg-romanenko/">Oleg Romanenko</a></strong>, (CSA & Server side developer)
<ul>
<li>System Architect/ Server side developer at AdSniper</li>
<li>Previously senior System Analyst at Alfa-Bank</li>
<li>MS CS at Volgograd State Technical University ‘08</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/valtasar/">Mikhail Zarutskiy</a></strong>, (CTO)
<ul>
<li>CTO at AdSniper</li>
<li>Volgograd State Technical University ‘13</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/raylyan/">Sergey Raylyan</a></strong>, (CIO)
<ul>
<li>COO & Project Manager at AdSniper</li>
<li>MEng. and Tech at Volgograd State Technical University ‘08</li>
</ul>
</li>
<li>
<p><em>and 29 other employees at AdSniper</em></p>
</li>
<li><strong><a href="https://www.linkedin.com/in/vladimir-bashkin-18877678/">Vladimir Bashkin</a></strong>, (CMO)
<ul>
<li>CEO and New Business Director of AdNow</li>
<li>Advisor of Token.Ad</li>
<li>Management in the field of Internet technologies at RMA Business School ‘10</li>
</ul>
</li>
<li>
<p><em>and 92 other employees at AdNow</em></p>
</li>
<li><strong><a href="https://www.linkedin.com/in/anton-agranovsky-57427a15a/">Anton Agranovsky</a></strong>, (Cofounder & CBDO)
<ul>
<li>Founder & President of Agranovsky IT</li>
<li>Previously Founder & CEO of Destiny Development</li>
<li>International Management at Institute of Economics and Culture ‘09</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/gennady-yakunin-9967ab166/">Gennady Yakunin</a></strong>, ()
<ul>
<li>CEO of Agranovsky IT</li>
<li>experience in gaming projects</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/svetlana-rudenok-4617b1166/">Svetlana Rudenok</a></strong>, ()
<ul>
<li>Deputy CEO of Agranovsky IT</li>
<li>experience in gaming projects</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/andrey-korostelev-2245a699/">Andrey Korostelev</a></strong>, ()
<ul>
<li>CFO of Agranovsky IT</li>
<li>experience in financial management of IT and gaming projects</li>
</ul>
</li>
<li><em>and 11 other employees at Agranovsky IT</em></li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>#MetaHash has several teams, a total of 150 people, working on this project.</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<h4 id="forging">Forging</h4>
<blockquote>
<ul>
<li>50% of all #MetaHashCoins will be distributed over 10 years by forging. That is exactly 4,600,000,000 #MHC.</li>
<li>708,400,000 #MHC (or 15.4% of the total forging pool of all time, or 7.7% of the #MHC total number) will be distributed among the forging participants within the first year after the start. The fewer coins are used in forging, the higher rewards for the participants.</li>
<li>70,840,000 #MHC (or 10% of the reward from the forging pool) will go to those who have #MetaGate active and at least 100 #MHC in their wallet. If you don’t have much money, the best way for you to earn #MHC is to use #MetaGate every day (by launching it on your computer).</li>
<li>637,560,000 #MHC (or 90% of the reward from the forging pool) will go to those who have 100,000 #MHC and more in their wallets.</li>
</ul>
</blockquote>
<h4 id="other">Other</h4>
<p>CPU time, data storage, data transmission.</p>
<h2 id="code">Code</h2>
<p>#MetaHash has 2 github accounts, 1 public and 1 private.</p>
<h4 id="private-account">Private account:</h4>
<p>Unfortunately, I’m unable to share any insights from the repo metadata since it looks like there is no git history.</p>
<p>With that said, there is a substantial amount of well-organized code, all in C++.</p>
<p><img src="/images/metahash1.png" alt="image-20180830164140664" /></p>
<p>The private account has 4 repos. You may notice that the names of all the repos except meta-node-proxy correspond with node types in the network.</p>
<p><img src="https://static.metahash.org/img/graphical/speeds-grafical.jpg" alt="img" /></p>
<hr />
<p><strong><a href="https://github.com/MetaHashPrivate/meta-node-proxy">meta-node-proxy</a></strong> (446 lines): an http server that validates and queues transactions for the verification nodes, and logs metrics.</p>
<hr />
<p><strong><a href="https://github.com/MetaHashPrivate/meta-node-torrent">meta-node-torrent</a></strong> (28 C++ files, 6904 lines): Saves blockchain to leveldb. Torrent nodes transmit data between the wallet and other nodes.</p>
<p><img src="/images/metahash4.png" alt="image-20180831001947002" /></p>
<p>(list of meta-node-torrent source files with line counts for each file)</p>
<p> Starting at <code class="language-plaintext highlighter-rouge">main.cpp</code>: It reads the config file, sets up statistics reporting, starts a LevelDB instance, and starts synchronizing everything. Finally, it starts the server thread:</p>
<p><img src="/images/metahash2.png" alt="image-20180830175849276" /></p>
<p>I wasn’t able to find the Sniper library that this uses, as shown in <code class="language-plaintext highlighter-rouge">Server.h</code>,</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>```cpp
#include <sniper/mhd/MHD.h>
# ...
class Server: public sniper::mhd::MHD {
# ...
}
```
</code></pre></div></div>
<p>but there is still a good amount of info we can gather from <code class="language-plaintext highlighter-rouge">Server.cpp</code>. It implements the following functions callable through http (defined below the code in this screenshot but private for now):</p>
<p><img src="/Users/allie/src/blepcoin/images/metahash3.png" alt="image-20180831000043752" /></p>
<p>Other files of note in this repo include <code class="language-plaintext highlighter-rouge">P2P*</code> (handling the peer to peer communication and pushing transactions to a queue) and <code class="language-plaintext highlighter-rouge">synchronize_blockchain.cpp</code> (reading from the tx queue and synchronizing with a local LevelDb cache and cdn). These 2 files form what #MetaHash calls <strong>#MetaSync</strong>.</p>
<blockquote>
<p><strong>#MetaSync</strong> data synchronization subsystem allows complete and integral data updating around the world in under 3 seconds</p>
</blockquote>
<hr />
<p><strong><a href="https://github.com/MetaHashPrivate/meta-node-verif">meta-node-verif</a></strong> (1 C++ file, 305 lines):</p>
<p><code class="language-plaintext highlighter-rouge">main.cpp</code> runs an http server that reads and process transactions.</p>
<hr />
<p><strong><a href="https://github.com/MetaHashPrivate/meta-node-core">meta-node-core</a></strong> (4 C++ files, 1526 lines):</p>
<p><img src="/images/metahash5.png" alt="image-20180831012540626" /></p>
<h4 id="public-repo">Public repo:</h4>
<p>https://github.com/metahashorg</p>
<p><strong><a href="https://github.com/metahashorg/metagate">#Metagate</a></strong>: #MetaHash wallet code</p>
<p>476 commits. There is a lot of code here but wallet/client code isn’t as interesting or critical as node code. This repo was started on <a href="https://github.com/metahashorg/metagate/graphs/contributors">May 20, 2018</a> but the <a href="https://github.com/metahashorg/metagate/commit/58002f9c00bcce5ad979ce58caf4e84a67e0f4b3">first commit</a> shows there was work from before existing git history. Git history shows that the team is making active progress in this repo.</p>
<h2 id="conclusion">Conclusion</h2>
<p>The blockchain has substantial code behind it, all written from scratch (not a fork of anything else). #MetaApps are not ready yet as far as I can tell, and the way it’s explained it seems more like a decentralized cloud than a smart contract platform.</p>
<p>One of the biggest differentiating factors #MetaHash claims is that it is faster and more decentralized, while still maintaining security. I would love to see if #MetaHash published a test set-up and report to prove these numbers, because otherwise this is a very difficult space to compete in.</p>
<p>#MetaHash says that it uses block anchors in the Bitcoin and Ethereum networks to increase security; however, I was not able to find the implementation in code.</p>
<p>Another differentiating factor is #MetaApps, which #MetaHash claims can run with using any programming language. To me, it sounds like it plays a different role than smart contracts, but the team uses them interchangably. Due to this, I’m not sure if #MetaHash should be categorized as a dapp platform as opposed to a decentralized cloud platform.</p>
<h2 id="other-info">Other Info</h2>Blepcoin#MetaHash is a network for sharing digital assets and a dapp platform, claiming the following features:Metadium2018-08-14T00:00:00+00:002018-08-14T00:00:00+00:00https://www.blepcoin.com/identity/2018/08/14/metadium<p>Metadium is a project focused on solving one of the oracle problems in blockchain: <strong>identity</strong>. With a Proof of Authority consensus, Metadium uses a set number of accredited nodes to verify the relationship between a physical identity and virtual identity.</p>
<p>Metadium is a product by <a href="https://www.coinplug.com/">Coinplug</a>, which was founded in Oct 2013.</p>
<p>Coinplug ”provides bitcoin exchange, wallet, okBitcard and payment processor services targeting Korea and the Asian market.”</p>
<h2 id="token-metrics">Token metrics</h2>
<p>https://medium.com/metadium/announcement-metadium-s-token-metrics-curiosity-resolved-7a457754e1de</p>
<p>$35M USD for 50% of tokens sold in the institution round</p>
<p><img src="/images/metadium3.png" alt="token_dist" /></p>
<h2 id="market-opportunity">Market opportunity</h2>
<h4 id="identity-on-blockchain">Identity on blockchain</h4>
<p>“Identity on blockchain” is a bottleneck, preventing a whole category of dapps from being made. In the non-blockchain world, consider how widespread a few <a href="https://oauth.net/2/">oauth2</a> providers are; Oauth2 is the reason why you can login to 3rd party websites using your Google/Facebook/Twitter credentials. There is no standard for blockchain yet.</p>
<h4 id="solving-sybil-attacks">Solving sybil attacks</h4>
<p><a href="https://en.wikipedia.org/wiki/Sybil_attack">Sybil attacks</a> are attacks “wherein a <a href="https://en.wikipedia.org/wiki/Reputation_system">reputation system</a> is subverted by forging identities in <a href="https://en.wikipedia.org/wiki/Peer_to_peer">peer-to-peer</a> <a href="https://en.wikipedia.org/wiki/Computer_network">networks</a>.” Consider any polling or voting website - you can usually vote as many times as you want. For slightly more sophisticated systems, you might need to clear your cookies, change your IP address, or register a few more Facebook accounts. How do you design a secure system to prevent this?</p>
<p>For non-blockchain, solutions already exist. All that services need to do is cross reference their data with data at <em>centralized</em> entities, which serve as identity authorities; for example, government organizations and credit agencies.</p>
<p>For dapps, the solution is much more difficult to achieve. Being on decentralized networks, relying on a centralized oracle creates an unacceptable security risk. A decentralized network cannot easily be reset/reverted if a centralized system it depends on is compromised.</p>
<h2 id="competitive-analysis">Competitive analysis</h2>
<ul>
<li><strong><a href="https://sovrin.org/">Sovrin</a></strong>: The Sovrin Foundation has <a href="https://sovrin.org/stewards/">many large companies</a> running validator nodes already, including law firms, crypto ecosystems, security firms, and financial firms. In addition, <a href="https://outlierventures.io/microsoft-announces-sovrin-partnership/">Microsoft publicly presented Sovrin tech being integrated into their Authenticator app</a>. The Sovrin codebase is open-source and part of the <a href="https://www.hyperledger.org/">Hyperledger Foundation</a>.</li>
<li><strong><a href="https://www.civic.com/">Civic</a></strong>: Raised $33M, acquired Identity.com.</li>
<li><strong><a href="https://www.bridgeprotocol.io/">Bridge Protocol</a></strong></li>
<li><strong><a href="https://www.uport.me/">uPort</a></strong></li>
</ul>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<ul>
<li><a href="https://www.linkedin.com/in/justin-park-3176403a/">Justin Park</a> (CEO)
<ul>
<li>Joined Metadium in 2018</li>
<li>Experience in BD, Mobile and Online Gaming, Business Strategy, and Venture Capital</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/ryan-uhr-16a39339/">Ryan Uhr</a> (cofounder)
<ul>
<li>CEO of Coinplug</li>
<li>Experience as a CTO/founder of Celizion, project manager (Cisco), and engineer (Hyundai)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/richard-yun-15a82864/">Richard Yun</a> (cofounder COO)
<ul>
<li>Experience as a CEO (Conaxtech), Financial analyst (Cisco)</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/jeffrey-joo-han-song-35a9689a/">Jeffrey Song</a> (CTO Metadium, CSO Coinplug)
<ul>
<li>Joined Coinplug in Oct 2014 as CSO</li>
<li>Became CTO of Metadium in Sep 2017</li>
<li>Senior engineer at Samsung</li>
<li>PhD Computer Engineering University of British Columbia</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/songyilee/">Songyi Lee</a> (CSO)
<ul>
<li>Founder of Zentrepreneurs, cofounder of 37coins</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/gigenie/">Genie Bang</a> (Blockchain Developer)
<ul>
<li>“Expert at followings: Bitcoin, Ethreum, Blockchain Ethereum Smart Contract,Solidity Hyperledger Fabric Hyperledger Fabric composer Dapp developer others : c++, node.js, go,python, iOS-objectc&swift”</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/mansud/">Mansud Jeon</a> (MetaID App Developer)
<ul>
<li>Hanyang University</li>
<li>13 years of application development</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/yongwook-shin/">Eric Shin</a> (MetaID App Developer)
<ul>
<li>Chief Researcher at Coinplug</li>
<li>Server Developer at Metadium</li>
</ul>
</li>
<li><a href="https://github.com/hexoul">Seunggon Kim</a> (MetaID Server Developer)</li>
<li><a href="https://github.com/ariathink">Benjamin Han</a> (MetaID App Developer)</li>
<li><a href="https://www.linkedin.com/in/jessica-jumin-lee-a26281122/">Jessica Lee</a> (Product Manager)</li>
<li><a href="https://www.linkedin.com/in/victoria-shangina/">Victoria Shangina</a> (Graphic Designer)</li>
<li><a href="https://www.linkedin.com/in/natalie-nayeon-lim-64001012a/">Natalie Lim</a> (Finance Specialist)</li>
<li><a href="https://www.linkedin.com/in/2youngkim/">Young Kim</a> (Strategic Planner/Partnership Manager)</li>
<li><a href="https://www.linkedin.com/in/sungjun-calvin-park-a8a753b8/">Calvin Park</a> (Business Development)</li>
<li><a href="">Jun Byeon</a> (Business Development)</li>
</ul>
<h4 id="advisors">Advisors</h4>
<p>Bo Shen (Founding Partner of FenBushi Capital)</p>
<p>Roger Ver (CEO of Bitcoin.com)</p>
<p>Jack Liu (Managing Director at Circle)</p>
<p>Vincent Zhou (Founding Partner of FBG Capital)</p>
<p>Renqi Shen (CIO of BlockAsset)</p>
<p>Renqi Shen (CIO of BlockAsset)</p>
<p>Kyungmo Kim (Director at Mirae Asset)</p>
<p>Yiseul Cho (Founder of Perceptra)</p>
<p>Brian Lio (CEO of Smith + Crown)</p>
<p>Matt Chwierut (Research Director at Smith + Crown)</p>
<h4 id="investors-and-partners">Investors and Partners</h4>
<p>BlockAsset, FBG, Smith + Crown, Kenetic Capital, 500 Startups, Blocktower, Connect Capital, Arrington XRP Capital, #HASHED, GBIC, Chainrock, Blueblock, Block Crafters Capital, 1kx, J Lab,了得资本, Blockchain Insight Corp, PreAngel, Fission Capital, Alice Capital</p>
<h4 id="partnerships">Partnerships</h4>
<ul>
<li>Technology Partner (Coinplug)</li>
<li>Unity</li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>As a blockchain company that has been around since 2013, Coinplug has already dealt with many of the growing pains other ICOs need to go through. The engineering team is already sizeable, and their advisors include some of the most well known people in crypto. The roster suggests that Metadium will have strong pre and post-ICO support.</p>
<p>The Unity partnership is very interesting because it means Metadium’s go to market strategy is more on the consumer market, unlike Sovrin, which is focusing on the enterprise market.</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<p>META tokens are used as transaction fees, as part of every on-chain activity. These fees go to the nodes, aka block producers.</p>
<p><strong>Block Producers (Nodes)</strong> are rewarded for producing blocks and securing the network.</p>
<p>Tokens are also spent for the attestation service: when <strong>users</strong> want to link or update identity data on the network.</p>
<p><strong>Service Proivders</strong> reward users with META in return for using the identity data.</p>
<h2 id="code">Code</h2>
<p>As of 08-14-2018…</p>
<p>There is a private repo along with a public repo hosted on Github. Here is an overview of both:</p>
<p><strong>Private repo</strong>:</p>
<p><img src="/images/metadium1.png" alt="image-20180814184614176" /></p>
<ul>
<li><strong>MetadiumIdentityManager.sol</strong>: Create/Update/Restore/Delete MetaIDs, with a couple other utility functions. Uses the MetadiumNameService.sol to determine who has permission to create MetaIDs.</li>
<li><strong>MetaID.sol</strong>: A simple <a href="http://erc721.org/">ERC721</a> token for each person</li>
<li><strong>MetadiumNameService.sol</strong>: A mapping of contracts and permissions. Early, barebones smart contract.</li>
<li><strong>Migrations.sol</strong>: Included in Truffle</li>
</ul>
<p><strong>Public repo: https://github.com/METADIUM/go-metadium</strong></p>
<p>35 commits ahead of ethereum/go-ethereum</p>
<p>Let’s look at <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master">changes since the fork from geth</a>.</p>
<ul>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-37def8a8c5ffccd7af569d23609a15ba">cmd/geth/main.go</a></strong>: Starting here, it looks like additional flags have been added to the starting geth, including options for consensus method, metadium abi, fixed difficulty, fixed gas limit, max idle block, and blocks per turn. This also starts the metadium Admin.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-573372fa53f905d0b9c24e293e9bd9ed">metadium/admin.go</a></strong>: This file provides a golang wrapper for the admin smart contracts. A lot of <code class="language-plaintext highlighter-rouge">callContract()</code> calls, utility functions, and data structure wrangling.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-c69b7910eba2a444d250d91a31f1ec8c">metadium/contracts/MetadiumAdmin-template.sol</a></strong>: Admin contract for Metadium. It currently has the functionality to retrieve member info (<code class="language-plaintext highlighter-rouge">getMember</code>), retrieve node info (<code class="language-plaintext highlighter-rouge">getNode</code>), add member (<code class="language-plaintext highlighter-rouge">memberLinkAppend</code>), add node (<code class="language-plaintext highlighter-rouge">nodeLinkAppend</code>), and some other helper functions around members and nodes.</li>
</ul>
<p><strong>The above files are the core files for metadium admin in the go-metadium repo</strong>. The following are additional minor changes</p>
<ul>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-bd5cec6cd9f7925a20436c690aebb950">cmd/geth/metadiumcmd.go</a></strong>: Implementation of the Metadium command line tool, to <a href="https://github.com/METADIUM/go-metadium/blob/e73296ef0516a62c8921748049984c3775527055/cmd/geth/metadiumcmd.go#L133">create new account</a>, <a href="https://github.com/METADIUM/go-metadium/blob/e73296ef0516a62c8921748049984c3775527055/cmd/geth/metadiumcmd.go#L167">create new node</a>, <a href="https://github.com/METADIUM/go-metadium/blob/e73296ef0516a62c8921748049984c3775527055/cmd/geth/metadiumcmd.go#L204">load a genesis config</a>, and <a href="https://github.com/METADIUM/go-metadium/blob/e73296ef0516a62c8921748049984c3775527055/cmd/geth/metadiumcmd.go#L287">generate an admin contract</a>.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-e226000964244889df127e5b44dbf192">consensus/ethash/consensus.go</a></strong>: Handle rewards for miners</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-24a75112644bf1ce0c42f946c85f4883">core/block_validator.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-30184e52dfee0fbd0ba21f92638b2ec1">core/blockchain.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-098503a6b87af6fb8b2cd5ee21836393">core/chain_makers.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-3e8301305b1dc6d3f96fbe3429cda929">core/genesis.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-5b5942d1b7feac47d38b879796555098">core/state_processor.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-a00eec40193556e0c2f37e12cef3ff44">core/state_transition.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-c0c6d99fe3ec43758148a3295abbb1e1">core/gen_genesis.go</a>, <a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-0ffe1dc110df905806cd3ebebe73eacd">core/types/gen_header_json.go</a></strong>: Include <code class="language-plaintext highlighter-rouge">fees</code> and <code class="language-plaintext highlighter-rouge">rewards</code> in each block and verify they are correct.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-f4ca109712cf3783a7b87d2a20d6f279">metadium/miner/miner.go</a></strong>: Not much here yet.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-022de9e42ab12076a49c3a7b9b86043e">metadium/scripts/gmet.sh</a></strong>: script to start <code class="language-plaintext highlighter-rouge">gmet</code> with config options and smart contracts. Has options to start nodes via SSH.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-83814d75e37ea3b4eb16ffc7202295d3">miner/worker.go</a></strong>: The only addition is to not create a new block if there’s no work to do.</li>
<li><strong><a href="https://github.com/ethereum/go-ethereum/compare/master...METADIUM:master#diff-9333767b602263d799081cc2b59fa874">node/api.go</a></strong>: Added <code class="language-plaintext highlighter-rouge">PeerInfo</code> and <code class="language-plaintext highlighter-rouge">MetadiumInfo</code>, to provide info in the api.</li>
</ul>
<h2 id="conclusion">Conclusion</h2>
<h4 id="what-is-done">What is done:</h4>
<ul>
<li>Some core components of a Proof of Concept have been written: smart contracts for managing MetaIDs, permissions, admin functions, along with a fork of geth that adds support for the Metadium admin and admin smart contract.</li>
<li>This project is at the stage where “self-sovereign ID creation service flow” (below image) is within reach.</li>
</ul>
<p><img src="/images/metadium2.png" alt="img" /></p>
<h4 id="what-isnt-done-yet">What isn’t done yet:</h4>
<ul>
<li>Providers still need a way to store hashed sensitive identity data on the blockchain, in a way that’s consumable by other entities using Metadium. This part might be tricky.</li>
<li>Permissions: MetadiumNameService.sol needs to be fleshed out with more permissions.</li>
<li>The attestation part of the project is not done yet.</li>
</ul>
<p><img src="/images/metadium4.png" alt="img" /></p>
<p>Metadium has the core technical parts necessary to start fulfilling some use cases, where Agency attestation is not yet necessary. However, there is still some work to be done in order to get full functionality as described in the whitepaper.</p>
<p>I’m looking forward to see who participates as a Proof of Authority node, and which partnerships Metadium brings on, as they play a significant role in this project.</p>BlepcoinMetadium is a project focused on solving one of the oracle problems in blockchain: identity. With a Proof of Authority consensus, Metadium uses a set number of accredited nodes to verify the relationship between a physical identity and virtual identity.Akash2018-07-26T00:00:00+00:002018-07-26T00:00:00+00:00https://www.blepcoin.com/cloud/2018/07/26/akash<p>Akash is an on-chain auction marketplace for off-chain container deployments. Targeting current cloud providers (eg. AWS and Google Cloud), Akash provides the tools to utilize idle datacenter capacity, and provide a cheaper alternative.</p>
<p>For <strong>users</strong>, the interface will be similar to any other cloud compute platform. Users define a deployment criteria (resources and price).</p>
<p>For <strong>providers</strong>, the onboarding process involves installing the Akash agent (based on <a href="https://coreos.com/">CoreOS</a>) on idle servers and programmatically bidding on new deployments.</p>
<h2 id="token-metrics">Token metrics</h2>
<p>tbd</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>There are several competitors in this space at varying stages of progress, but most are targeting supercomputer or highly distributed workloads whereas Akash is targeting more common enterprise workloads (eg. running an application server or anything you might deploy onto AWS or Google Cloud).</p>
<ul>
<li><a href="https://golem.network/">Golem</a>: decentralized supercomputer</li>
<li><a href="https://sonm.com/">Sonm</a>: focusing on more distributed computing (eg. machine learning, cdn/video streaming, video rendering)</li>
<li><a href="https://iex.ec/">iExec</a>: Ethereum cloud made for DApps and very large parallel applications (HPC, AI, big data, scientific sims, 3d rendering, fog computing)</li>
<li><a href="https://dfinity.org/">Dfinity</a>: decentralized supercomputer</li>
<li><a href="https://hypernetwork.io/">Hypernet</a>: “tailored for large-scale distributed compute environments”</li>
<li><a href="https://0chain.net/">0chain</a></li>
</ul>
<p><a href="https://blog.akash.network/2018/05/30/akash-vs-the-grid/">Akash has a blog post regarding their competition here.</a></p>
<p>The only real competitor I know of that is targeting similar workloads is</p>
<ul>
<li><a href="https://www.symbioses.io/">Symbioses</a>: the team has told me that they are targeting not only supercomputer workloads but also general purpose workloads. More info upcoming in another post.</li>
</ul>
<p>Akash also mentioned that part of their market is technology providers who don’t yet offer hosted/managed services.</p>
<p><strong>Go to market strategy</strong>: <a href="https://en.wikipedia.org/wiki/Continuous_integration">CI</a>/<a href="https://en.wikipedia.org/wiki/Continuous_delivery">CD</a> + testing, since it is usually a less critical system. I think it’s a great way to build a developer community and an easy sell to companies if the integration is simple.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<p>(<strong>Akash is a project by Overclock Labs</strong>)</p>
<ul>
<li><strong><a href="https://www.linkedin.com/in/gosuri/">Greg Osuri</a></strong>, (Founder & CEO)
<ul>
<li>Cofounder & CTO at <a href="https://angelhack.com/">AngelHack</a></li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/abozanich/">Adam Bozanich</a></strong>, (Founder & CTO)
<ul>
<li>Previously Cofounder and Tech Lead at Sprouts Tech</li>
<li>holds a US patent for network protocol fuzzing</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/gregorygopman/">Gregory Gopman</a></strong>, (Cofounder)
<ul>
<li>CEO of ICO Roadshows</li>
<li>Cofounder of <a href="https://angelhack.com/">AngelHack</a></li>
<li>Bachelor’s Marketing at Univ. of Florida ‘07</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/aastein1/">Aaron Stein</a></strong>, (Software Engineer)
<ul>
<li>BS Chem. Eng. at UC Riverside ‘15</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/munjals/">Munjal C. Shah</a></strong>, (Business Development)
<ul>
<li>Cofounder at Cross Border Deal Flow</li>
<li>BA Chemistry & Psychology at Northwestern University ‘09</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/nalesandro/">Nick Alesandro</a></strong>, (VP of Product)
<ul>
<li>BS Nutritional Science at Cornell ‘91</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/allison-silber-81804340/">Allison Silber</a></strong>, (Head of Operations)</li>
</ul>
<p><strong>Advisors and Investors</strong></p>
<ul>
<li>CrunchFund</li>
<li>Hone</li>
<li>Auren Hoffman (Frm. CEO of LiveRamp, Frm. Cofounder of BrightRoll)</li>
<li>Steven Fan (Head of Investments, Tencent)</li>
<li>Charles Songhurst (Frm. Head of Global Strategy, Microsoft)</li>
<li>Jaron Lukasiewicz (Former CEO of Coinsetter)</li>
<li>Brandon Goldman (Frm. Founder, Freshpay, Frm. Lead Software Architect, Blockfolio)</li>
</ul>
<p>Akash has 5 companies in pilot, including Packet, Life360, and Polyverse.</p>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Some of the advisors are founders of companies that have underutilized datacenters, or want to use Akash to lower their costs.</p>
<p>Greg Osuri (CEO) is Cofounder of AngelHack, which means Akash has immediate access to a huge pool of engineering talent.</p>
<p>Mostly compatible with Kubernetes configuration, so migration/onboarding should be simple. Easy for potential tenants to scale their workloads in from existing cloud platforms.</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<p><strong>Medium of exchange</strong>: providers and users interact across an auction system, where providers set a minimum price for their resources and users set a maximum price for needed resources.</p>
<p><strong>Staking</strong>: anyone can join the network, so there is risk of bad actors.</p>
<p><strong>Tenant</strong>, <strong>Datacenter</strong> (providers), <strong>Validator</strong> (DPoS consensus), <strong>Marketplace Facilitator</strong> (runs auction)</p>
<h2 id="code">Code</h2>
<p>https://github.com/ovrclk/akash</p>
<hr />
<p><a href="https://github.com/ovrclk/akash/graphs/contributors"><img src="/images/akash1.png" alt="contributors" /></a></p>
<p>This is good - the CEO, CTO, and main engineer have the most contributions in this git repo, and the project was started September 2017.</p>
<hr />
<p>First let’s take a look at the <a href="https://github.com/ovrclk/akash/blob/master/Makefile">Makefile</a>, to know where to begin.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/Makefile"><img src="/images/akash2.png" alt="makefile" /></a></p>
<p>Also, look! They have make commands referring to tests and mocks. Tests and mocks are a great sign the team has engineering experience. The repo has tests and mocks sprinkled throughout.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/Makefile"><img src="/images/akash3.png" alt="makefile test" /></a></p>
<p><a href="https://github.com/ovrclk/akash/blob/master/Makefile"><img src="/images/akash4.png" alt="makefile mocks" /></a></p>
<p>Nice!</p>
<hr />
<p>The Makefile refers to <a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/main.go">/cmd/akash/main.go</a>, which seems to be run by both <strong>providers</strong> and <strong>tenants</strong>.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/main.go"><img src="/images/akash5.png" alt="contributors" /></a></p>
<p>It loads the following files:</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/key.go">/cmd/akash/key.go</a>: manage keys</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/send.go">/cmd/akash/send.go</a>: send tokens as a transaction</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/deployment.go">/cmd/akash/deployment.go</a>: send deployment configuration as a transaction and waits for a Fulfillment and Lease. Once Lease is created, the manifest is sent over to the provider. This file also contains functions to update and close deployments.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/provider.go">/cmd/akash/provider.go</a>: create keys for provider, and use Kubernetes to run task. close Fulfillment and Leases.</p>
<p><a href="https://github.com/ovrclk/akash/tree/master/cmd/akash/query">/cmd/akash/query/*</a>: contains functions for getting info on account, deployment, fulfillment, lease, order, and provider.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/status.go">/cmd/akash/status.go</a>: Get latest block height and latest block hash</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/marketplace.go">/cmd/akash/marketplace.go</a>: Listens to events on the marketplace</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/cmd/akash/logs.go">/cmd/akash/logs.go</a>: Logging utils</p>
<hr />
<p>The Makefile also refers to <a href="https://github.com/ovrclk/akash/tree/master/cmd/akashd">/cmd/akashd/main.go</a>, which seems to be run by <strong>validators</strong>. The files in this directory initialize the node, using Tendermint:</p>
<p><a href="https://github.com/ovrclk/akash/tree/master/cmd/akashd/start.go"><img src="/images/akash6.png" alt="akashd" /></a></p>
<hr />
<p><strong><a href="https://github.com/ovrclk/akash/tree/master/manifest">/manifest</a></strong>: signing, verifying, and parsing manifests. Code makes sense.</p>
<p><a href="https://github.com/ovrclk/akash/tree/master/manifest"><img src="/images/akash7.png" alt="manifest" /></a></p>
<hr />
<p><strong><a href="https://github.com/ovrclk/akash/tree/master/marketplace">/marketplace</a></strong>: PubSub subscriber to monitor all transaction events and call individual handlers for each step of a deployment lifecycle. The events come from <a href="https://github.com/ovrclk/akash/blob/master/provider/event/tx.go">/provider/event/tx.go</a>.</p>
<hr />
<p><strong><a href="https://github.com/ovrclk/akash/tree/master/provider">/provider</a></strong>: The code here includes a bid engine, an RPC, and a manifest handler. In addition, this directory contains a key part — the compute cluster management code — in <a href="https://github.com/ovrclk/akash/tree/master/provider/cluster">/provider/cluster</a>.</p>
<p><a href="https://github.com/ovrclk/akash/blob/master/provider/cluster/kube/client.go"><img src="/images/akash8.png" alt="kubernetes stuff" /></a></p>
<hr />
<p>Lastly, I love that they already have CI/CD and coverage workflow all set up.</p>
<p><a href="https://buildkite.com/ovrclk/akash"><img src="https://badge.buildkite.com/85e140e3e8c0257c63d976946b061b805f0f338cdca7b02a9c.svg?branch=master" alt="Build status" /></a><a href="https://codecov.io/gh/ovrclk/akash"><img src="https://codecov.io/gh/ovrclk/akash/branch/master/graph/badge.svg" alt="Coverage" /></a><a href="https://goreportcard.com/report/github.com/ovrclk/akash"><img src="https://goreportcard.com/badge/github.com/ovrclk/akash" alt="Go Report Card" /></a></p>
<h2 id="conclusion">Conclusion</h2>
<p>The code that Akash has is already clearly test-net ready, and includes basically everything the whitepaper says it is supposed to have. It’s a lot simpler than the competitors listed above, but that’s irrelevant because Akash is targeting general purpose workloads instead of supercomputer workloads.</p>
<p>A simplified explanation of what has been created is a <strong>blockchain based on <a href="https://tendermint.com/">Tendermint</a></strong>, with a <strong>protocol for broadcasting and negotiating computing resources</strong>, <strong>managed by a <a href="https://kubernetes.io/">Kubernetes</a> backend</strong>.</p>
<p>However, there is 1 thing I wish Akash had, which is allowing general purpose tasks to be executed on GPUs. I think this is something Symbioses has developed already, which gives them a larger pool of data centers available to them (ie all the existing GPU mining facilities).</p>
<h2 id="other-info">Other Info</h2>
<h5 id="questions-for-the-team">Questions for the team:</h5>
<p>How to verify outcome of computation?</p>
<ul>
<li>Kubernetes logging, most likely. For a majority of jobs, this will need to be handled on the application side by the tenant (eg. error codes, 400/500, latency logging).</li>
</ul>
<p>What does the Manifest file for deployment look like?</p>
<ul>
<li>Similar to kubernetes config files and dockerfiles</li>
</ul>
<p>When is the public version available?</p>
<ul>
<li>“Next few days” as of 07/25/2018</li>
</ul>
<p>Is there benchmarking done for each agent re: latency, cpu speed, memory, storage?</p>
<ul>
<li>Benchmarking is a bit difficult because it can be easy for people to fake. there’s a few options that we’re exploring but the current plan is to encourage people to deploy a healthcheck system as part of their deployment.</li>
</ul>
<p>How is storage dealt with? eg. for machine learning workloads that need a ton of data on my local machine, can the network gain access directly, or do I need to upload to ipfs first?</p>
<ul>
<li>Built-in block storage is currently for “ephemeral” disk space offfered by the providers. Outbound networking is not restricted at the moment so you are free to fetch data from s3 or ipfs if necessary.</li>
</ul>
<p>Do GPU workloads work yet / planned to be supported? I know Google cloud kubernetes supported gpu with their custom addon, but wasn’t sure if open source kubernetes supports it</p>
<ul>
<li>Planned! Docker now supports it — means kubernetes as well</li>
</ul>
<p>Do you have a testnet demo that can be shared before the public version is available?</p>
<script src="https://asciinema.org/a/193837.js" id="asciicast-193837" async=""></script>BlepcoinAkash is an on-chain auction marketplace for off-chain container deployments. Targeting current cloud providers (eg. AWS and Google Cloud), Akash provides the tools to utilize idle datacenter capacity, and provide a cheaper alternative.Origo Network2018-06-30T08:50:46+00:002018-06-30T08:50:46+00:00https://www.blepcoin.com/2018/06/30/origo<p>Origo is a protocol + blockchain that uses zero knowledge proofs to keep transactions and smart contract input/outputs private. Trusted setup is used for private transactions, while untrusted setup is used for smart contract execution (which is off-chain). Origo is also working on privacy toolchains, eg. a developer friendly secure random function.</p>
<h2 id="token-metrics">Token metrics</h2>
<p>Not public</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<ul>
<li>There are quite a few privacy blockchains that support smart contracts</li>
<li>No market leader yet</li>
<li>Focusing on protocol first, blockchain second, gives Origo an advantage in getting to market</li>
</ul>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<h3 id="core-members">Core members</h3>
<ul>
<li>Everyone from CMU has been confirmed in the alumni directory</li>
<li>
<p>Everyone has been confirmed to be full time, except Zikai Wen who is a PhD student</p>
</li>
<li><strong><a href="https://www.linkedin.com/in/fangjian/">Frank Fang</a></strong> (Blockchain Lead/Core Contributor)
<ul>
<li>Pinterest: Senior Software Engineer on the systems team. Distributed systems.</li>
<li>Carnegie Mellon ‘14 MSIT in Very Large Information Systems. Took some of the same high level courses as me according to LinkedIn. These courses are legit.</li>
</ul>
</li>
<li><strong><a href="https://www.linkedin.com/in/yijia-zhang-51a9b534/">Yijia Zhang</a></strong> (Core Contributor)
<ul>
<li>Google: Software Engineer. Google Assistant founding team member.</li>
<li>Carnegie Mellon ‘12, MS in Comp Sci</li>
<li>Peking Univ. ‘11, Bachelor’s in Economics</li>
<li>Tsinghua Univ. ‘11, Bachelor’s in CS</li>
</ul>
</li>
<li><strong>Baron Gong</strong> (Core Contributor)
<ul>
<li>Columbia University: MS in MS&E</li>
<li>ICM (Interdisciplinary Contest in Modeling) Outstanding Winner</li>
</ul>
</li>
<li><a href="https://www.zhihu.com/people/liu-wei-ran-8-34/activities">Dr Weiran Liu</a> (Core Contributor)
<ul>
<li>> 16k followers on Zhihu in the cryptography domain</li>
<li>Beijing University of Aeronautics and Astronautics: PhD Cryptography</li>
</ul>
</li>
<li><strong>Zikai Wen</strong> (Technical Contributor)
<ul>
<li><a href="https://eprint.iacr.org/2015/675.pdf">Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts</a>. <strong>The other co-authors of this paper include Ahmed Kosba (<a href="https://github.com/akosba/jsnark">jsnark</a>) and Elaine Shi (<a href="https://www.thundertoken.com/">ThunderToken</a>)</strong>.</li>
<li>4th year PhD student @ Cornell</li>
</ul>
</li>
<li><strong>Xin Wu</strong> (Technical Contributor)
<ul>
<li>CMU MS Comp Sci, Tsinghua BS Comp Sci</li>
<li>Google senior software engineer, anti-fraud team Tech Lead (+ Search, YouTube behavior analysis)</li>
<li>Developed arbitrage system for blockchain</li>
</ul>
</li>
<li><strong>Gavin Wang</strong> (Technical Contributor)
<ul>
<li>CMU MS Comp Sci, Tsinghua BS Comp Sci</li>
<li>Google senior software engineer (Search, Web Answer, other)</li>
<li>Machine learning, AI, deep learning, quant trading</li>
</ul>
</li>
<li>
<p><strong>Hong Chai</strong> (Marketing)</p>
</li>
<li><strong><a href="https://www.linkedin.com/in/%E6%99%B6-%E7%8E%8B-271020164/">Sonia Wang</a></strong> (Core Contributor)
<ul>
<li>Experience in financial media, head of branding</li>
</ul>
</li>
</ul>
<h3 id="advisors">Advisors</h3>
<ul>
<li>Vincent Zhou (founding partner of FBG Capital)</li>
<li>Howard Wu (Advisor to Blockchain at Berkeley)</li>
<li><em>more to be announced</em></li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<ul>
<li>Working with 2 unannounced companies (in industries where privacy is tantamount)</li>
<li>Connected to the primary authors of Jsnark and ZoKrates</li>
</ul>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<ul>
<li>Users pay a fee to utilize the network (eg. Ethereum)</li>
<li>Validators get block/computing rewards</li>
<li>Executors make a deposit to prevent misconduct, and gets rewarded for completing a privacy related task</li>
<li>Very early stage on tokenomics - will likely need to wait until Origo starts focusing more man-power on the blockchain stage</li>
</ul>
<h2 id="progress-overview">Progress Overview</h2>
<p><em>06/21/2018 - Origo has told me that some repos will be open-sourced in the next few weeks. Currently, since all the code is sitting in a private org on Github, I had a call with the core team for a code and development roadmap walkthrough.</em></p>
<p>There are two overall stages in Origo’s development schedule:</p>
<ol>
<li>Protocol + ZKP tech, then</li>
<li>Blockchain.</li>
</ol>
<p>As a company started in Feb 2018, Origo is still in the 1st stage. Specifically, they’ve finished a proof-of-concept of the Protocol, as well as a proof-of-concept of the ZKP tech. Here’s the progress so far, as shared by the team:</p>
<ul>
<li><strong>February - April</strong>: Designing the protocol + ZKP tech, discussions with academia. Realizing the optimal solution would be to design a new blockchain, rather than building on top of Ethereum.</li>
<li><strong>Late April - Early May</strong>: Designing a new blockchain that is optimized for the protocol</li>
<li><strong>Since May</strong>: Start coding the basic building blocks of a new chain structure, however, majority of team resources are spent on the privacy protocol. All the focus is on privacy for now, while scalability is later</li>
<li>blockchain with testnet: 1-2 months</li>
<li>privacy toolchain is planned, eg. a dev friendly secure random function</li>
</ul>
<p>As part of initial research, the Origo team thoroughly tested all the related tools (ZoKrates, jsnark) in order to find the limitations of each. Based on this knowledge, they then designed a protocol that could run on this setup (aka the proof-of-concept), while simultaneously designing replacements and additional toolchains to eventually remove the original limitations.</p>
<p>The Origo protocol includes <strong>onchain/offchain communication</strong>, <strong>offchain proof generation</strong>, and <strong>onchain verification</strong>. Their proof-of-concept is intended to show this protocol working, before they start building more fundamental pieces based on this protocol. Now that their proof-of-concept is done, they have started their chain framework with fundamental building blocks.</p>
<p><em>While at first glance it may seem that Origo does not have much development progress, there are many subtleties that are non-trivial (shown especially with their collaboration with Jacob Eberhardt, the owner of ZoKrates, and Zikai Wen’s involvement). This is detailed in the <code class="language-plaintext highlighter-rouge">Code</code> section.</em></p>
<h2 id="code">Code</h2>
<p><img src="/images/origo1.jpg" alt="Origo repo" />
The Origo repo consists of</p>
<ul>
<li>
<p><strong>origo</strong>: the new blockchain</p>
</li>
<li>
<p><strong>osnark</strong>: Origo’s circuit builder and reader.</p>
</li>
<li>
<p><strong>ethereum-zkp-poc</strong>: proof-of-concept with verification on Ethereum</p>
</li>
<li>
<p><strong>origo-ZoKrates</strong>: origo fork of <a href="https://github.com/JacobEberhardt/ZoKrates">ZoKrates</a>, with updates. ZoKrates is a proof-of-concept zkSNARKs implementation, and uses a python-like language which compiles to R1CS (shown in figure below). The original library only handles <code class="language-plaintext highlighter-rouge">mult</code> and <code class="language-plaintext highlighter-rouge">add</code> arithmetic gates. Origo has added <code class="language-plaintext highlighter-rouge">mod</code>, and is working with JacobEberhardt on adding bit manipulation and hashing, along with a new compiler so Solidity can be used instead of the python-like <a href="https://en.wikipedia.org/wiki/Domain-specific_language">DSL</a> (<a href="https://github.com/JacobEberhardt/ZoKrates/tree/develop/examples">examples</a>). Hashing is used for computing commitment, and encryption is used for sending encrypted data to the blockchain and then to offchain. The original ZoKrates SHA256 implementation has very low performance due to the lack of bit manipulation.</p>
</li>
<li>
<p><strong>origo-jsnark</strong>: origo fork of <a href="https://github.com/akosba/jsnark">jsnark</a>. Jsnark helps you build arithmetic circuits with code, using the <a href="https://eprint.iacr.org/2013/279.pdf">pinocchio compiler</a>. The origo fork of jsnark is updated to use the newest version/api of libsnark, which is significantly different than the original repo.</p>
<blockquote>
<p>Pinocchio allows the worker to include private inputs in the computation and prove that she performed the computation correctly without revealing any information about the private inputs to the client.</p>
<p><a href="https://cacm.acm.org/magazines/2016/2/197429-pinocchio/abstract">Pinocchio: Nearly Practical Verifiable Computation</a></p>
</blockquote>
</li>
</ul>
<p>Some background knowledge on zkSNARK from the <a href="https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649">Vitalik blog</a>:</p>
<p><a href="https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649"><img src="https://cdn-images-1.medium.com/max/800/1*YD-ckgBfmmmRBCyVlhp8YQ.png" alt="zkSNARK pipeline" /></a></p>
<blockquote>
<p>The steps here can be broken up into two halves. First, zk-SNARKs cannot be applied to any computational problem directly; rather, you have to convert the problem into the right “form” for the problem to operate on. The form is called a “quadratic arithmetic program” (QAP), and <strong>transforming the code of a function into one of these is itself highly nontrivial</strong>. Along with the process for converting the code of a function into a QAP is another process that can be run alongside so that if you have an input to the code you can create a corresponding solution (sometimes called “witness” to the QAP). After this, there is another fairly intricate process for creating the actual “zero knowledge proof” for this witness, and a separate process for verifying a proof that someone else passes along to you, but these are details that are out of scope for this post.</p>
<p>— <a href="https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649">Quadratic Arithmetic Programs: from Zero to Hero. (2016, Dec 11)</a></p>
</blockquote>
<p>Referring to this quote, we can see that jsnark+osnark tackle a complex part of ZK proof pipeline, which is transforming the code of a function into something zk verifiable. <code class="language-plaintext highlighter-rouge">Osnark</code> is being developed so that eventually, Solidity can be compiled into something zk verifiable.</p>
<h4 id="the-origo-protocol">The Origo Protocol</h4>
<p>The Origo Protocol has 4 phases, Init, Commit, Execute, Settle.</p>
<p><strong>Init</strong>: A Node is elected and its public key is shared to all involved parties.</p>
<p><strong>Commit</strong>: Each party submits their input and coins privately. Since nobody can see anyone else’s inputs, a participant cannot base their inputs off of someone else’s inputs.</p>
<p><strong>Execute</strong>: Each party encrypts its private input and coins information with an executor’s public key. A zk proof is built to prove the encrypted value matches the commitment. This verification is done on-chain, and once finished, the blockchain sends the encrypted data to an executor node. Executor uses its private key to decrypt the private inputs, and executes the smart contract on the node itself. This runs using ZoKrates in the proof of concept.</p>
<p><strong>Settle</strong>: The executor builds a proof to prove the outputs are correctly computed from the inputs, and encrypts output with each party’s public key. The executor sends the proof and the encrypted outputs to blockchain, where it is verified on-chain. Each party can uze their private key to decrypt the output.</p>
<p><img src="/images/origo3.jpg" alt="" />
PoC repo. 2 simple demos, each with an original smart contract and a modified smart contract with verification code included. The <code class="language-plaintext highlighter-rouge">execute</code> phase is run off-chain within the ZoKrates environment, where ZoKrates generates the output and proof. Then, the off-chain environment calls <code class="language-plaintext highlighter-rouge">verify</code> in the smart contract with the ZoKrates output as an argument, to verify it on-chain.</p>
<p>I was given a functional demo of the sealed bid auction, running with Metamask and Ganache. (continues)</p>
<p><img src="/images/origo2.jpg" alt="" />
For example, here’s the sealed bid auction smart contract. It’s a fairly straightforward contract, where both bidders <code class="language-plaintext highlighter-rouge">lock</code> an amount confidentially (Commit Phase), both bidders <code class="language-plaintext highlighter-rouge">open</code> to claim their winnings (Execute Phase), then <code class="language-plaintext highlighter-rouge">processResult()</code> to create the transactions (Settle Phase). There is a corresponding piece of code written in ZoKrates DSL that includes the same logic as <code class="language-plaintext highlighter-rouge">processResult</code> to execute off-chain (I saw the code for this, but didn’t get a screenshot). To remove this redundancy, Origo is writing a Solidity compiler for zksnarks (the <code class="language-plaintext highlighter-rouge">osnark</code> repo). (continues)</p>
<p><img src="/images/origo4.jpg" alt="" />
Here’s the corresponding zk verification code. This code verifies that the outputs of ZoKrates matches the inputs from each party (on-chain). I think <code class="language-plaintext highlighter-rouge">./zokrates export-verifier</code> generates something like this.</p>
<p><img src="/images/origo5.jpg" alt="" />
origo blockchain repo. We did not go over this in the walkthrough, as they suggested it was very new and relatively bare.</p>
<p><img src="/images/origo6.jpg" alt="" />
osnark repo with circuit builder, below.</p>
<p><img src="/images/origo7.jpg" alt="" />
circuit_builder code. I wasn’t very familiar with arithmetic circuits until reviewing this project, but the code looks good to me. The screenshot is code that verifies the wires between each arithmetic gate in a circuit. There is plenty of <a href="http://ieeexplore.ieee.org/document/7442835/">research</a> <a href="http://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1210&context=masters_theses_2">out</a> <a href="http://www.cs.cmu.edu/~bryant/pubdir/dac95a.pdf">there</a> for verifying arithmetic circuits, but this code is novel.</p>
<p><img src="/images/origo8.jpg" alt="" />
The code that runs and outputs the text below.</p>
<p><a href="https://asciinema.org/a/Q3UhK0JUM6Ppua6AMRLkp8qKY"><img src="https://asciinema.org/a/Q3UhK0JUM6Ppua6AMRLkp8qKY.png" alt="asciicast" /></a>
Setup, proving and verification. The last 1s of the animation is the verification step, to show zk verification is very quick. This was part of their benchmarking tests, and extensively uses ZoKrates.</p>
<h3 id="conclusion">Conclusion</h3>
<p>For a 4-5 month old project, Origo has made about as much progress as I’d expect from a good team. The team members have impressive backgrounds, and it’s clear that they deeply understand the existing research (+ research done by some team members), and know how to utilize it to build a beginning to end proof of concept.</p>
<p>Compared to the scope of the whitepaper (aka project architecture), this code is relatively early stage.</p>
<p>Unlike many projects, most of the work has been in the testing, benchmarking, and design phase, rather than the build phase. That is understandable as most experienced engineering projects are like this, but it’s difficult to show this progress in a code review.</p>
<p>To demonstrate their progress, they showed me how they benchmarked these existing tools, and all the shortcomings and limitations they’ve come across while using these tools. Meanwhile, they have also designed and implemented a new circuit compiler framework — something necessary for getting fully independent from ZoKrates.</p>
<p>With additional implementation, Origo has the potential to be a strong contender in the private smart contract space. I’d like to revisit this project in a couple weeks to update the review.</p>
<h2 id="other-info">Other Info</h2>
<p>Origo’s network requires verifying off-chain computation verification took place (to remove the trusted setup requirement from zkSNARKs)</p>
<p>zkSNARKs also requires trusted setup, which Origo has decided is fine for transactions, but not acceptable for smart contract computations. While trusted setup works in some cases, for example if the contract is from a reputable company willing to do trusted setup, no trusted setup works for everyone else.</p>BlepcoinOrigo is a protocol + blockchain that uses zero knowledge proofs to keep transactions and smart contract input/outputs private. Trusted setup is used for private transactions, while untrusted setup is used for smart contract execution (which is off-chain). Origo is also working on privacy toolchains, eg. a developer friendly secure random function.Haja Networks2018-06-19T00:00:00+00:002018-06-19T00:00:00+00:00https://www.blepcoin.com/2018/06/19/haja<p>Currently building OrbitDB, “a scalable and trustless peer-to-peer database, and database protocols for a global data layer to re-decentralize the web.”</p>
<h2 id="token-metrics">Token metrics</h2>
<p>Not public</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<p>Hard to tell at this stage.</p>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<ul>
<li><a href="https://www.linkedin.com/in/samuli/">Samuli Pöyhtäri</a>: CEO, software engineer background</li>
<li>
<p><a href="https://www.linkedin.com/in/vesa-ville-piiroinen-5b6b14/">Vesa-Ville Piiroinen</a> (<a href="https://twitter.com/vvpiiroinen">twitter</a>): CTO, software engineer background</p>
</li>
<li>
<p><a href="https://www.linkedin.com/in/juusorasanen/">Juuso Räsänen</a>: Biz Dev</p>
</li>
<li><a href="https://www.linkedin.com/in/edendhaliwal/">Eden Dhaliwal</a>, Board Director, tokenomics
<ul>
<li>MBA at Univ. of Toronto; examines token economies and business models of web 3.0 and convergence (blockchain + AI, IoT, etc) companies for investment as partner at Outlier Ventures</li>
</ul>
</li>
<li><a href="https://outlierventures.io/">Outlier Ventures</a></li>
<li><a href="http://polychain.capital/">Polychain Capital</a></li>
<li><a href="https://bigchaindb.com/">BigchainDB</a></li>
<li><a href="http://www.creathor.com/">Creathor Ventures</a></li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<p>Hard to tell at this stage since it’s pre-tokenomics</p>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<ul>
<li>N/A (Seed round, no tokenomics)</li>
</ul>
<h2 id="code">Code</h2>
<ul>
<li>https://github.com/orbitdb</li>
<li>https://github.com/orbitdb/orbit-db</li>
</ul>
<p><a href="https://github.com/orbitdb/orbit-db"><img src="/images/haja0.png" alt="github stats" /></a>
806 commits, 1198 stars, 114 forks, 141 issues, 243 pull requests. 🤩! Probably the most active git repo I’ve seen in crypto in a long time.</p>
<p><a href="https://github.com/orbitdb/orbit-db/issues"><img src="/images/haja1.png" alt="github issues" /></a>
All the open issues on Github seem to be from active users of the project. The frequency of new issues is pretty high, and all the issues older than 2 weeks ago have productive discussion. Clearly a very active project with a large dev community.</p>
<p><a href="https://github.com/orbitdb/orbit-db/graphs/contributors"><img src="/images/haja2.png" alt="github contributors" /></a></p>
<p>There are 239 closed / 4 open pull requests. Let’s see who’s making all these updates.
I missed this earlier, but this repo was started in Dec 20, 2015, and it’s been consistently active throughout it’s lifetime.
<a href="https://github.com/haadcode">Haad</a> and <a href="https://github.com/dignifiedquire">Friedel Ziegelmayer</a> are the major contributors.
<strong>Notably</strong>, <a href="https://github.com/karma-runner/karma/graphs/contributors">Friedel is the #2 most productive contributor to the Karma project</a>, one of the most popular Javascript testing tools available. <strong>Additionally</strong>, he’s in the top 3 contributors for <a href="https://github.com/ipfs/js-ipfs">js-ipfs</a>, the Javascript implementation of the IPFS protocol, also with significant active users.</p>
<ul>
<li>Note: neither Haad nor Ziegelmayer are listed as team members on Linkedin.</li>
<li>Project has <a href="https://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a> <a href="https://circleci.com/gh/orbitdb/orbit-db">set up</a>, running these <a href="https://github.com/orbitdb/orbit-db/tree/master/test">tests</a>. They look fairly comprehensive, testing replication and stress. This shows that this isn’t some project that was just hacked together.</li>
<li>Because this project has genuine community support/usage and solid experience indicators already (eg. the proven contributors, the comprehensive testing, the <a href="https://github.com/orbitdb/orbit-db/blob/master/API.md">comprehensive</a> <a href="https://github.com/orbitdb/orbit-db/blob/master/README.md">READMEs</a>), a deeper dive into the code has diminishing returns on the usefulness of this evaluation.</li>
</ul>
<h3 id="team-members-githubs">Team members githubs</h3>
<ul>
<li>I couldn’t find any official team member contributions to open-source projects. Hopefully Haad and Friedel Ziegelmayer (mentioned above) are on the team / will join the team full time!</li>
</ul>
<h2 id="other-info">Other Info</h2>BlepcoinCurrently building OrbitDB, “a scalable and trustless peer-to-peer database, and database protocols for a global data layer to re-decentralize the web.”Firmo2018-06-12T00:00:00+00:002018-06-12T00:00:00+00:00https://www.blepcoin.com/2018/06/12/firmo<p>Formally verified smart contract language and on-chain derivatives protocol.</p>
<h2 id="token-metrics">Token metrics</h2>
<p>unknown</p>
<h2 id="market-opportunitycompetitive-analysis">Market opportunity/Competitive analysis</h2>
<ul>
<li>No existing market leader in the formally verified smart contract language space</li>
<li>No existing market leader in the decentralized derivatives space</li>
<li>Competitors include <a href="https://dydx.exchange/">dYdX</a> (launches in spring 2019) and <a href="https://marketprotocol.io/">Market Protocol</a>, both of which run on Ethereum only.</li>
<li>Firmo’s extensible compiler means a single Firmo contract can be deployed onto various chains.</li>
<li>Firmo supports derivatives with full, variable, and zero collateral coverage. unlike Market Protocol.</li>
<li>Market Protocol supports a collateral pool consisting of ERC20 tokens, and all settlement will be done with these tokens rather than the underlying asset. This means Market Protocol supports non-crypto assets as long as there is an oracle updating the asset’s price.</li>
<li>dYdX supports fully covered options as well (but details on collateral are light in the whitepaper)</li>
<li>dYdX works with 0x to immediately work with several exchanges.</li>
<li>Difficult to write complex and bug-free code</li>
<li>Competitors only work on single blockchains</li>
<li>Firmo’s formally verified <a href="https://en.wikipedia.org/wiki/Domain-specific_language">domain specific language</a>(DSL) is mathematically proven to be bug free. It’s not turing-complete and each feature is proven.</li>
</ul>
<h2 id="teamadvisorspartnerships">Team/Advisors/Partnerships</h2>
<h3 id="team">Team</h3>
<ul>
<li><a href="https://www.linkedin.com/in/omriross/">Dr. Omri Ross</a> (CEO/Founder)
<ul>
<li>Assistant CS Prof. @ University of Copenhagen - DIKU</li>
<li>University of Cambridge: PhD ‘13, Financial Mathematics</li>
<li>Experience: Finance, engineering, quant, blockchain consulting</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/gurytraub/">Gury Traub</a> (VP R&D, Co-CTO)
<ul>
<li>Cofounder of Remarkable, a game company</li>
<li>Full stack node, web, phone gap dev</li>
<li>Implemented a <a href="https://en.wikipedia.org/wiki/Straight-through_processing">STP</a> clearing suite for a brokerage</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/ariellaub/">Ariel Laub</a> (Co-CTO)
<ul>
<li>Cofounder of Remarkable, a game company</li>
<li>CTO of several startups</li>
<li>Responsible for dev of a <a href="https://en.wikipedia.org/wiki/Execution_management_system">EMS</a> backend</li>
<li>Supervised a liquidity portal product</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/dovev/">Dovev Goldstein</a> (CMO)
<ul>
<li>VP Digital at Reshet.tv</li>
<li>CEO of moment.me (sold to Wix)</li>
<li>Founded several other companies that have exited</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/mads-gram-7552a385/">Mads Gram</a> (Senior Compiler Developer)
<ul>
<li>Københavns Universitet: BS ‘18 Computer Science</li>
<li>Microsoft Intern: implementation of the <a href="https://en.wikipedia.org/wiki/C/AL">C/AL programming language</a></li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/thorkil-v%C3%A6rge-29476714/">Thorkil Værge</a> (Senior Compiler Developer)
<ul>
<li>Bitcoin Suisse AG: develop solutions for asset management, Bitcoin, Ethereum, in C#</li>
<li>Sirius Money: Bitcoin trading and consulting 2013-2016</li>
<li>https://github.com/HIPERFIT/hipermark</li>
<li>Københavns Universitet: MS ‘16 Computer Science</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/elad-shabi-3b330b19/">Elad Shabi</a> (VP Business Development)</li>
<li><a href="https://www.linkedin.com/in/william-dashan-gan-18685b81/">William Dashan Gan</a> (Senior Software Developer)
<ul>
<li>Danmarks Tekniske Universitet: MS ‘16 Mathematical Modeling and Computation</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/anderssommerlarsen/">Anders Sommer-Larsen</a> (Senior Software Developer)
<ul>
<li>Københavns Universitet: MS ‘16, Mathematics-Economics</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/johannes-rude-jensen-756b0bb6/">Johannes Jensen</a> (Chief Economist)
<ul>
<li>Copenhagen Business School: MS ‘18 Cand. Merc. Phil Information Systems and Distributed Financial Arch.</li>
<li>wrote MVP for Maersk Shipping Lines utilizing IPFS for versioned content addressing and timestamped entries on Ethereum by sending the content hashes to EOA addresses in Metamask.</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/jose-parra-moyano/">José Parra Moyano</a> (Partnerships)</li>
<li><a href="https://www.linkedin.com/in/idan-bar-shalom-2ba03b85/">Idan Bar Shalom</a> (Finance)
<h3 id="advisors">Advisors</h3>
</li>
<li><a href="https://www.linkedin.com/in/elsman/">Professor Martin Elsman</a>
<ul>
<li>Functional and high-level programming languages</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/michelavital/">Professor Michel Avital</a>
<ul>
<li>Blockchain transformation and development</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/cosmin-oancea-33a69793/">Professor Cosmin Oancea</a>
<ul>
<li>Computer Science and functional languages</li>
</ul>
</li>
<li><a href="https://www.linkedin.com/in/kourosh-marjani-rasmussen-79b933/">Professor Kourosh Rasmussen</a>
<ul>
<li>Mathematical optimization and financial engineering</li>
</ul>
</li>
<li>Sebastian Stupurac
<ul>
<li>Co-founder at Wings.ai, blockchain ecosystems</li>
</ul>
</li>
<li>Jacob Knobel
<ul>
<li>Co-founder at Densou, automation engines, Forbes 30 under 30</li>
</ul>
</li>
<li>Stas Oskin
<ul>
<li>Co-founder at Wings, R&D and architecture design</li>
</ul>
</li>
<li>Nadav Dakner
<ul>
<li>CEO of Inbound Junction, marketing and PR</li>
</ul>
</li>
<li>Ran Neu-Ner
<ul>
<li>CNBC Cryptotrader, Founder ONCHAIN Capital, Top 10 most influential people in blockchain</li>
</ul>
</li>
<li>Shelly Hod Moyal
<ul>
<li>Founder and co-CEO of iAngels</li>
</ul>
</li>
<li>Amos Meiri
<ul>
<li>Co-founder and CEO of Colu, local currencies and economies</li>
</ul>
</li>
</ul>
<h3 id="strategic-partners">Strategic partners</h3>
<ul>
<li>Partnership with Bancor, which has the potential to become a partnership to provide user-friendly way to deploy futures contracts. Additional exchange partners would increase significant value to this project.</li>
<li>Deloitte Israel</li>
</ul>
<h2 id="competitive-advantage">Competitive Advantage</h2>
<ul>
<li>2 years of work already</li>
<li>TODO</li>
</ul>
<h2 id="tokenomics-and-token-utility">Tokenomics and Token Utility</h2>
<ul>
<li>Firmo tokens are sent to Firmo when code is run through the compiler.</li>
<li>Firmo tokens can be used as collateral in the derivatives smart contract. I have some concerns here regarding Firmo token volatility, considering it will fluctuate against the reference asset. The Firmo team is aware of this and is actively discussing potential solutions, as of 06/12/18.</li>
<li>Section 9.0 in the whitepaper says they are currently writing a full chapter on the FRM token model. In my call (06/12/18), the team said they would update me with their token model within 2 weeks.</li>
</ul>
<h2 id="code">Code</h2>
<p>Firmo was kind enough to share their private code with me over a video call. I was impressed, based on the 10+ repos I saw - and the team walked me through each one proving that they had spent at least 2 years on this project. While I can’t go into specifics until they release the code publicly, here is an overview of what already exists:</p>
<ul>
<li>compiler
<ul>
<li>simplistic design, but does the job. Optimizations possible but since this is a non-turing-complete DSL this is fine)</li>
</ul>
</li>
<li>prototype compiler
<ul>
<li>Oh hi Haskell.</li>
</ul>
</li>
<li>formal proofs for compiler, written in <a href="https://coq.inria.fr/">Coq</a>
<ul>
<li>Written by the 2 compiler specialists on the team. Not my expertise, but the code I saw looked clean and understandable. And there was a LOT of code.</li>
</ul>
</li>
<li>ERC-20 smart contract for FRM token</li>
<li>website frontend, in React
<ul>
<li>Nice and clean. Tests included (great sign)</li>
</ul>
</li>
<li>beta website for users to try the Firmo compiler
<ul>
<li>Nice and clean. Tests included (great sign)</li>
</ul>
</li>
<li>demo website for users to see example use-cases of the Firmo protocol</li>
<li>demo website backend</li>
<li>telegram bot service to manage spam and welcome new users</li>
<li>dYdX fork
<ul>
<li>Competitive analysis is great to see!</li>
</ul>
</li>
</ul>
<p>Many of the compiler commits were done by https://github.com/shrewbi. He has a compiler repo in his account from 2015 that looks like a university project.</p>
<p>TODO - more team member github analysis!</p>
<h2 id="other-info">Other Info</h2>BlepcoinFormally verified smart contract language and on-chain derivatives protocol.