We’ve heard it hundreds of times. Blockchain is Web 3.0 or Geekdom’s latest marvel. Entrepreneurs, or business owners, who capitalize on this technology when young make it rich. Innovators like Ripple turned a $10,000 investment into $1.5 million in five years. Binance, only a year old, has a market cap of $840.8 million, according to Coinmarketcap. So it’s understandable that you’d speculate about launching your own business blockchain. You may not want to innovate anything, but, hey, blockchain’s said to be the next Revolution. Blockchain fanatics say it’s a core differentiator and value driver, leading you, if you have a business, to quite likely think maybe you should jump on board.

Should you?

Brian Winker’s take on blockchain for business

Sometime last year, I interviewed Brian Winkers, founder of blockchain money automation company bitlov.com that won first place in the 2015 StartUp Chile! Competition.

Winkers himself is an open-source developer and Bitcoin analyst who has been playing around with crypto projects since 2012 and has helped small and medium-sized businesses get on or, rather, more often, off the blockchain.

For Winkers, blockchain for small business is a bonkers idea, largely because of Bitcoin. Bitcoin’s platform has problems with scalability: The platform is slow – around ten transactions per second compared to Visa’s 5,000 to 8,000 transactions in the same time span. The ledger became congested. The company itself struggles with internal squabbling.

Truth is Bitcoin is competing with more scalable and less problematic platforms like Ethereum and IOTA, so businesses can profit from blockchain more than was possible, say, ten years ago.

The problem is the expense.

Blockchain expense

Blockchain technology is free if you want to do all the work. The problem is recruiting a blockchain developer, and that’s where the trouble starts. As of 2018, a decent blockchain developer costs anywhere from $150,000 to $200,000 at the very least. Forget the fly-by-night freelancer from a platform like Elance, Guru or the like. Actually employing someone from such a platform would likely cost you more, since you may have to pay for errors. Any coding error or slight mishap means the ledger needs to be dismantled and rebuilt from scratch, aside from which technological changes occur so rapidly that top blockchain developers regularly familiarize themselves with updates.

Want a top developer? Expect to pay $250,000-$450,000 for a whiz, or triple that for a world-class specialist, according to Pavel Supronov on Medium. You think blockchain saves you money? According to John Levine, crypto consultant, author, and speaker, blockchain is the most expensive database ever invented.

Is your blockchain for innovation?

To get some ROI from your blockchain investment, you need some really BIG idea that’s stupendously different than competitors and that delights hordes of people. (Think of a Ripple or Binance).  Such a feat, according to Winkers, is performed by only two out of every hundred ICOs or startups.

In all my years,” Winkers told me, “I’ve only found one ICO that makes sense, and that’s the one I’m with right now. A Russian company called Visor looking to create a payment coin. I’m providing some technical guidance, more on the architecture side. I think they have a good team that understands the need to meet the underlying business needs. It’s not about them having a big payday.”

Winkers added:

I regularly tell businesses not to proceed with Bitcoin, but to focus on more conventional solutions. I try to help them customize their business, figure out what they can do.  Unfortunately, most people who approach me are dazzled by Bitcoin and the ledger. They don’t understand it… but just about everyone’s doing it so they want on the bandwagon. Now if they’d have a wonderful remarkable useful idea that may be one thing, but they often emerge with impractical, unfeasible ‘solutions’, so it’s a waste of their time and money.

At the end of the day, if your mind is on blockchain for fame or money, Winkers doubts you’ll succeed. You’ll want to have a solid idea that makes sense and that lasts for decades.

Blockchain to save you money?

How about if you don’t want to innovate but are sold by the blockchain hype and want blockchain to expedite your business? Say, you’ve read reports like that by management consulting giant Accenture and McLagan who insisted that blockchain promises cost savings of 70 percent or more in finance areas? Or you read the 2014 EY report how blockchain-based businesses outpace competitors?

Well, blockchains have certain problems that you’d want to know about…

The National Institute of Standards and Technology (NIST) – a non-regulatory agency of the U.S. Department of Commerce – recently released a report for beginners to blockchain and business owners often tempted by new technology.

The report pointed out that blockchain can’t control users’ conduct.  The NIST also highlighted the misconception that blockchain is “trustless” – you need a great deal of trust in the technology, developers, and user cooperation for the blockchain to function. Further, users must manage their own private keys that, once lost, are harder to recover than usernames or passwords on centralized platforms.

Additionally, blockchains are massively inefficient. Set up a blockchain and you’ll need each and every user to archive, and constantly update, a complete history of all that’s happened on that blockchain. 

Finally, but not conclusively, blockchains also require a computational challenge to restrict the creation of new blocks. If it’s too easy, hackers could temporarily mobilize enough computing power to rewrite history; if it’s too hard, each new block will consume megawatts of electricity. And electricity for blockchain costs hundreds, if not thousands, of dollars.

On the other hand…

As we speak, blockchain improves all the time. More modern technologies produce decentralized platforms that have more bandwidth, are faster, more convenient, easier to program. IOTA, for example,  uses a “blockchain” that isn’t the traditional format but a new one called Tangle that knocks out the expense and time of mining. IOTA transactions are super-fast and process several transactions simultaneously.  Its structure perfectly suits the Internet of Things (IoT), where products and appliances like cars, home appliances and machinery “tangle”. Businesses on  “next generation” blockchains like IOTA report a smooth, fast and cheap experience that almost resembles that of the Web.

