程序代写 Chapter 10: Altcoins and the Cryptocurrency Ecosystem

Chapter 10: Altcoins and the Cryptocurrency Ecosystem
Bitcoin is just one component (albeit an important one) of a broader ecosystem of alternative, but
o f t e n q u i t e s i m i l a r , c u r r e n c i e s c a l l e d a​l t c o i n s .​I n t h i s c h a p t e r , w e ’ l l l o o k a t a l t c o i n s a n d t h e e c o s y s t e m of cryptocurrencies.
10.1 Altcoins:HistoryandMotivation

Copyright By PowCoder代写 加微信 powcoder

Bitcoin was launched in January 2009. It wasn’t for another two years, until the middle of 2011, that the first Bitcoin‐like derived system, Namecoin, was launched. The rate of altcoin launches exploded in 2013, and hundreds have since followed. How many are there in all? It’s impossible to provide an exact number because it’s not clear which altcoins are worth counting. For example, if someone announces an altcoin and perhaps release some source code, but no one has started mining or using it yet, does that count? Other altcoins have been launched and seen some initial use, but then died very quickly after their launch.
Figure 10.1: Altcoins launched per month (measured by genesis block creation).
It’s also not quite clear what is an altcoin as opposed to simply another cryptographic currency. There were, after all, various cryptocurrency proposals and systems which predate Bitcoin and these are usually not called altcoins. Many altcoins borrow concepts from Bitcoin, often directly forking its code base or otherwise adopting some of Bitcoin’s code. Some make only very minor modifications to Bitcoin, such as changing the value of some parameters of the system, and continue to incorporate changes made by Bitcoin’s developers. To date, all altcoins that we know of begin with a new genesis block and their own alternate view of transaction history, rather than forking Bitcoin’s block chain after a certain point in history. For our purposes, we don’t need a precise definition of an altcoin. Instead we’ll loosely refer to any cryptocurrency launched since Bitcoin as an altcoin.

We’ll briefly mention non‐altcoin systems like Ripple and Stellar: these are distributed consensus protocols in the tradition that we looked at in Chapter 2. These systems achieve consensus in a model where nodes have identifiers and need to be aware of each other. Bitcoin, of course, radically departs from this model. In both Ripple and Stellar, the consensus protocol supports a payment/settlement network, and each system has a native currency. Despite these similarities with altcoins, we don’t consider them to be in scope for this book.
Reasons for launching altcoins. E​very altcoin needs some kind of story to tell. If an altcoin can’t claim some characteristic that distinguishes it from all of the others, there is no reason for it to exist. In the simplest case, an altcoin simply changes some of the built‐in parameters to Bitcoin. This includes things like the average time between blocks, the block size limit, the schedule of rewards being created, or the inflation rate of the altcoin.
There can also be more complex technical differences, which is a more interesting case. For example there can be additions to the scripting language to express different kinds of transactions or security properties. Mining could work differently and the consensus algorithm could be significantly different from Bitcoin’s.
Sometimes altcoins are also launched with a theme or a sense of a community that the altcoin is intended to support or be associated with, often giving members of this community a special role or abilities in the altcoin. We’ll look at examples of all of these later in this section.
How to launch an altcoin.​Let’s consider what’s involved in the process of launching an altcoin and what happens after an altcoin is launched. As we mentioned, creating an altcoin involves creating a new reference client, typically by forking the existing code base of some existing, more well‐established altcoin, or of Bitcoin itself. The easy part is to add in a bunch of technical features or modified parameters you think will work out well. In fact, there was once a website called Coingen that would automate this process for a small fee. It allowed you to specify various parameters like the average block time and the proof‐of‐work algorithm you wanted, in addition to a name for your altcoin, a 3‐letter currency code, and a logo. Then at the click of a button you’d download a fork of Bitcoin with the parameters you chose, and you (and others) could immediately start running it.
The hard part is bootstrapping adoption of your altcoin. You can fork the source code and you can announce it publicly, but at this point nobody is using your altcoin so it has no market value (since nobody wants the coins) and no security (since there aren’t miners yet). In Chapter 7 we saw that there a number of stakeholders in Bitcoin: developers, miners, investors, merchants, customers, and payment services. Eventually you’ll have to attract all these types of participants to your altcoin economy to get it off the ground.
All of these are important and interrelated, and analogous to the challenge involved in launching any other platform and getting it adopted. If you wanted to launch a new smartphone operating system, say, you’d need to attract users, device manufacturers, app developers and various other stakeholders, and each of these groups needs the others.

