Decentralization


At the moment there is a huge debate raging in the Bitcoin community on whether or not there should be a hard fork into two different currencies along the same lines as what happened to Ethereum in 2016. As can be imagined, the debate is intense with many folks taking extreme sides. My goal for this essay is not to weigh in on that battle as my technical understanding of Bitcoin is limited in this debate compared to many of the developers and other folks who are staking their businesses and focus on it. But there is another idea that is constantly springing up in many of these debates and that is this idea of decentralization and more importantly, building decentralized applications. So why is the concept of building decentralized applications gaining prominence?

First, there are three types of ways that applications can be built: centralized, decentralized, and distributed. The majority of general applications being built are centralized, that is, there is a unique core node that must be used in order to access what the app is offering (be it data, an API, or your account) and the core node instructs all of the connected nodes as to what to do. If we take a step back and analyze this idea we can see that all information being produced will flow through a single center (or node). Every person who uses these services is dependent directly on this central authority maintaining the power to send and receive information. Google, LinkedIn, Facebook, and Amazon are all built on centralized stacks and this design works powerfully for them both technologically and business wise. 

Then there are distributed and decentralized applications. A distributed system means that computation is spread across a network of multiple nodes which helps speed up computing and latency of data access. A company like Google builds distributed software to help speed up their services. A decentralized application means that there is no central node that instructs the other nodes on what to do. Bitcoin is the ultimate decentralized application because if one node fails, it will not have an effect on any of the other nodes and the network will continue to operate. For the purposes of this essay, I am going to skip going through anymore detail on distributed systems. 

So why should we care about decentralized systems/applications especially since centralized systems already work so well for these companies already? For one, there is a rather large possibility that these applications will be used for their superior incentive structure, resiliency, transparency, and distributed nature. Using a blockchain (peer-to-peer distributed ledger) to a form a trustless system, value can be created using cryptographic tokens, which can then be used to access the application. As I stated in the previous paragraph, the premier decentralized app at the moment is Bitcoin (and this could very well change down the road) which simplifies the traditional financial system. In order to access the network, one must own some bitcoin, which can then be used to store value, or easily transfer it from one wallet address to another. For example, cross-border payments are made easily since the value isn't being transferred through several financial middleman.

Another way that decentralized applications are being built is as protocols that use another blockchain, such as Ethereum, and issue their own tokens to function. One interesting example is the Golem Project; it lets users access another users computer using their tokens as the exchange of value. For example, if I set up some spare computers and put them on the Golem network, anyone with Golem tokens can use my computers in exchange for those tokens. We suddenly have a way to put our spare CPU's to work. This has been an idea I have thought about considerably using bitcoin as the exchange of value instead. Either way would work well and put spare computers to work.

But let's not get ahead of ourselves quite yet. Centralized services still absolutely dominate the vast amount of users and will continue to do so over the coming years. It may not even be until innovation begins to slow down or companies begin having other problems that will eat up their time (this could be anything from internal problems to governments/states coming down hard on them). If this does happen, then decentralized systems built on blockchains could start becoming more well known as easier and stable computing platforms. In fact, I am thoroughly convinced that these systems will be incredibly important for businesses, customers, and citizens. But it will be a long road before we get there successfully and my goal is help pave it along the way.

HTTP vs HTTPS


The Basics

HTTP

Security is becoming increasingly important as better online experiences now involve trusted third parties and good encryption. A basic understanding of how this works is knowing the difference between HTTP and HTTPS.

Hypertext Transfer Protocol (HTTP) is the system used for sending and receiving information across the internet. It's what is known as an "application layer protocol" so its main focus is on how information is presented to the user. This option doesn't care how data gets from point A to point B and it is also "stateless" which means that it doesn't remember anything about the previous web session. There is a benefit to being stateless which is that there is less data to send meaning there is increased speed. 

The most common use for HTTP is to access HTML pages, which are the backbone of the websites we visit on the internet. However, it is important to remember that other resources can be accessed and utilized through HTTP as well. In fact, this is the most common way that websites that do not house confidential information (such as credit cards and/or usernames and passwords) are setup.

HTTPS

Secure Hypertext Transfer Protocol (HTTPS) is for all intents and purposes, a similar system used for sending and receiving information across the the internet, it's just the secure version. The protocol was developed to allow for secure authorization and transactions. We don't want malicious actors gaining access to the private information we are creating and HTTPS adds an extra layer of security to that exchange of confidential information. That extra layer is made possible because it uses a Secure Socket Layer/Transport Layer Security (SSL/TLS) to move data back and forth. Neither protocol cares how the data gets to its destination although HTTP cares about what the data looks like whereas HTTPS does not.