So to blockchain or not to blockchain?

A unanimous decision tree floating the Web may resolve your problem.

Ask yourself the following:

  1. If you need a database, are all the writers or participants on your team known and trusted? Is there anything you need to hide? Do you need to hire, or involve, trusted third parties? Do you need to control functionality? Are your transactions private? If your answers are a flat “no” to each of these questions, either stick to a standard database or use a public blockchain.
  2. Does more than one participant need to be able to update the data? Do you need to hire third-parties whom you’re unsure whether you can trust? Do you have any confidential data? Do you and all the updates on your team barely know one another or have some qualms of one or more users? If you answered “yes” to one or more of these questions, use a permissioned or hybrid blockchain.
  3. Does the data need to be kept private? Do you need to control who can make changes to the blockchain software? Do you have the money for blockchain programming and continuous maintenance and upgrades? Consider a private blockchain.
Do you even need Blockchain?

Even then Winkers would tell you to mull your decisions carefully. 

“I’ve always worked to make sure that small businesses aren’t taken advantage of by others in the technical fields,” he told me, “And that includes blockchain. For some it’s the right path, for others, it’s a costly diversion.”

“ICO companies that invest in blockchain have a 98% failure rate. That’s not the route,” Brian insisted, ”that I’d want to take.”

 

About three years ago, a so-called crypto-anarchist, deep into libertarianism, hired me to write a book that included content railing against government anti-money laundering regulations. As he saw it, there is essentially nothing wrong with financially supporting terrorist organizations,  smuggling drugs or other contraband items. (Hell, there was nothing wrong with terrorism to him; one man’s terrorist is another man’s freedom fighter). People can do what they want as long as they don’t harm others. Drugs and prostitutes (for instance) delight individuals. And, therefore, the government, which, by the way, does a lousy job of literally minding its own business should focus on “minding its own business”.

Five years later and knowing more on money laundering, I think large-scale smuggling and certainly funding terrorists may have more negative social and economic ramifications than my well-meaning friend opined. This is  partly because unrequited criminal laundering turns us into a criminal society – after all why work ethically when we can make far more money in illicit activities. Above all, successful money laundering means more drugs on the streets, more drug-related crime, more fraud, more corporate embezzling, and more terrorism, among a host of other social ills.

What  is money laundering?

money laundering

 

Money laundering, at its simplest, is the act of trying to make money that comes from nefarious Source A look like it comes from “clean” Source B. If caught, the perpetrator can’t use that money, since law enforcement would seize it. Source A involves funding ISIS, smuggling cocaine, engaging in corrupt political businesses, or benefiting from fraudulent business schemes, as examples.

If I were involved in any of these activities and would want to retain my stash, I’d be advised to go through the following three steps:

  1. Placement – Find a place to stash my money. If I wire the trove to my banks Capital One or Charles Schwab, they’d have to tell the government I’m suddenly depositing millions in checks. So I need to find a resilient hiding place.
  2. Layering – Money launderers can teach me all sort of schemes like wiring money between different accounts in different names in different countries, or purchasing high-value items (boats, houses, cars, diamonds) to change the form of my money. I can also change my money’s currency – and this is where cryptocurrency comes in. So, I can change my dirty dollars into Bitcoin and then again into Monero or Dash to better hide its source – now there’s a way to evade the cops!
  3. Integration – At this point, my money re-enters mainstream society as though it comes from a legitimate source. I’ve strategized in such a way that my startling fortune is innocuous and can slip under the radar.

The government’s response to money-laundering

Anti-money laundering regulations

In the United States, the Department of Justice, the State Department, the Federal Bureau of Investigation, the Internal Revenue Service and the Drug Enforcement Agency join forces in catching money-launderers like me. State and local police investigate cases under their jurisdiction. On the international stage (and when it comes to blockchain), organizations like the United Nations, the World Bank, the International Monetary Fund and the Financial Action Task Force on Money Laundering (FATF) send in their troops. The last has 33 member states and organizations, as of 2018.

Cops combine legislation with law enforcement.  In the United States, legislative acts include:

  • The Bank Secrecy Act (1970) – Financial institutions have to report all single transactions above $10,000 and multiple transactions totaling more than $10,000 to or from a single account in one day. When it comes to the blockchain industry, this includes money service businesses (MSB), too. Bankers who violate this rule can serve up to 10 years in prison.
  • The 1986 Money Laundering Control Act – Any aspect of money laundering is a crime punishable by fines or jail.
  • The 1994 Money Laundering Suppression Act – Banks have to establish their own money-laundering task forces to weed out suspicious activity in their institutions. When it comes to blockchain-based financial institutions, customer due diligence (CDD) rules are no different.

In truth, it’s a perpetual chase of cops vs. robbers, with the robbers mostly slipping through even as cops set the traps.

How do AML rules impact ICOs?

ICOs, also known as token sales, can fall foul of anti-money laundering regulations with their digital tokens.  While “utility tokens” that only give investors access to the startup’s features are ok,  it is the “security tokens” that may offer investors equity or some form of an investment return that are problematic.