Attracting miners has special importance for cryptocurrencies because without adequate hash power behind an altcoin, security may fail badly if double‐spending and forks are possible. In fact, your altcoin might be run over entirely; we’ll look at “altcoin infanticide” later in this chapter. There isn’t a simple recipe for bootstrapping adoption, but in general miners will come once they believe the coinbase rewards they receive will be worth the effort. To encourage this, many altcoins give early miners greater rewards. Bitcoin, of course, pioneered this approach but some altcoins have taken a more aggressive approach to rewarding early miners.
Getting a community of people to believe the altcoin is valuable is the most difficult trick. As we discussed in Chapter 7, even for Bitcoin it’s not clear exactly how this process was bootstrapped as it relies on the Tinkerbell effect. This ties back to why altcoins need a good narrative: to get off the ground community of people need to believe that the new altcoin is really going to be valuable in the future (and believe that others will believe it is valuable, and so on).
Given a community of people interested in obtaining an altcoin, miners will typically come (although it might be risky if the value increases more quickly than miners can switch to begin mining the currency). Other important elements will usually follow in turn once value is perceived‐like getting your altcoin listed on exchanges and developing various types of supporting infrastructure are useful, ranging from an advocacy foundation to tools for exploring the block chain
Pump‐and‐dump scams.​When the creators of an altcoin have succeed in bootstrapping a community and a real exchange market, they have often found themselves very wealthy. That’s because they almost certainly own a large quantity of coins — for example by being early miners before the hash rate increases, or even “pre‐mining,” which we discuss below. Once the altcoin’s exchange rate rises, the founders will be in a position to sell off their coins if they choose to.
The possibility of getting rich has attracted entrepreneurial individuals and venture capital to altcoins, and unsurprisingly, it has also attracted scammers. Indeed, the line between the two is sometimes a bit blurry. A scammer might use a variety of methods to exaggerate an altcoin’s potential and drum up interest. They may hype up its supposed technical merits, fake the appearance of grassroots support, purchase the altcoin on the market at inflated prices, and so on.
In fact, this scam can be pulled off even by someone who is not the founder of an altcoin. They would first need to buy up shares of some obscure altcoin, then convince the public of this coin’s supposed undiscovered potential (i.e., “pump” the altcoin). If they succeed in inflating the price this way, they can unload their shares and reap a profit (i.e., “dump” their coins). At this point investors will probably become wise to the fraud and the price will plummet, with many people left holding worthless coins. This kind of pump‐and‐dump fraud has long been perpetrated in mainstream finance, using obscure, low‐priced stocks, and it was common in the early days of altcoins as enthusiasm was high and investors struggled to differentiate truly innovative altcoins from “me‐too” systems with slick marketing but no real innovation. As a result, users and investors are somewhat weary of altcoins today.

