The state of GET scaling | Introducing: Statebox

KasperK
Blog  - GUTS Tickets
5 min readMar 11, 2019

For the last two years, ownership change of tickets sold on the GET Protocol has been processed via a Solidity smart contract. Initially, the Ethereums testnet was used, since Q3 last year, ownership registration moved to mainnet. More than 65 000 tickets have been registered by our GET’s runnersince the move. This upcoming Saturday 50 000+ additional ownership registrations will be appended to Ethereums ledger by the GET Protocol.

While we expect the ticket sale of Saturday to sell out in less than 2 hours, the registration of ownership on the blockchain is expected to take up to 6 days. That is clearly not ideal or even useful. In the following sections I will cover what we learned from past experiences and how we are going about solving it!

Our journey of on-chain experimentation of ticket ownership registration resulted in more than 70 000 unique consumers unknowingly using their firstcrypto wallet. That alone is a huge win for us and crypto in general. A lot of valuable lessons were learned along the way. Some lessons came at awkward moments (like during one of our first big sales), other problems we expected to encounter at some point. Drawing from these hard-earned lessons we have several harsh conclusions about Ethereum for this particular use case. Before we get into it, it should be noted that we still believe strongly in ETH.

Why Ethereum isn’t a fit for ticket ownership registration right now

While the Solidity smart contract registration worked in providing transparency, there are several fundamental problems.

  • Transaction throughput on Ethereum is slow and unpredictable.
  • Conducting logic on Ethereum is expensive.
  • Solidity smart contracts have unnecessary large attack surfaces.

To keep this blog concise we will leave the old behind and crack open a jar of category theory (it’s little Friday after all). But before we get into the wonderful world of Petri nets and hashes, let me make sure everybody is briefed on what exactly we want to accomplish with ownership registration on the blockchain in the first place.

Why blockchain?

As is laid out in the GET Protocol white paper, there are several areas in ticketing where lack of transparency and trust is causing inefficiencies and fan/artist outrage. Ownership registration is one of these areas. It is our belief that by registering certain data about a ticket, like if a ticket is valid or not, its price and an events ticket resell rules on a blockchain. From a shared source of truth, more efficient market coordination will emerge to prevent rent-seeking parasitic scalpers profiting of fans.

Enter Statebox

Early 2018 we set out on a mission to find a technology to replace the ownership logic that was conducted by a Solidity contract. The question we asked ourselves was: ‘How to make ticket ownership registration scale-able without compromising on transparency and immutability?’ This question was technically daunting, with large portions of the crypto projects still tackling it to this day. Luckily we bumped into the team of Statebox during SXSW last year and we immediately saw the merit of what they were building. So what the **** is Statebox? I wouldn’t dare to take a stab at describing it coherently so I will lazily quote their website:

“Statebox is developing a technological stack based on a visual programming language. It’s not a general purpose programming language but one focused on modeling and executing processes. The Statebox language is built using a functional programming approach which utilizes, amongst other things, category theory, Petri nets, open games, logic programming and cryptography.”

A Petri net is not different from a step-by-step process. While a objects route through the net might vary, the amount of total routes is finite. Due to this characteristic computation of such systems are computationally far more efficient than processes which need to be able to compute an infinite amount of routes.

Explaining how Statebox works under the hood goes far beyond the scope and assumed attention span. If interested I would strongly implore you to join their community! Check out their website and YouTube channel.

The GET Protocol Petri net. Each ticket issued on the GET Protocol has a unique compiled net mapped to it. As the ticket is traded and used, each net will mirror the changes of the smart ticket. By registering the nets hashes to a blockchain, immutability is achieved. Without exposing any private user data! As the nets mathematical structure is deterministic, anybody can re-run a certain net configuration to verify if the claimed ticket state is indeed truthful. The possibilities for this are endless. We are just getting started.

A wild Petri net appears!

The Solidity smart contract is replaced with a finite state machine. This is a deterministic contract that has the same mathematical characteristics as that of a Petri net. By representing a tickets state in this fashion it is possible to process ticket ownership logic in near real-time. A large portion of this gain in processing time(and reduced costs) can be attributed to the fact that these Petri-nets are currently computed centralized (as the Statebox nets compile to bytecode they could essentially be run on most blockchains). However, on-chain processing isn’t adding anything on the part of ownership transparency. The same amount of transparency is achieved by combining the deterministic mathematical features of the net, with the periodic registration of the nets hashes on the blockchain. Combining these two proves formally & publicly that the ownership changes processed according to our honest ticketing rules. Neat!

How verification works and how independent public nodes will verify ‘proof-of-honest-ticketing’ will be clarified in the future. Including specifics on the incentive mechanism and requirements for these honesty-verifiers.

What is the next state?

In upcoming months the Statebox net will be replacing our current ticket ownership runner. Before the first Petri-net goes live we will make sure to fully have briefed our community on all relevant details. If you cannot wait to learn more, I highly recommend the Statebox Monograph (not for those that skipped algebra homework back in the day).

Lemma 6.3.6 from the Statebox Monograph. No comment needed as the proof is rather self-explanatory.

All jokes aside, we are very happy and excited to work with the Statebox team and want to especially thank Jelle and Fabrizio for their patience and insights so far :).

Stay in touch!

More about the GET Protocol

Any questions or want to know more about what we do? Join our active Telegram community for any questions you might have, read our whitepaper, visit the website, join the discussion on the GET Protocol Reddit. Or get yourself a smart event ticket in our sandbox environment. Download the GUTS Tickets app on iOS or Android.

--

--