This is where a growing number of ICOs interest themselves in Know Your Customer (KYC) and Anti-Money Laundering (AML) regulations for reasons that include the following:

  1. Establish credibility with banks – After all, banks don’t want to trip up with organizations like FinCen, a bureau of the U.S. Department of the Treasury, that snoops into whether financial institutions are adhering to KYC.
  2. Long-term legitimacy – It’s good for your bottom line. You don’t want the government to bust your booty as happened in 2014 with Mt. Gox, the largest Bitcoin exchange, after the US Department of Homeland Security (DHS) seized suspicious money from its U.S. subsidiary account.
  3. Improved public perception – You appear more legitimate. You’re more likely to interest investors. The Dutch Authority for the Financial Markets (AFM), for one, warns consumers to avoid ICOs:

“Due to their unregulated status and the anonymous nature of the transactions involved, ICOs are attractive for the laundering of money obtained by criminal means. .. Because of these risks, there is a strong possibility that investors will lose their entire investment.”

With your compliance to KYC/ AML rules, you prove the AFM wrong.

4. Expanded reach – You’re more likely to attract investors in countries with rigid KYC/AML regulations like US, UK and Canada.

5. Avoid Regulatory Fines – There have been cases of regulatory bodies fining or suffocating ICOs that smell suspicious. With the Mt. Gox case, more than 3,000 customers lost some, or all, of their investments. You really don’t want that happening to you! AML in practice?

Our most recent guide to all there’s to “KYC: A  Practical Guide for Blockchain Entrepreneur and Investor” gives you the overall picture.

Really, it reduces to three steps:

  • Identify and do background checks on depositors.
  • Report all suspicious activity. (For example, if a background check revealed that depositor A works in an oil rig, and he deposits $2,000 every two weeks, a series of ten $9,000 deposits over two weeks should worry you.)
  • Build an internal task-force to identify laundering clues.

The rest is up to you.

SegWit, short for Segregated Witness, is a system that makes your Bitcoin transactions faster.

Why do we need SegWit?

Think of a single lane highway with 5,000 vehicles driving along smoothly. As traffic builds to 50,000 and more, that single lane becomes clogged forcing you to wait hours on end in congested traffic and maybe miss your appointment. That’s Bitcoin. It’s called the scalability problem, and it’s an issue that the smartest blockchain developers have been trying to find solutions to for years.

SegWit is the Bitcoin team’s solution.

The scalability problem

One of Bitcoin’s most aggravating issues is its lack of speed. Ten transactions take about a second on average to process. Compare that to payment companies like Visa that are able to process around 5,000 to 8,000 transactions per second.

Pay more and you can get yours to the front of the queue, but that makes Bitcoin an expensive and undemocratic system. Besides which, Bitcoin wants to make its platform as efficient and as whizzingly fast as the internet to retain its users and grow its appeal.

The SegWit solution

Bitcoin transactions are made up of blocks with each block able to absorb no more than 1MB of data.

The blocks come in two parts: a header and a body. The header stores a cryptographic hash of the previous block, along with a time signature and other data. The body stores the transactions, including sender data and receiver public keys, which shows you this is a legitimate transaction. Each part takes up room and increases the mass of the block. The signature part alone that is needed to validate the information takes up around 60 percent of its bulk.

In October 2016, Pieter Wuille, co-founder of Blockstream and a Bitcoin Core developer decided to hack of the signature part and put it in a separate block.

Model: Structure of Segregated Witness

This block, called the “witness” block is separate to Bitcoin’s original block. We now have more room in our core block to slip in more information.  The block becomes lighter, so Peter’s idea also helps Bitcoin transactions move more efficiently.

In essence, Bitcoin added a parallel lane to its highway to divert some of its traffic from Route A (call it that) to Route B. Route A has the blocks with sender and receiver data, while the new parallel lane contains the “witness” segment with the scripts and signatures.

Result? The highway is less congested. Your Bitcoin transactions slip through faster.

Other benefits

  • Node performance – The Bitcoin platform is less congested, so nodes can verify blocks, or transactions, faster.
  • Cheaper transactions – At one time, increased demand raised fees. Now, Bitcoin can reduce its fees.
  • Transaction malleability – Originally, the sender’s signature, or the transaction id (txid), was vulnerable to an intruder hacking and changing it and, thereby, hacking the transaction. By SegWit moving the signature from the transaction data to another “lane”, it protects your transaction data from being hacked. 
  • Linear scaling of signature hashing operations – For certain transactions, adding more data, expands the amount of time that each signature needs to be verified. Segwit resolves this by changing the calculation of the transaction hash for signatures so that each byte of a transaction only needs to be hashed no more than twice.
  • Increased security for multi-signature transactions – SegWit provides two different scripts; one to a single public key that is vulnerable to hacking (and therefore to payments being stolen) and another that directs payments to a script hash. This boosts security for multi-signature transactions.
  • Building on top – SegWit frees Bitcoin for the development of second layer protocols, like its lightning network. SegWit activation also boosted development work on other features such as MAST (which enables more complex bitcoin smart contracts), Schnorr signatures (which would enable another transaction capacity boost) and TumbleBit (an anonymous top-layer network).
  • Protects Lightning Network – SegWit is great for payment channels like the Lightning Network (LN), where a vulnerable signature originally prevented more people from using it to remit Bitcoin. 

Where is SegWit now?