Initial allocation. I​n Bitcoin, currency is allocated to users solely through mining. But for various reasons, altcoin developers have sought other ways of initial currency allocation in addition to mining.
Developers may “pre‐mine” the currency, that is, reserve some portion of the money supply for themselves or some other designated entity (such as a non‐profit foundation with a charter to develop the currency). The idea is that the possibility of a windfall gives developers more of an incentive to spend time creating and bootstrapping a new cryptocurrency. Sometimes they go further and do a “pre‐sale,” where they sell these pre‐mined units to other speculators for bitcoins or fiat currency. This somewhat analogous to investing in a startup: the speculators can strike it rich if the altcoin makes it big.
Another motivation for seeking additional methods of initial allocation is to ensure that there’s a diverse community of early adopters who own the currency and have a stake in its success, given that mining today is rather centralized and might lead to concentrated ownership of assets. A clever way to enable diverse ownership is to allocate altcoin units to existing Bitcoin owners.
How can we technically design the system so that anyone who owns bitcoins can claim their share of the altcoin, with this claim being automatically adjudicated? One option is a proof‐of‐burn, which we discussed in Chapter 3: users can claim units of a new altcoin in proportion to a quantity of bitcoins they provably destroy. The owner will commit to some data in the proof of burn, such as a special string identifying the specific altcoin, to show that they are burning bitcoins solely to earn new units of this specific altcoin.
Allocating altcoins via a proof‐of‐burn is also called a “one‐way peg” or “price ceiling”. Associating one altcoin unit to (say) one bitcoin doesn’t actually make it w​orth​one bitcoin. It ensures instead that the altcoin will be worth a​t most​one bitcoin, since one bitcoin can always be cashed in for an altcoin, but not vice versa.
Figure 10.2: Allocating altcoins via proof‐of‐burn.​The altcoin supports a GenCoin transaction that t a k e s a B​i t c o i n ​t r a n s a c t i o n a s i n p u t . G e n C o i n i s s i g n e d b y t h e s a m e p r i v a t e k e y t h a t s i g n e d t h e proof‐of‐burn (and using the same signature scheme). This ensures that the same user who burned b i t c o i n s a l s o c r e a t e d t h e G e n C o i n . I f t h e p e g r a t i o i s 1 : 1 , t h e n v​’ ​m u s t b e n o g r e a t e r t h a n v​.​
There’s a less heavy‐handed alternative: require proving ownership of bitcoins, but not burning them, to claim altcoins. Specifically, the altcoin would designate a Bitcoin block height (perhaps coinciding

with the launch date of the altcoin) during which anyone who owned an unspent Bitcoin transaction output as of that block would be able to claim a proportional amount of altcoins. In this system, there isn’t necessarily a fixed relationship between the price of a bitcoin and the price of an altcoin, because bitcoins aren’t being “converted” to altcoins via the proof‐of‐burn.
Figure 10.3: Allocating altcoins by proving ownership of bitcoins.​The input to GenCoin is one or more u​nspent Bitcoin transaction outputs​at the designated block height. It is be signed by the private keys that control those unspent outputs, as in any normal Bitcoin transaction. Here the Bitcoin transaction shown has two unspent transaction outputs, to addresses B and C, at the designated block height. The owner of address B has claimed their altcoins, but the owner of address C hasn’t yet done s o . I f t h e p e g r a t i o i s 1 : 1 , t h e n v​’ ​m u s t b e n o g r e a t e r t h a n v​ ​1 .​
Of course, to make all this happen, altcoin miners need to stay on top of the Bitcoin block chain as well. The altcoin must specify what counts as a confirmed Bitcoin transaction. One option is to require some fixed number of confirmations, say 6. Another option is to specify the most recent Bitcoin block in each altcoin Block. This way, Bitcoin transactions become immediately available to spend in the altcoin. This is analogous to the fact that within Bitcoin itself, transaction outputs can be spent in the very next block or even in the same block. Merge mining, which we’ll discuss in the next section, is one way to tie altcoin blocks to Bitcoin blocks.
Finally, donating already‐allocated coins is another way of increasing the diversity of the currency owners. One method is tipping: various services allow sending tips to an email address or a social media account, which is partly a way to incentivize the recipient to learn about and have a stake in the currency. The tipping service keeps the coins in escrow and the recipient gets a message telling them that they have coins they can collect. The recipient can claim the coins by authenticating themselves to the service via their email address or social media account. They’ll also need to install wallet software or enable another way to receive coins. Another donation method is a faucet: these are services that give out a small quantity of coins to anyone who visits a site and perhaps enters an email address.