Google actually prefers websites are encrypted with HTTPS because of that guarantee of extra security. When a business owner, developer, or webmaster goes through the motions of obtaining a certificate, the issuer then becomes a trusted third party. The information in the certificate is used to verify that site is what it claims to be and finally the user/customer that knows the difference between HTTP and HTTPS can by buy with confidence, giving electronic commerce more credibility. For anyone maintaining a site with heavy traffic, Google and the other search engines will put priority on sites with security and keep them boosted in the rankings as long as the multitude of other SEO related work follows their guidelines.

More Detail

Data sent using HTTPS is secured using via the Transport Layer Socket protocol (TLS) which provides three important layers of protection: 

  1. Data Integrity - Data that cannot be modified or corrupted during transfer without being detected.
  2. Encryption - Encrypting the exchange data to keep it secure.
  3. Authentication - Proves that the sites users/customers communicate with the intended site.

These three layers are the main motivation behind the HTTPS protocol and help prevent against eaves dropping and tampering with the communicated content via man-in-the-middle (MITM) attacks. 

How do browsers know who to trust?

Browsers come pre-installed with certificate authorities, meaning they know who to trust. Likewise, the browser software is trusting those authorities will provide valid certificates. A user/customer should be able to trust an HTTPS connection provided the following are all true:

  • Trust that the browser software correctly implements HTTPS with the correct pre-installed certificates.
  • Trust that the certificate authority will vouch only for legitimate websites.
  • The website provides a valid certificate signed by a trusted authority.
  • The certificate correctly identifies the website.
  • The user/customer trusts the protocols encryption layer (SSL/TLS) is secure against eavesdroppers.

It is becoming increasingly important to use HTTPs over insecure networks such as public WIFI since anyone one the same local network can discover sensitive information using packet sniffing. The same goes for using WLAN networks which can engage in packet injection to serve their own ads on webpages. Doing this can be exploited in many ways such as injecting malware onto those webpages to steal users' data and private information.

The case for using HTTPS on your own websites

With each day it seems we learn that more and more information about global mass surveillance and data being stolen by malicious actors. Because of this, the strongest case to use HTTPS is that you are making your website more secure. There are however limits to using HTTPS as it is not 100% secure. It will not prevent your website from getting hacked or stop phishing emails getting sent either. It's importance is in the fact that if you have users/customers that are logging in with sensitive information (such as passwords, social security, etc.), then setting up HTTPS is the absolute minimum price and precaution that should be taken in order to protect them. And with security, you will build trust.

The Blockchain Meets Seattle

Earlier this week I had the opportunity to be invited to a private event here in Seattle regarding Blockchain technology. The even itself took place on he 48th floor in the old Washington Mutual Tower. The fog disrupted what might have been a beautiful view. The event itself went by rather quickly but it did a great job of explaining how the Blockchain technology can be leveraged in more ways than just creating the killer app "Bitcoin". Some interesting points that were brought up were:

  • Using the Blockchain as a ledger to keep track of IP, land titles, and other assets
  • Goldman Sachs has filed a patent for crypto-security settlement on a blockchain.
  • Microsoft has declared that the Blockchain is one of the "key must win workloads" for their Azure cloud platform and business. They are also collaborating with major U.S. banks using the technology. 
  • Some governments are already beginning to invest in their own local, or private, blockchains.

What was most surprising to me was the actual plans and partners Microsoft has for their Blockchain-as-a-service (BaaS) tech they have on their Azure cloud platform. Some of those partners include:

  • Bitpay
  • Multichain
  • OpenChain
  • Coinprism
  • Augur
  • Slock.it
  • Ripple

Putting tech like this in the hands of developers easily will be a huge factor in spreading it far and wide. The event was exciting to me as I was able to speak to a number of people about an area in tech that I have been involved with for a few years now and it also showed how many people are interested in learning more. I hope to be a part of those bringing this technology to the masses over the upcoming years. 

Yesterday

"It's no use going back to yesterday, because I was a different person then."

- Lewis CarrolI


Life has changed quite a bit for me and I am ready to get back in to writing again. I miss it terribly and have made the decision to start posting some of the ideas rattling through my mind as of late. Writing really is the best way for me to clarify some of my thinking.

Looking Forward