In August 2017, Bitcoin finally integrated SegWit into its system. SegWit is called a “soft fork” which means it is compatible with Bitcoin’s old code, minimalizing the hassle to make SegWit work. A hard fork, in contrast, is a system that is so totally incompatible with the old that a separate blockchain and currency is needed to make it work. 

In SegWit’s case, all the system needed was 95 percent of Bitcoin miners to accept the changes, which happened in less than a year.

In 2017, Bitcoin came out with a controversial hard fork SegWit 2x which increased block sizes from 1 MB to 2 MB. Most of the crypto community resisted SegWit 2x due to its ambitious changes. Consequently, the hard fork was canceled only a week before it was scheduled to occur.

What are the main problems with SegWit?

For one, miners and mining pool operators dislike SegWit. Transactions that go through Lightning Network are in a separate channel (i.e., the parallel “line”), which means these transaction fees will not flow to miners.

Some Bitcoin services – like Bitcoin wallets – have been slow to support the SegWit changes. In February 2018, only 14% of Bitcoin transactions were made using SegWit Bitcoin. The numbers have improved since then, but the network is still in the woods.

Critics complain that SegWit doesn’t go far enough to solve the scalability problem. They maintain that only major changes to the Bitcoin platform and to the way Bitcoin handles transactions can decongest transaction flow.

Finally, SegWit has caused divisions in the bitcoin community leading to several hard forks, such as Bitcoin Cash (BCH).

facebook

July, 11, David Garrity the chief executive of crypto asset finance consultancy, GVA research, gave a Bloomberg Radio talk where he suggested Twitter use blockchain to axe its splurge of fake news.

Facebook is the place for gossip, LinkedIn for business connections and Twitter where you go for news. Unfortunately, Twitter has also become a Russian troll farm where, in March, 2018, its CEO, Jack Dorsey, found that a staggering number of 70 million fake accounts impersonated identities and that, at least, 48 U.S. newspapers had been replaced by fake accounts that spread their own news.

In the beginning, information operatives who worked out of the Internet Research Agency in St. Petersburg tweeted real local news. They borrowed handles like @ElPasoTopNews, @MilwaukeeVoice, @CamdenCityNews and @Seattle_Post, and gathered hundreds of thousands of followers. All the time, they groomed their U.S. readers for the 2016 election, when they slanted reports to favor Donald Trump and to harm Hillary Clinton.

False news on social media, a massive MIT study published by Science found, spreads faster than true news. If Putin’s attempt is to fragment the United States of America, he’s doing a mighty fine job.

Twitter’s solution

Between May and June, Twitter purged 70 million accounts, roughly 21 percent of its 336 million monthly active users.

At the same time, Alex Taub, CEO of the social media analytics company SocialRank, had been trying to build an algorithm for Twitter that separates true accounts from false. His problem?

“We keep buying fake followers,” Taub told NBC News earlier this month, “and then we go to make the formula and basically two-thirds of these followers are gone.”

Worse still, fake accounts spring up as old ones are removed. Just this last week, an anonymous Twitter user fooled thousands into believing that Harley-Davidson’s CEO Matthew Levatich called Donald Trump a “moron.”

Harley Davidson fake Twitter post

The false information was retweeted more than 35,000 times, including by prominent Twitter users, such as author Stephen King.

Garrity’s solution: A Twitter Blockchain

Shake any twig and, sooner or later, blockchain technology is bound to drop out as the proposal to any problem.

A few months ago, IBM recommended it for Facebook, so why not for Twitter?

“Blockchain,” said Garrity, “would verify user identity when accounts are opened and also to update that record as new posts are added.”

“Blockchain technology,” Bridget van Kralingen, IBM’s senior vice president of global Industries, platforms and blockchain, said on Fortune’s latest episode of Balancing the Ledger, “fits very well with some of the business model challenges that social media  is facing, and I think they’re very right to take this very seriously.”

Because blockchain uses cryptography, the technology enables users to plug in permission for who can access, or use, their accounts, their usernames, or any derivative related to their brands. This disables impostors from impersonating famous individuals or companies, or from hacking Twitter accounts.

According to van Kralingen, “We would then control our own identities, versus somebody controlling our data today, which I think is very powerful.”

Here’s how your Blockchain Twitter would work

“My concept here,” Garrity explained, “is that Twitter would develop a utility token which users would have to employ to access their platform.”

On the one hand, Twitter wants its investors. The company, also, wants to carry on convincing users that its site imposes few rules and regulations.

On the other hand, Twitter wants to guarantee users that only real people are using its site.

“If they wanted to adopt a solution that allows a better tracking and verification around what activities are taking place on their site, blocking, more than anything else, has possible application and value.”

Twitter has a system in place to verify accounts. Accounts of public interest have blue verified badges next to their profiles and next to the account names in search results. Thus:  . Accounts include government, politics, religion, journalism, media, music, acting, sports, or business. This badge is always the same color and always placed in the same location. Accounts that don’t have the badge next to their name but that display it somewhere else, for example in the profile photo, header photo, or bio, are not verified accounts.

Blockchain would take Twitter’s verified accounts project to a new level, also verifying posts.

The time-stamping encryption features of blockchain would automate the process, relieving Twitter workers of spending hundreds of hours matching tweets against events to fact-check their truth.

Twitter, too, is naturally a distributed network, which plays well into the decentralized distributed technology of blockchain.

