3 Rules for Healthy Pseudonymous Hygiene with Ethereum

Anonymity with Ethereum is hard. It’s a public blockchain, after all.

Sure, you can create your seed phrase offline or with a hardware wallet, but as soon as it comes to moving funds to your fresh accounts you should expect that eyes will see that transaction – even years later.

Even with all the proper steps taken to create a cold wallet, the currencies you put into those accounts still come from somewhere. And somewhere wasn’t in your control.

Typical Transactions

Let’s take the classic example of where that money comes from: an exchange.

When you sign up for an exchange like Coinbase, you go through KYC. They know who you are, how much you buy, and where you send it.

So, when you send funds from the exchange to your secure cold wallet, they have access to this transaction. They could deduce that wallet as yours (and share that info with the IRS or NSA, etc). Even if you use a mixer, the exchange will still see this and flag or even block your address.

It’s all connected, forever.

Now, in this pure example, nobody else could deduce that this cold wallet is yours. Randos on Twitter wouldn’t be the wiser. On-chain it’s just another transaction.

This is basic pseudo-anonymity: the public doesn’t know that this account is yours, but there is some trail that could identify you to someone. In essence: you are not guaranteed anonymity. 

The risk of exposing your addresses and losing that pseudo-anonymity is exacerbated by participation in the network:

  • Transferring funds
  • Registering ENS
  • Buying NFTs
  • Using DeFi
  • Transacting with platforms like God’s Unchained

So it’s good to arm yourself with some principles & rules for using Ethereum so you can guard yourself from exposure.

Principle #1: Be Public AND Private

Use specific public & private addresses and keep them completely separate.

With this one principle, you’ll be able to maintain pseudo-anonymity with one reason: intention.

When you commit to using a public address, you acknowledge and understand the public nature of the chain itself. This inherently will train you to think between public and private transactions.

Always think: “Should I use my public address for this transaction?”

For example, I use my public address for:

  • Registering ENS & mapping it to my Twitter
  • Connecting to God’s Unchained
  • Building example transactions for education
  • Kicking the tires on DeFi platforms before diving in
  • Linking with 3box and Satellite

Not everything can be private; rather than deprive yourself of using various protocols, use a public address with them instead.

With that, you can expand into a few simple rules (and a handy flowchart).

Rule #1: Use multiple addresses

Not only should you split between public and private addresses, but you should use multiple of each to diversify your pseudo-anonymity.

Maybe you don’t want two public protocols to know that you’re using the other. Consider using a public address for each.

If you want to guard your private address against the risk of exposure, split it into multiple. Use one for DeFi and one for hodling – this way no one can determine your full net worth by uncovering one account.

Use one for a public pseudonymous Twitter account.

With multiple addresses, you limit your exposure to connecting them all.

Unfortunately, as you expand your address collection, your fees for moving those funds around grows. Be sure to consider transaction fees into your privacy plan.

Rule #2: Never cross streams

Never transact directly between your public and private addresses.

Only send assets to your addresses from a centralized exchange (or a mixer).

Due to the way centralized exchanges are set up, they essentially act as a mixer with the way their receive/send currency. So, if you need to send money from your private address to your public one, send it to your exchange first and disperse it to your public address in two transactions to ensure you leverage the mix properly.

Obviously this does still leave you exposed to exchange deduction, but it will keep the public out of the know. You’re not trying to hide from big brother, are you?

Rule #3: Use Brave, a VPN, and Tor

Looking to supercharge your privacy?

Use Brave browser and always clear cookies & local storage when switching between public and private accounts. This prevents individual applications from tracking that two addresses could be linked to the same user.

Use a VPN or Tor to totally obfuscate your internet browsing history from your ISPs.


When you actively commit to dividing transactions between multiple public and private addresses, you’ll be well on your way to concealing your true net worth & activity; limiting your exposure to being a target for crypto theft and questions from your mother-in-law.

What tips do you have?

Why ENS will be superior to DNS in every way

Anyone who knows me well enough knows that I have a tendancy to buy domains names without second though (shout out to gotballs.org…).