As is standard practice in the New Year, many people enjoy writing about what they think will happen in the coming year ahead. It’s not something I’ve ever done before and so instead of just quickly throwing together a quick list and publishing it, I thought it would be better to look at a few important developments taking place in the world and see where they may be heading. So here are my thoughts on the four spaces that could have an impact on the global economy.

  • Emerging markets are going to go through quite a bit of pain due to the price of many commodities falling to earth. China seems to be going through a bit of turmoil within its economy which can have a negative ripple effect across the global economy as a whole. The country is beginning to really experience a huge amount of pain brought on from the large debt that has been built up in some of its industries. For example, since the price of steel and iron ore have fallen so much since early 2015, the construction boom has slowed down and claimed many jobs in Europe. In response, fiscal and monetary stimulus will be used as best it can in order to help bring back demand. Doing this could hinder the exchange rate for yuan which is already feeling a large amount of pressure from the outflow of capital. If the yuan is benchmarked against a basket of currencies, its value could decline which could lead to a serious erosion of value in market valuations in much of Asia. What should be watched for is just how much China’s economy and market movements effect the rest of the worlds markets. As China grows bigger, the countries presence will begin to be felt in countries that it has invested in or have invested in it, for better or for worse.

  • Bitcoins presence will also begin to be felt in both currency markets and some products and services in the financial industry. It is the easiest way to store and send monetary value using the internet and the bigger it gets, the more people will learn about it. Many venture capitalists and industry players still talk about finding that killer app that will bring it further into the mainstream, but it still may be slow going on that front. Many banks and financial institutions including Visa and Goldman Sachs are starting to use the underlying technology, called the Blockchain, with the help of many fintech startups that have built a product or service that these companies will find useful. The use of technology by these companies will help push it towards a larger consumer base to use. There should also be more massive market movements expected for two reasons: 1) the community is still divided over the block size and (with a major core developer leaving rather loudly) and 2) its presence has been felt in China with the price popping when there are problems with the market and traders reacting by quickly moving resources in Bitcoin. Big things could make some headway this year provided there are some creative uses of the technology and the community does not remain split.

  • Security and privacy will remain on everybody’s radar as important subjects to understand what is going in. Security, already a huge geopolitical issue, will become a subject that effects more and more people as technology rapidly advances. We walk around with devices that can be tracked at all seconds of the day so it should be fully expected that more security related services and products will make their way to the market. Nobody wants their phone hacked into since it carries such a great amount of details about our lives and there will be many companies that answer that concern. But the other side of that coin is the subject of privacy; a slippery slope due to so many differing opinions of how to define privacy. Right now, most people don’t understand cryptography or the mathematics behind what makes it work; nor do they know to what extent companies and states can track their every move and search query and place all that information into a large context about our lives. On the business side, in the case of retail and advertising, I side with giving the consumer the choice of whether to do or don’t want to be tracked and sold to. If they do, to what level of privacy are they willing to forgo their privacy? And in the case that consumers aren’t given that choice, tools should be made available for anyone to use to give them the privacy they expect. And in the case of security, companies and states should work together to come to a middle ground that gives both what they need. This being the year of a presidential election, it should be expected to hear this subject brought up quite a bit.

  • Lastly, Artificial Intelligence (or machine intelligence) will become a bigger part of our lives; probably even in ways that we aren’t fully expecting to happen. But where it will remain most important to us will be in our working lives. As more and more rote work is able to be automated easily by computers, we will find them working by our side and helping us achieve things we didn’t thing possible to an even greater degree than they already are. The use of machine learning will help with completing sets of tasks and jobs more efficiently. Large tech companies like Google, Facebook, Baidu, Alibaba, Amazon, and Microsoft will help pave the way to a greater use of AI by making their products more intelligent and useful. These same companies will also go a step further (some already have) by open sourcing their code so that more researchers, smaller companies, and independent developers will have access to the same tool sets, thereby producing new products and creating a healthy ecosystem. It can even be thought that these same smaller companies or products will be purchased by the larger players and seamlessly integrated since the underlying technology will be the same. It’s exciting to think about what kinds of new products can be made.

These four developments will have a large impact on the global economy and marketplace whether positive (AI related products, Bitcoin, Privacy) or negative (Commodity prices crashing, Security) and it’s interesting to think about what lays ahead for us. There are a few developments I left out that will definitely have a large impact on the world and those include the price of oil ($28), augmented and virtual reality, and a U.S. Presidential race. Should be an interesting year that lays ahead.