“This is because you have many parties who are actually interested in establishing and affirming and upholding the veracity of what’s going across social media platforms. It’s easier for Twitter to consider a blockchain application.”

AUGUR

Our new Twitter platform could also copy Silicon Valley-based company Augur, which, while still in Beta, shows how it can feed real-world truths into its online application by paying reliable users to verify tweets and news. Augur has an Ethereum-based token called “REP” that tracks its users reputations and encourages them to be accurate. Consistent purveyors of true information are rewarded with REP that they can convert into cash.

An Augur-based model sounds rather an expensive proposition for Twitter, but it does illustrate how blockchain technology can signal some interesting solutions for purging inaccuracies.

“If this is what the Russians have done now,” Garrity said, “the main question becomes what are they going to do on an ongoing basis? Do we have a consensus potentially in Congress? Or do we have a consensus overseas, say in the EU to make sure that these practices are stopped, that the bar is being raised?”

Just last week, Director of National Intelligence Dan Coats warned that cyber threat warnings are “blinking red” with daily attempts by Russia and other foreign actors trying to undermine American democracy.

The Russian disinformation campaign continues as you read this article.

“If we can find a technology to enable this kind of verification of identity and veracity of content,” insisted Garrity, “we would all benefit.”

hand-coin

by Petros Koutoupis
Originally published in Linux Journal, republished with permission


How to set up a private ethereum blockchain using open-source tools and a
look at some markets and industries where blockchain technologies can add value.

In Part I, I spent quite a bit of time exploring cryptocurrency
and the mechanism that makes it possible: the blockchain. I covered details
on how the blockchain works and why it is so secure and
powerful. In this second part, I describe how to set up and configure your very own
private ethereum blockchain using open-source tools. I also look
at where this technology can bring some value or help redefine how people
transact across a more open web.

Setting Up Your Very Own Private Blockchain Network

In this section, I explore the mechanics of an ethereum-based
blockchain network—specifically, how to create a private ethereum
blockchain, a private network to host and share this blockchain,
an account, and then how to do some interesting things with the
blockchain.

What is ethereum, again? Ethereum is an open-source and public blockchain
platform featuring smart contract (that is, scripting) functionality. It
is similar to bitcoin but differs in that it extends beyond monetary
transactions.

Smart contracts are written in programming languages, such as Solidity
(similar to C and JavaScript), Serpent (similar to Python), LLL (a
Lisp-like language) and Mutan (Go-based). Smart contracts are compiled
into EVM (see below) bytecode and deployed across the ethereum blockchain
for execution. Smart contracts help in the exchange of money, property,
shares or anything of value, and it does so in a transparent and conflict-free
way avoiding the traditional middleman.

If you recall from Part I, a typical layout for any
blockchain is one where all nodes are connected to every other node,
creating a mesh. In the world of ethereum, these nodes are referred
to as Ethereum Virtual Machines (EVMs), and each EVM will host a copy
of the entire blockchain. Each EVM also will compete to mine the next
block or validate a transaction. Once the new block is appended to the
blockchain, the updates are propagated to the entire network, so that
each node is synchronized.

In order to become an EVM node on an ethereum network, you’ll need to
download and install the proper software. To accomplish this, you’ll
be using Geth (Go Ethereum). Geth is the official Go implementation
of the ethereum protocol. It is one of three such implementations;
the other two are written in C++ and Python. These open-source software
packages are licensed under the GNU Lesser General Public License (LGPL)
version 3. The standalone Geth client packages for all
supported operating systems and architectures, including Linux, are available
here. The source code for
the package is hosted on GitHub.

Geth is a command-line interface (CLI) tool that’s used to communicate
with the ethereum network. It’s designed to act as a link between your
computer and all other nodes across the ethereum network. When a block
is being mined by another node on the network, your Geth installation
will be notified of the update and then pass the information along to
update your local copy of the blockchain. With the Geth utility, you’ll
be able to mine ether (similar to bitcoin but the cryptocurrency
of the ethereum network), transfer funds between two addresses, create
smart contracts and more.

Download and Installation

In my examples here, I’m configuring this ethereum blockchain on the
latest LTS release of Ubuntu. Note that the tools themselves are
not restricted to this distribution or release.


Downloading and Installing the Binary from the Project Website

Download the latest stable release, extract it and copy it to a proper
directory:


$ wget https://gethstore.blob.core.windows.net/builds/
↪geth-linux-amd64-1.7.3-4bb3c89d.tar.gz
$ tar xzf geth-linux-amd64-1.7.3-4bb3c89d.tar.gz
$ cd geth-linux-amd64-1.7.3-4bb3c89d/
$ sudo cp geth /usr/bin/

Building from Source Code

If you are building from source code, you need to install both
Go and C compilers:


$ sudo apt-get install -y build-essential golang

Change into the directory and do:


$ make geth


Installing from a Public Repository

If you are running on Ubuntu and decide to install the package from a
public repository, run the following commands:


$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum

Getting Started

Here is the thing, you don’t have any ether to start with. With that in
mind, let’s limit this deployment to a “private” blockchain network
that will sort of run as a development or staging version of the main
ethereum network. From a functionality standpoint, this private network
will be identical to the main blockchain, with the exception that all
transactions and smart contracts deployed on this network will be
accessible only to the nodes connected in this private network. Geth will
aid in this private or “testnet” setup. Using the tool, you’ll
be able to do everything the ethereum platform advertises, without
needing real ether.

