Distributing Tokens With Ethereum

A couple of days ago in A Trio Of Ethereum Graphics I noted that there was one for creating tokens, which are described as representing any fungible tradable good: coins, loyalty points, gold certificates, IOUs, in game items.

I’ve periodically mentioned Adversary Resistant Networking here and this includes Cryptostorm, an OpenVPN provider that offers Zero Customer Knowledge services. Most VPN providers sell you an ‘account’ – typically a combination of an email address and a credit card. Cryptostorm instead offers … you guessed it … tokens! They don’t care who you are, so long as you present proof of purchase before using the service.

Having reviewed the token section I find that it contains extensive programming examples in Solidity, Ethereum’s contract programming language. This is a structured language similar to Python, but it offers the object oriented feature of inheritance from parent contracts.

I have quite a bit more reading to do, but it looks like I should be able to whip up a smart contract to sell Cryptostorm tokens. The only problem I see is that the example doesn’t show how I’d have a bit of persistent storage for the stock of tokens, but that can’t be all that hard. Maybe InterPlanetary File System provides a way to do this from within Solidity.


Cryptostorm has gone through some gyrations over the last year or so, as one of the founders self-destructed in slow motion. The current estimate is that he’ll be in custody through about 2020 after his latest misadventure. His going in and out of custody did not expose the network users, as he’d long since been escorted out of any server operations duties, and while some of the things he did are missed, everyone seems to have breathed a sigh of relief.

I’ve been a happy Cryptostorm customer for a little over two years and I’ve been a token reseller in a small way as well. I sold about $1,200 in tokens in exchange for PayCoin, an altcoin which collapsed into an SEC investigation. My PayCoin is worth about $0.65 today and it’s not terribly liquid.

I backed off and waited for Cryptostorm to implement a reseller program that is tied directly to their ‘tokenbot’, which automatically sends tokens after sales. The details are complex, but that’s just not going to happen for a variety of reasons.


I obviously have some reading and experimentation to do, but the heavy lifting on this problem is already implicitly solved by the existence of Solidity. This looks like something that can be finished by the end of June.

This discovery comes at an opportune moment. I’m not going to join the dogpile on former Tor developer Jacob ‘@ioerror‘ Applebaum, but I am going to note that it’s the latest in a string of problems for the project. Tor really needs a micropayment methodology to support the operational cost of its exits and there are some issues that can be resolved by replacing a trusted individual with some sort of blockchain construct.

The methods I employ will be open, a default for any Solidity contract released on the Ethereum blockchain. The entire code base for running a Zero Customer Knowledge VPN provider is available on the Cryptostorm Github account. Observers will be correct in noting there is no barrier to someone ripping off the effort, writing a proposal on The DAO, and running Cryptostorm out of business.

The gritty reality of Cryptostorm’s day to day grind is forbidding to most of the existing OpenVPN providers. They’re not ready to face a network where they don’t know anyone, and in addition to inbound firewalls there are also outbound intrusion prevention systems and inline proxies for both Tor and I2P. Innovation is hard.

But I seem to be having one of those right place/right time moments here. We’ll check back on this come July 4th and see how close it is to ready.



One thought on “Distributing Tokens With Ethereum

  1. Pingback: Applying BotOrNot To Twitter Swarms | Neal Rauhauser

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s