Project Review: Phantasma (a Neo dApp)

Athena was born out of Zeus’ head… so to is Phantasma born of Neo (so to speak)

What is Phantasma

Phantasma attempts to enable decentralized application (dApp) development by addressing the issues of data management and content-sharing. It will try to do so with a content distribution system with an emphasis on privacy and security.

One of the most challenging development areas for decentralized applications is how to manage data — how to store it, access it, and manage it.

~B. Kramer, 1997

The quote above was written in 1997, twelve years before Bitcoin was launched. DApps have gained little traction in the mainstream due to challenges in data management and content sharing. Similar to cloud based apps (websites, mobile apps), dApps have many of the same computing requirements but are bogged down by costly decentralized infrastructures and architectural complexity. For example, storing three photos on the Ethereum blockchain was recently estimated to cost $78,000. No developer in their right mind would launch their business on such costly infrastructure. Solutions need to be found.

Several projects attempt to bring down costs and increase file sharing capabilities such as Sia and Filecoin (data storage) and Golem (CPU). Rather than relying on third party services (Google running Gmail, Facebook running Instagram), Phantasma hopes to empower users to control their own content.

What is Their Approach

Phantasma will eventually be its own running blockchain once its feature set is fully complete. In the meantime, Phantasma will offer an API to developers and operate as a Smart Contract on the Neo blockchain. Right off the bat, code interacting with Phantasma will be permissionless with no additional/special rights to the Phantasma team (likely to reduce the criticism Neo faces with its tightly controlled smart contract pipeline).

However, when you dive into page 8 of their whitepaper it brings up the concept of Boxes — a general interface for content storage, data piping and access sharing. Each Box is associated to a Neo address but will have a ‘named address’ approach (think… user name) — brownie points for usability here (EOS will also have named addresses). When you read further down you will find the Gate feature, a permissioned gateway to a Box. Boxes themselves are permissionless to the Phantasma, but to interact with a Box the Neo user will need to grant permissions. That’s how I read this at least.

In plan English… Phantasma will work with Neo for now — then pull a Justin Timberlake and go solo.

Why Neo instead of Ethereum

Neo was selected over Ethereum as the platform to build on for a variety of reasons:

Throughput: Neo has higher throughput with its Proof-of-Stake (PoS) consensus algorithm through its Distributed Byzantine Fault Tolerance (DBFT) algorithm now. Ethereum is still waiting for scaling solutions such as Casper and Plasma to launch.

Second Layer Scalability: Trinity is live for Neo. Raiden is still not ready for Ethereum.

Ecosystem: Tons of developers for Ethereum but many of the Phantasma team members are part of City of Zion.

Neox: Ability to move off Neo into another or their own blockchain

In plain English… Neo has the scaffolding here and now — can’t wait for Ethereum.

The Team

The Phantasma team placed fifth at the City Of Zion’s dApp competition. Sérgio also won a Neo sponsored competition with an application of his own.

Sérgio Flores, Co-Founder of Phantasma, City of Zion developer and blockchain consultant. Experienced developer with 20 years of business and customer facing software development, and a track record of tackling complex structural systems (filesystems, drivers, compilers, debuggers — which was the case for his recent development, a NEO debugger).

Miguel Ferreira, Co-founder, senior data, compiler, and blockchain developer. Senior developer with years of enterprise systems engineering and academic research on distributed systems. He is also experienced developing on Ethereum.

Alexandre Paixão, Complements the team on the non-technical side of business growth in Marketing and Public Relations.

Sérgio Pereira da Silva, Partnerships and Eveangelist.

Bruno Freitas, City of Zion developer. Experienced with C# and .Net stack technologies. Responsible for Phantasma mobile development of Phantasma.

Features

Proof-of-Retrievability Algorith (Bowers, 2009): Offchain storage providers must provide proof they still have the full content for retrieval

Token: fuel for the protocol

SDK (software developer kit): avaialable in C#. JavaScript to follow.

Relay Nodes: A second layer scaling solution to Neo (think Trinity, or Raiden for Ethereum). If Neo’s 15 second block time is too slow for certain applications, Relay Nodes will serve as an off-chain solution to deliver the necessary speed.

One major disadvantage is the throughput speed, which is several orders of magnitude slower than traditional database(s).

~Page 11 of whitepaper

Boxes: Data storage, piping, and access gateway tied to Neo address

Virtual Machine: Runs code on Phantasma via a virtual environment. Different from Neo where large amounts of Gas are spent to run a contract onchain. Code will be run inside Boxes residing in the overall Phantasma Smart Contract

Phantasma VM is not Turing-Complete, serving as a safety feature to preserve Gas in case of poorly written, recursive code. (i.e. writing bad code can create a running program that consumes all user funds… not good!). Eventually this may shift to Turing-Completeness when Phantasma moves away from Neo onto their own chain.

In plain English… activities onchain can be triggered through events happening with the Boxes. There will also be a backup layer to help boost performance apps need that are greater than the Neo blockchain can provide.

Distributed Storage

Saving data onchain is Expensive. It deserves a capital “E”. There is no great solution today but there are a number of competing standards. Phantasma aims to be agnostic to any standard. Basically, it’s playing a waiting game. Let’s list out a few of the standards:

Protocols: IPFS, Swarm

Distributed file storage blockchains: Filecoin, Storj

Decentralized databases: Genaro, Bluzelle

Verdict

I took issue with how the whitepaper started. They cited several p2p networks such as Napster and PirateBay. These services were shut down and users lost valuable sources to access content. The issue they cited was in the centralization of the platform — simply going after the website owners shut these service down. If you look closely, these services went down not because they were centralized, but because they were sharing copyrighted files between users who skirted laws to illegally attain content. Solving content-sharing and data storage in decentralized frameworks is necessary, but they must also respect the jurisdictions in which they operate. Otherwise, we really pushing for a new paradigm of protecting and rewarding content creators in other ways aside from copyright.

The Relay Node feature is called as an offchain solution, or a second layer solution, to offer higher throughput than is practical on the Neo blockchain (15 second block times). Phantasma plans to build on top of the UDP protocol due to its simple and low-cost nature. It should, in theory, be useful for peer-to-peer interactions. The full details of this major component of Phantasma has yet to be detailed. Until this arrives it will be a gray area for my verdict.

Distributed storage is still an unsolved component to the entire blockchain space. From what I gather in Phantasma’s whitepaper, the team is well aware of the challenges. Phantasma’s solution is to stay agnostic to solutions such as IPFS and instead store hash values on its platform. It plans to release PDFS, Phantasma Data File System, which will be based off of the Kademlia distributed protocol (P. Maymounkov, 2002). PDFS will be an extension to the Relay Node feature mentioned above. PDFS will feature a tokenized economy using SOUL to allocate resourcs (think SiaCoin).

The project is well thought out but my primary concerns sit with one basic question… “why not just build this entire project out from scratch”? Phantasma is building an all-in-one storage, sharing, and blockchain solution. It’s like smashing a distributed file solution (Sia+FileCoin) together combined with a smart contract enabled blockchain (Ethereum+Neo). The approach outlined in the paper is in phases. Using Neo as a bike with training wheels, then slowly but surely removing those training wheels to peddle on their own strength.