Remember, the blockchain is nothing more than a digital and public
ledger preserving transactions in their chronological order. When
new transactions are verified and configured into a block, the block
is then appended to the chain, which is then distributed across the
network. Every node on that network will update its local copy of
the chain to the latest copy. But you need to start from some point—a
beginning or a genesis. Every blockchain starts with a genesis block,
that is, a block “zero” or the very first block of the chain. It
will be the only block without a predecessor. To create
your private blockchain, you need to create this genesis block. To
do this, you need to create a custom genesis file and then tell Geth
to use that file to create your own genesis block.

Create a directory path to host all of your ethereum-related data and
configurations and change into the config subdirectory:


$ mkdir ~/eth-evm
$ cd ~/eth-evm
$ mkdir config data
$ cd  config

Open your preferred text editor and save the following contents to a
file named Genesis.json in that same directory:


{
    "config": {
        "chainId": 999,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "0x400",
    "gasLimit": "0x8000000",
    "alloc": {}
}

This is what your genesis file will look like. This simple JSON-formatted
string describes the following:

  • config — this block defines the settings for your custom chain.
  • chainId — this identifies your Blockchain, and because the
    main ethereum network has its own, you need to configure your own unique
    value for your private chain.
  • homesteadBlock — defines the version and protocol of the
    ethereum platform.
  • eip155Block / eip158Block — these fields add support for
    non-backward-compatible protocol changes to the Homestead version used. For
    the purposes of this example, you won’t be leveraging these, so they are set
    to “0”.
  • difficulty — this value controls block generation time of
    the blockchain. The higher the value, the more calculations a miner must
    perform to discover a valid block. Because this example is simply deploying a
    test network, let’s keep this value low to reduce wait times.
  • gasLimit — gas is ethereum’s fuel spent during
    transactions. As you do not want to be limited in your tests, keep this value
    high.
  • alloc — this section prefunds accounts, but because you’ll
    be mining your ether locally, you don’t need this option.

Now it’s time to instantiate the data directory. Open a terminal
window, and assuming you have the Geth binary installed and that it’s
accessible via your working path, type the following:


$ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain
 ↪init /home/petros/eth-evm/config/Genesis.json
WARN [02-10|15:11:41] No etherbase set and no accounts found
 ↪as default
INFO [02-10|15:11:41] Allocated cache and file handles
    ↪database=/home/petros/eth-evm/data/PrivateBlockchain/
↪geth/chaindata cache=16 handles=16
INFO [02-10|15:11:41] Writing custom genesis block
INFO [02-10|15:11:41] Successfully wrote genesis state
    ↪database=chaindata
hash=d1a12d...4c8725
INFO [02-10|15:11:41] Allocated cache and file handles
    ↪database=/home/petros/eth-evm/data/PrivateBlockchain/
↪geth/lightchaindata cache=16 handles=16
INFO [02-10|15:11:41] Writing custom genesis block
INFO [02-10|15:11:41] Successfully wrote genesis state
    ↪database=lightchaindata

The command will need to reference a working data directory
to store your private chain data. Here, I have specified
eth-evm/data/PrivateBlockchain subdirectories in my home
directory. You’ll also need to tell the utility to initialize using
your genesis file.

This command populates your data directory with a tree of
subdirectories and files:


$ ls -R /home/petros/eth-evm/
.:
config  data

./config:
Genesis.json

./data:
PrivateBlockchain

./data/PrivateBlockchain:
geth  keystore

./data/PrivateBlockchain/geth:
chaindata  lightchaindata  LOCK  nodekey  nodes  transactions.rlp

./data/PrivateBlockchain/geth/chaindata:
000002.ldb  000003.log  CURRENT  LOCK  LOG  MANIFEST-000004

./data/PrivateBlockchain/geth/lightchaindata:
000001.log  CURRENT  LOCK  LOG  MANIFEST-000000

./data/PrivateBlockchain/geth/nodes:
000001.log  CURRENT  LOCK  LOG  MANIFEST-000000

./data/PrivateBlockchain/keystore:

Your private blockchain is now created. The next step involves starting
the private network that will allow you to mine new blocks and have them
added to your blockchain. To do this, type:


[email protected]:~/eth-evm$ geth --datadir
 ↪/home/petros/eth-evm/data/PrivateBlockchain --networkid 9999
WARN [02-10|15:11:59] No etherbase set and no accounts found
 ↪as default
INFO [02-10|15:11:59] Starting peer-to-peer node
    ↪instance=Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9.2
INFO [02-10|15:11:59] Allocated cache and file handles
    ↪database=/home/petros/eth-evm/data/PrivateBlockchain/
↪geth/chaindata cache=128 handles=1024
WARN [02-10|15:11:59] Upgrading database to use lookup entries
INFO [02-10|15:11:59] Initialised chain configuration
    ↪config="{ChainID: 999 Homestead: 0 DAO: <nil> DAOSupport:
 ↪false EIP150: <nil> EIP155: 0 EIP158: 0 Byzantium: <nil>
 ↪Engine: unknown}"
INFO [02-10|15:11:59] Disk storage enabled for ethash caches
    ↪dir=/home/petros/eth-evm/data/PrivateBlockchain/