10.2 A Few Altcoins in Detail
Now we’re going to focus on a few of the oldest altcoins and study their features in more detail.
Namecoin.​We’ve seen how Bitcoin’s block chain is a secure, global database. Once data has been written to it, it is tamper‐proof and its inclusion can be proved forever. Could we modify Bitcoin’s design to support other applications of secure global databases, such as a naming system?
We’ll need a few ground rules to make this database more useful for non‐currency applications. First, we agree to view data entries as name/value pairs, with names being globally unique. This allows everyone to look up the value mapped to a name, just like a hash table or a database with a primary‐key field. To enforce the global uniqueness of names, if a name/value pair has the same name as a previous database entry, then we view it as an update to the value rather than a new entry.
Second, we agree that only the user who initially created the entry for a particular name is allowed to make updates to that name. We can easily enforce this by associating each name with a Bitcoin address and requiring the update transactions to be signed by the private key for that address.
We could do all this on top of Bitcoin, just as we said in Chapter 9 that we could build any overlay currency using Bitcoin as an append‐only log. But it’s simpler to do it in an altcoin because we can take this gentleman’s agreement and write it into the rules of the altcoin. These rules would then be inviolable and enforced by the miners, rather than requiring each user (i.e., full node) to check the rules for itself and independently decide what to do if they are violated. Done right, it would even allow SPV‐style proofs: a lightweight client would be able to submit a query (i.e, a name) to a server running a full node, and the server would return a value for that name, along with a proof that the returned value in fact the latest update for that name in the database.
That’s Namecoin in a nutshell. It’s a global name/value store where each user can register one or more names (for a nominal fee) and then issue updates to the values of any of their names. Users can also transfer control of their names to others. In fact, you can make a transaction that transfers your domain to someone, and at the same time, transfers units of the Namecoin currency from them to you. Since this is a single atomic transaction, it’s a secure way to sell your domain to someone you’ve never met and don’t trust. As of 2015 Namecoin doesn’t support secure lightweight clients, but an extension that supports this has been proposed.
Namecoin’s goal is to provide a decentralized version of the Domain Name System (DNS), the names in the database being domain names and the values being IP addresses. You can’t use this by default with an unmodified browser, but you can download a browser plugin for say Firefox or Chrome that would allow you to type in an address like example.bit — any domain name that ends in .bit — and it will look up the location in the Namecoin registry instead of the traditional DNS.

Namecoin is technically interesting, and it’s also historically interesting — it was in fact the first altcoin to be launched, in April 2011, a little over two years after Bitcoin was launched. It features “merge mining” which we’ll discuss later in this chapter.
Namecoin isn’t used very much as of 2015. The vast majority of registered domains are taken by “squatters,” hoping (but failing so far) to sell their names for a profit. Namecoin supporters tend to argue that the existing DNS puts too much control over a critical component of the Internet into the hands of a single entity. This view is popular in the Bitcoin community, as you can imagine, but it doesn’t look like mainstream users are clamoring for an alternative to DNS, robbing Namecoin of the killer app it needs to see significant adoption.
Litecoin.​Litecoin was also launched in 2011, some time after Namecoin. For the past several years, Litecoin has been the number one altcoin in terms of overall popularity and user base. It is also the most widely forked codebase. In fact, it has been forked more times than Bitcoin itself.
The main technical distinction between Litecoin and Bitcoin is that Litecoin features a memory‐hard mining puzzle (based on scrypt), which we talked about in Chapter 8. When Litecoin was launched, Bitcoin mining was in the GPU era, and so the goal of Litecoin’s use of a memory‐hard mining puzzle was GPU‐resistance. When it was launched, you could still mine on Litecoin with a CPU, long after this had become futile for Bitcoin. But since then, Litecoin hasn’t succeeded in resisting the transition to GPU mining and then to ASICs. Each of those mining transitions took a bit longer in Litecoin than Bitcoin, but it’s not clear if this is because Litecoin’s puzzle was actually harder to implement in hardware or simply because Litecoin’s lower exchange rate provided less incentive to do so.
In any case, the performance improvements of ASICs compared to CPU mining are roughly similar for Litecoin as they are for Bitcoin. In this sense, Litecoin failed in its original goal of creating a more decentralized system by maintaining a community of CPU miners. But, importantly, this narrative still worked for bootstrapping Litecoin — it attracted many adopters who ended up staying even after the original premise failed. Litecoin has since explicitly changed its narrative, stating that its initial allocation was more fair than Bitcoin’s because it resisted ASICs for longer.
Litecoin also makes a few minor parameter changes: for example blocks in Litecoin arrive four times faster than in Bitcoin, every 2.5 minutes. Litecoin otherwise borrows as much from Bitcoin as possible. In fact, its development has followed Bitcoin, so that as patches and improve

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com