So naturally, I have a few issues with the domain name registrar industry as a whole:

  1. Premium Domains are an absolute scam. Registrars can choose to markup domain names for profit as they see fit even though they don’t own the domain.
  2. ICANN is essentially shaking down users for profit and owns a monopoly on the creation of new TLDs
  3. Domain ownership requires private information to be provided during registration and you would then need to pay for WhoisGuard on top of that to prevent spammers from retrieving it.

Now, the current industry exists as a natural byproduct of the technology that existed at the time it was required. A central trusted authority was needed to maintain a ledger of who owned what domain and which server had its data. A necessary evil, per se.

Blockchain did not exist to serve as a trustless middleman to coordinate this information.

But now it does.

What is ENS?

So ENS – Ethereum Name Service – is a smart contract built on the Ethereum network that acts as a trustless, decentralized mechanism for registering and managing domain names.

For example, through ENS I have registered jameswmontgomery.eth by sending an arbitrary amount of ether to the smart contract. It then marks my address down as the owner for X number of years and will expire unless I reregister.

Most notably, the ether I sent does not go to some corporation – it literally gets burned.

The first thing you’ll notice, though, is that you cannot simply visit jameswmontgomery.eth as you would jameswmontgomery.com – at least not on major browsers (yet). We’ll revisit this in a bit.

Primarily – at this point – ENS’s main value is acting as a shortcut for Ethereum addresses (and other cryptocurrencies).

Specifically, instead of sending ether to my address 0xcDbB43A1BacB5Fe29ff895C7f79dC9dD0d536F71, you would send it to jameswmontgomery.eth from a supported wallet like Meta Mask or MyEtherWallet.

The ENS smart contract would then automatically route the payment to the correct address; it’s even smart enough to route payments to the different token addresses automatically like Ethereum, Bitcoin, BCash, Ripple, and others.

It doesn’t sound like DNS though.

Payment routing is just the beginning.

They’re also rolling out support for registering existing TLDs like .com and have already established a proof-of-concept with the .xyz TLD.

This allows existing TLD registrants (you can’t just buy google.com, sorry) to claim their domains on the ENS network and enable three key features:

  1. Accept payments from any crypto wallets directly to jameswmontgomery.com without an intermediary like PayPal.
  2. Join Web 3.0 by serving site content through Swarm and IPFS.
  3. Store meta data like email, Twitter username, and others as structured data for easy reference on apps.

It can’t be far from thought for the architects to want to support core DNS features like A Records, CNAME, etc as well, but these features are currently not supported.

TL;DR

When ENS does support these key DNS features, it will ultimately be the superior choice for the future of the internet because:

  1. It does not rely on a central authority to maintain a ledger of ownership
  2. It does not arbitrarily establish “premium” domain names and jack up prices (though, it does have simple character count scaled price to ward off domain piracy).
  3. It is an open source protocol that can ultimately be governed by a DAO instead of a corporation.
  4. It is inherently censorship resistant and governments cannot shut down ENS addresses.
  5. DNS’s core function as a distributed ledger with TTL is handled by default on Ethereum.

Thoughts?

How to Create a Cryptocurrency: Part 1

Why would you want to create your own cryptocurrency?

I don’t know, I’m not you.

But what I can tell you is why I made my own: for fun.

Now, there are some truly legitimate reasons to make a cryptocurrency, but let’s save that for another blog post.

In my opinion, creating a cryptocurrency is now like building a Hello World page when you first start to code – it’s a great foundation and gets you started with a new skill, but we have so many it’s a bit of a running joke now.

With that in mind, here’s the gist of what needs to happen in order to create your own cryptocurrency.

  1. Download Ethereum’s Mist client
  2. Load some Ethereum on it
  3. Paste some code
  4. Publish

Sounds pretty simple, right?

It is. It’s really that simple.

So simple, that there are (of course) tools that automate all of that for you in one click.

But you’re here for something more .. in depth.

If you just copy and paste some code or use a one-click launcher, you won’t really understand how your new cryptocurrency works or how to make it better.