↪geth/ethash count=3
INFO [02-10|15:11:59] Disk storage enabled for ethash DAGs
 ↪dir=/home/petros/.ethash count=2
INFO [02-10|15:11:59] Initialising Ethereum protocol
    ↪versions="[63 62]" network=9999
INFO [02-10|15:11:59] Database deduplication successful
    ↪deduped=0
INFO [02-10|15:11:59] Loaded most recent local header
    ↪number=0 hash=d1a12d...4c8725 td=1024
INFO [02-10|15:11:59] Loaded most recent local full block
    ↪number=0 hash=d1a12d...4c8725 td=1024
INFO [02-10|15:11:59] Loaded most recent local fast block
    ↪number=0 hash=d1a12d...4c8725 td=1024
INFO [02-10|15:11:59] Regenerated local transaction journal
    ↪transactions=0 accounts=0
INFO [02-10|15:11:59] Starting P2P networking
INFO [02-10|15:12:01] UDP listener up
    ↪self=enode://f51957cd4441f19d187f9601541d66dcbaf560
↪770d3da1db4e71ce5ba3ebc66e60ffe73c2ff01ae683be0527b77c0f96
↪a178[email protected][::]:30303
INFO [02-10|15:12:01] IPC endpoint opened: /home/petros/eth-evm/
↪data/PrivateBlockchain/geth.ipc
INFO [02-10|15:12:01] RLPx listener up
    ↪self=enode://f51957cd4441f19d187f9601541d66dcbaf560
↪770d3da1db4e71ce5ba3ebc66e60ffe73c2ff01ae683be0527b77c0f96
↪[email protected][::]:30303

Notice the use of the new parameter, networkid. This
networkid helps
ensure the privacy of your network. Any number can be used here. I
have decided to use 9999. Note that other peers joining your network
will need to use the same ID.

Your private network is now live! Remember, every time you need to access
your private blockchain, you will need to use these last two
commands with the exact same parameters (the Geth tool will not remember
it for you):


$ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain
 ↪init /home/petros/eth-evm/config/Genesis.json
$ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain
 ↪--networkid 9999

Configuring a User Account

So, now that your private blockchain network is up and running, you can
start interacting with it. But in order to do so, you need to attach
to the running Geth process. Open a second terminal window. The
following command will attach to the instance running in the first
terminal window and bring you to a JavaScript console:


$ geth attach /home/petros/eth-evm/data/PrivateBlockchain/geth.ipc
Welcome to the Geth JavaScript console!

instance: Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9.2
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0
 ↪personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

>

Time to create a new account that will manipulate the Blockchain network:


> personal.newAccount()
Passphrase:
Repeat passphrase:
"0x92619f0bf91c9a786b8e7570cc538995b163652d"

Remember this string. You’ll need it shortly. If
you forget this hexadecimal string, you can reprint it to the console
by typing:


> eth.coinbase
"0x92619f0bf91c9a786b8e7570cc538995b163652d"

Check your ether balance by typing the following script:


> eth.getBalance("0x92619f0bf91c9a786b8e7570cc538995b163652d")
0

Here’s another way to check your balance without needing to type
the entire hexadecimal string:


> eth.getBalance(eth.coinbase)
0

Mining

Doing real mining in the main ethereum blockchain requires some very
specialized hardware, such as dedicated Graphics Processing Units (GPU),
like the ones found on the high-end graphics cards mentioned in Part I.
However, since you’re mining for blocks on a private chain
with a low difficulty level, you can do without that requirement. To
begin mining, run the following script on the JavaScript console:


> miner.start()
null

Updates in the First Terminal Window

You’ll observe mining activity in the output logs displayed in the
first terminal window:


INFO [02-10|15:14:47] Updated mining threads
    ↪threads=0
INFO [02-10|15:14:47] Transaction pool price threshold
 ↪updated price=18000000000
INFO [02-10|15:14:47] Starting mining operation
INFO [02-10|15:14:47] Commit new mining work
    ↪number=1 txs=0 uncles=0 elapsed=186.855us
INFO [02-10|15:14:57] Generating DAG in progress
    ↪epoch=1 percentage=0 elapsed=7.083s
INFO [02-10|15:14:59] Successfully sealed new block
    ↪number=1 hash=c81539...dc9691
INFO [02-10|15:14:59] mined potential block
    ↪number=1 hash=c81539...dc9691
INFO [02-10|15:14:59] Commit new mining work
    ↪number=2 txs=0 uncles=0 elapsed=211.208us
INFO [02-10|15:15:04] Generating DAG in progress
    ↪epoch=1 percentage=1 elapsed=13.690s
INFO [02-10|15:15:06] Successfully sealed new block
    ↪number=2 hash=d26dda...e3b26c
INFO [02-10|15:15:06] mined potential block
    ↪number=2 hash=d26dda...e3b26c
INFO [02-10|15:15:06] Commit new mining work
    ↪number=3 txs=0 uncles=0 elapsed=510.357us

[ ... ]

INFO [02-10|15:15:52] Generating DAG in progress
    ↪epoch=1 percentage=8 elapsed=1m2.166s
INFO [02-10|15:15:55] Successfully sealed new block
    ↪number=15 hash=d7979f...e89610
INFO [02-10|15:15:55] block reached canonical chain
    ↪number=10 hash=aedd46...913b66
