Project Review: Phantasma (a Neo dApp)

Image for post
Image for post

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

What is Phantasma

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

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

  1. 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.
  2. Second Layer Scalability: Trinity is live for Neo. Raiden is still not ready for Ethereum.
  3. Ecosystem: Tons of developers for Ethereum but many of the Phantasma team members are part of City of Zion.
  4. 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

  • 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.
  • Bernardo Pinho, Software developer, QA/Tester. Previous experience on the Ethereum ecosystem.
  • Rafael Barbosa, Graphic Designer.

Token Metrics

  • Token Distribution:
  • 65% available for private and public sale
  • 20% reserved for team and advisors
  • 15% reserved for platform growth and developer incentives
  • Use of Contributions:
  • 40% reserved for Marketing and Growth
  • 30% reserved for Development
  • 20% reserved for Operations
  • 10% reserved for Legal and Contingency
  • Token Type: NEP5 (Neo blockchain)
  • Hardcap: $10M
  • Total Supply: 100,000,000 SOUL
  • Token Use:
  • End users to access Phantasma Boxes (data interfaces tied to Neo addresses)
  • Fuel for dApps on Phantasma
  • Box creation
  • Data storage allocation and renewal

Features

  • Storage: regulation and distribution of storage claims, data block integrity. An entire section is dedicated below.
  • 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

  • Protocols: IPFS, Swarm
  • Distributed file storage blockchains: Filecoin, Storj
  • Decentralized databases: Genaro, Bluzelle

Verdict

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.

Quantalysus publishes blockchain research and analysis for the crypto community. Please follow on Twitter, Steem (please follow and upvote if you can — thanks!), Telegram channel (New!), and Medium to stay up to date.

If you want to earn Aelf (ELF) tokens for just using Twitter and Reddit, sign up for their candy / bounty program.

If you learned something:

Other posts:

Written by

Thoughts on cryptocurrency and blockchain technology

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store