Let’s learn together.

Basic Cryptocurrency Principles and Definitions

First, let’s tackle the basics in the context of the Ethereum blockchain.

Protip: Since we’re publishing our cryptocurrency on top of an existing blockchain, it’s technically called a token. If we had our own blockchain, it would be considered its own (alt)coin.

Blockchain

Think of it like a group chat – we all have a copy of the history of every message and can add new messages ourselves – but we can’t go back and change any messages.

The blockchain is the history of every message while the messages are transactions that contain simple actions like “send tokens” or complex ones like “publish a smart contract”.

Since the entire history is stored, we can always refer back to any message and trust that it is accurate.

Address

Much like it sounds, an address is where something is located on the blockchain.

It looks like this 0xE798e24428621C24f40C48A70E……

If you wanted to send some ether to your friend, it would come from your address and go to their address.

With the Ethereum blockchain, every address can store ether – this is called the balance.

Ethereum is different from Bitcoin because it can also store the code from a smart contract.

Protip: Smart contract addresses are special because no one person owns the address. Be sure to add code into your smart contract that makes it accessible from your personal addresses.

Transaction (Tx)

A transaction is just a public message added to blockchain that says four things:

  1. Which address it’s going to
  2. Which address it came from
  3. How much ether it wants to transfer
  4. Additional data payload (like smart contract code.. we’ll cover this later)

Through Mist (or apps like Coinbase), when you send/receive coins they’re actually packaged in a transaction and stored in the blockchain.

This history of transactions on the blockchain allows us to ultimately come to an address balance.

Smart Contract

A smart contract is a bunch of code that lives at a special owner-less address on the blockchain.

It’s completely public, but the code can prevent/allow access to certain functions to a limited number of addresses.

For example, our cryptocurrency smart contract will allow users to send tokens from their own address, but not from others.

Smart contracts also have a balance and even a storage system for keeping track of data.

We’ll be diving deep into this throughout our tutorial.

Protip: A DApp (Decentralized Application), at a basic level, is just a collection of smart contracts that interact with each other. They can be as simple as a cryptocurrency issuance or as complex as payroll or voting.

Mist

Mist is Ethereum’s desktop application for managing your addresses (accounts) and smart contracts.

It can sync up with the main Ethereum blockchain (real money), with its test blockchains Ropsten/Rinkeby (fake money), or even a local blockchain you made on your own.

Mist is how you will deploy and interact with your new cryptocurrency smart contract – download it from Github.

Note: It can take a little while for the blockchain to download onto your computer, so be patient when it first loads.

Overview of Creating a new Cryptocurrency Token

Let’s talk about the broader context of what we’ll actually be doing. We’ll dive deeper a bit later.

First, we’re going to download and initialize Mist

Mist is our connection to the Ethereum blockchain.

It stores our ether, publishes smart contracts, and can technically even browse the internet.

Download it, connect to one of the test networks (so we can try it for free), and wait for a while as it downloads the blockchain.

Meanwhile, we’ll create a Mist account, head to the test faucet, and send some free ether to your Rinkeby test account. (no, it’s not real ether)

After the blockchain is finally downloaded, we get into the code.

Next, we’ll write a smart contract

This code needs to contain all the necessary pieces of our new token because we can’t edit it once we deploy.

The code will include the coin’s name and functions for creating an address framework, minting coins on launch, sending coins from one address to another, and even burning coins from existence.

Then, we send it to the Ethereum blockchain via a transaction

In Mist, we’ll package our code in a transaction and send it to the blockchain for processing.

Like any transaction, it will cost ether. Luckily, the test networks offer free ethereum for testing.

Once the transaction is confirmed, we will be given the address where the contract lives. This is the address where all transactions will be sent to in order to send your new token.

Finally, we’ll send some tokens from one Mist account to another

Since our smart contract is publically available on the blockchain, we can send transactions to it that modify address balances and effectively “send” cryptocurrency to one another.

Luckily, Mist handles this pretty seamlessly so you’ll be able to do it right within the Send panel.


Enough overview, let’s get started .. in the next post!