INFO [02-10|15:15:55] mined potential block
    ↪number=15 hash=d7979f...e89610
INFO [02-10|15:15:55] Commit new mining work
    ↪number=16 txs=0 uncles=0 elapsed=105.111us
INFO [02-10|15:15:57] Successfully sealed new block
    ↪number=16 hash=61cf68...b16bf2
INFO [02-10|15:15:57] block reached canonical chain
    ↪number=11 hash=6b89ff...de8f88
INFO [02-10|15:15:57] mined potential block
    ↪number=16 hash=61cf68...b16bf2
INFO [02-10|15:15:57] Commit new mining work
    ↪number=17 txs=0 uncles=0 elapsed=147.31us

Back to the Second Terminal Window

Wait 10–20 seconds, and on the JavaScript console, start checking your balance:


> eth.getBalance(eth.coinbase)
10000000000000000000

Wait some more, and list it again:


> eth.getBalance(eth.coinbase)
75000000000000000000

Remember, this is fake ether, so don’t open that bottle of champagne,
yet. You are unable to use this ether in the main ethereum network.

To stop the miner, invoke the following script:


> miner.stop()
true

Well, you did it. You created your own private blockchain and mined some ether.

Who Will Benefit from This Technology Today and in the Future?

Although the blockchain originally was developed around cryptocurrency
(more specifically, bitcoin), its uses don’t end there. Today,
it may seem like that’s the case, but there are untapped industries and
markets where blockchain technologies can redefine how transactions
are processed. The following are some examples that come to mind.


Improving Smart Contracts

Ethereum, the same open-source blockchain project deployed
earlier, already is doing the whole smart-contract thing, but the
idea is still in its infancy, and as it matures, it will evolve to meet
consumer demands. There’s plenty of room for growth in this
area. It probably and eventually will creep into governance of companies
(such as verifying digital assets, equity and so on), trading stocks,
handling intellectual property and managing property
ownership, such as land title registration.


Enabling Market Places and Shared Economies

Think of eBay but refocused to be peer-to-peer. This would mean no
more transaction fees, but it also will emphasize the importance of your
personal reputation, since there will be no single body governing the
market in which goods or services are being traded or exchanged.


Crowdfunding

Following in the same direction as my previous remarks about a decentralized
marketplace, there also are opportunities for individuals or
companies to raise the capital necessary to help “kickstart” their
initiatives. Think of a more open and global Kickstarter or GoFundMe.


Multimedia Sharing or Hosting

A peer-to-peer network for aspiring or established musicians
definitely could go a long way here—one where the content will reach
its intended audiences directly and also avoid those hefty royalty costs paid
out to the studios, record labels and content distributors. The same
applies to video and image content.


File Storage and Data Management

By enabling a global peer-to-peer network, blockchain technology
takes cloud computing to a whole new level. As the technology continues
to push itself into existing cloud service markets, it will challenge
traditional vendors, including Amazon AWS and even Dropbox and
others—and it will do so at a fraction of the price. For example, cold
storage data offerings are a multi-hundred billion dollar market today. By
distributing your encrypted archives across a global and decentralized
network, the need to maintain local data-center equipment by a single
entity is reduced significantly.

Social media and how your posted content is managed would change under
this model as well. Under the blockchain, Facebook or Twitter or anyone
else cannot lay claim to what you choose to share.

Another added benefit to leveraging blockchain here is making use of
the cryptography securing your valuable data from getting hacked or lost.

Internet of Things

What is the Internet of Things (IoT)? It is a broad term describing the
networked management of very specific electronic devices, which include
heating and cooling thermostats, lights, garage doors and more. Using
a combination of software, sensors and networking facilities, people can
easily enable an environment where they can automate and monitor home
and/or business equipment.


Supply Chain Audits

With a distributed public ledger made available to consumers,
retailers can’t falsify claims made against their products.
Consumers will have the ability to verify their sources, be it food,
jewelry or anything else.

Identity Management

There isn’t much to explain here. The threat is very real. Identity
theft never takes a day off. The dated user name/password systems of today
have run their course, and it’s about time that existing authentication
frameworks leverage the cryptographic capabilities offered by the
blockchain.

Summary

This revolutionary technology has enabled organizations in ways that
weren’t possible a decade ago. Its possibilities are enormous, and it
seems that any industry dealing with some sort of transaction-based
model will be disrupted by the technology. It’s only a matter of time
until it happens.

Now, what will the future for blockchain look like? At this stage, it’s
difficult to say. One thing is for certain though;
large companies, such as IBM, are investing big into the technology
and building their own blockchain infrastructure that can be sold to
and used by corporate enterprises and financial institutions. This
may create some issues, however. As these large companies build their
blockchain infrastructures, they will file for patents to protect their
technologies. And with those patents in their arsenal, there exists the
possibility that they may move aggressively against the competition in
an attempt to discredit them and their value.

Anyway, if you will excuse me, I need to go make some crypto-coin.

About the Author
Petros Koutoupis, Linux Journal Editor at Large, is a senior platform architect at IBM for its Cloud Object Storage division (formerly Cleversafe). He is also the creator and maintainer of the RapidDisk Project. Petros has worked in the data storage industry for well over a decade and has helped pioneer the many technologies unleashed in the wild today.