I am pleased to announce the availability of the Ember Financial platform for Enterprise applications on the Bitcoin blockchain. Recent announcements by Nasdaq and others are setting the stage for a renaissance in tokenized applications on the Blockchain, and we are leading the charge with the first fully managed middle-ware and embedded platform for building next generation settlement, smart property and asset applications on the world’s most secure digital ledger.
Ember is a powerful color coin platform fully compliant with the Open Assets specification, with many advanced features designed to help companies quickly deploy and manage their blockchain secured assets and transactions. Built from the ground up with fault tolerance, reliability, and scale in mind, it can dramatically shorten time to market for financial and other demanding applications.
Building infrastructure on the Bitcoin network is still difficult, and companies have significant challenges in adopting and integrating distributed ledger technology. Multiple types of wallets with associated trade offs, inline risk management, cryptographic key distribution and signing, sophisticated transaction building facilities, and requirements for reliability and transparency. We can distill this process into a unified financial services gateway that expands your capabilities dramatically, and lets you take advantage of the Bitcoin networks exciting innovations. Simply the fastest way to get from zero to one for your domain specific applications.
At the core of the platform is Erricson’s Open Telecom Platform, the same framework powering some of the most demanding applications on the Internet including WhatsApp, Facebook’s chat infrastructure, and numerous telecom solutions. When downtime is simply not an option, and reliability is key to the success of your product a bullet-proof foundation is extraordinarily important. This infrastructure is exposed via a number of APIs, Guis, and remote management tools. Some of the advanced features include:
We have tackled the most challenging Bitcoin design problems and created a unified application stack that allows companies to extend and manage their products and services directly on the blockchain. For more information about our capabilities, or to discuss your design challenges and ideas send us an email at firstname.lastname@example.org. I am going to be following up this posting with a series of examples and use cases, as well as updates on our rapidly expanding capabilities.
Its a new year, and I’ve definitely been remiss in updating my blog. That wasn’t one of my New Year’s resolutions but perhaps it should have been. 2015 is shaping up to be an excellent year for Bitcoin, with major funding flowing into the space and advancements being made on most fronts.
Major banks, trading firms, and other money institutions are finally taking notice. Bitcoin might be the first widely available currency of financial inclusion. The web was an on-ramp to the greater Internet and global connectivity, maybe Bitcoin is going to serve a similar purpose with respect to banking over the next ten years. Suddenly we have a mechanism to deliver value to consumers directly, regardless of locale. That means traditional banking services, such as storage, interest, loans and payments can be accomplished without the geographic, economic, and political boundaries that the banking industry has grown up around. These artificial constraints are breaking down as the friction for these services rapidly approaches zero.
We are already seeing remittances companies starting in almost every major market. From Mexico to the Philippines, the UK, Australia, Southeast Asia, Europe and Africa. Diverse companies are integrating with existing financial networks and cash delivery options, MPesa phone networks, general SMS, Email, Twitter, you name it. Bitcoin is the fastest, cheapest and most secure way to transfer money, and in the not too distant future will be the cheapest, fastest and most secure way to transfer anything of value. A click away from cash delivery directly to your mobile device or a custodial service, at prices that are simply unbeatable.
Western Union isn’t going down without a fight, and have managed to hold on to their share of the remittance market despite the fact that they aren’t terribly competitive. Unfortunately for them I don’t see a future where they are destroyed by a single definable competitor, rather its death by a million cuts as disconnected businesses all over the world eat away at their core business proposition. Consumers no longer have to be satisfied with local money options when a world of possibilities is available at the click of a button.
To some this might seem far fetched, it seems like a distant possibility that money and money services will be so fluid and so accessible that people in the farthest corners of the world will have access to the sophisticated infrastructure we enjoy in the west. If you are in the camp, think back to the distant past of 1993. In that good year there were approximately 130 websites. Just seven years later there were 17,087,182 websites. Now in 2015 there are over 968,882,453 websites. By 2016 we are projected to have over 2 billion smart phone users. That is 2 billion people walking around with devices in their pockets capable of transferring money directly to any of the other 2 billion smart phone users on the planet. Do you still think Western Union has a business model?
The Internet has uprooted industry after industry, largely through connectivity. Businesses that rely on these artificial boundaries are destined to be destroyed or radically changed. Banking is fortified at the heart of our society, it is responsible for money creation, and fuels the engines of capitalism, yet up until now has been sheltered from those same forces. Protected by geography, cemented by regulation. It’s time to adapt or die. Bitcoin is coming, and digital currency is here to stay. Interesting times ahead.
Sidechains have been getting a lot of press recently within the Bitcoin community, backed by a fresh round of 21 million in investment, and with a team including some of the Bitcoin core developers they are in a position to push through changes and adapt Bitcoin to different purposes. For those unfamiliar the premise is very simple. Sidechains is a cryptographic mechanism by which Bitcoin can be locked in the main chain, and redeemed for a deterministic amount of an alt coin. This alt coin has its own blockchain, its own rules, and its own code. It runs completely independently from Bitcoin, but at any time it should be possible to redeem this coin and transfer the value back into the main Bitcoin blockchain.
Blockstream has been touting this as a major innovation, something worthy of investment, and a game changer for Blockchain technology. I’m not convinced yet. Like many good ideas its worth trying to separate fact from fiction, and take a hard look at what Sidechains really do from a technical and monetary perspective.
The first thing to keep in mind is that a side-chain is an alt coin. It is an alt coin that is subject to the same rules as any other alt coin. It is not secured by the Bitcoin proof-of-work by default. It is not immune to bugs. It may not even be extensively tested. It is in almost every way equivalent to any fork of Bitcoin we have ever seen. However, its value is derived from Bitcoin because Bitcoin can be transferred into it at a deterministic rate in order to prop up the chain. The main argument for this, is that it shields people from transactional risk. I would argue that it does the opposite, and hides risk by preventing the free market from discovering its true value.
From an operational standpoint the benefits are clear. If you were running multiple block-chains, and they were all secured via merged mining so that they had identical proof-of-work security, then you could increase the scale by the number of simultaneously running block-chains. The thing is this is true for any alt coin. If you start an alt coin, and it is secured via merge mining, then you can specialize it and increase the transactional throughput of digital currency networks by having multiple simultaneous running chains for different purposes (this is how the system works now).
I think from a scale perspective the thing that is interesting is not running multiple alt-coins, but just scaling Bitcoin itself out horizontally with multiple block-chains that can share data. This lets you increase the scale and size of the Bitcoin network, alt coins be damned. It could also be a way of simply migrating the entire Bitcoin network to a new one, or a different code base. For people who are worried about centralization concerns and regulatory control there is something to think about here. In our effort to scale Bitcoin we may be creating mechanisms to assert regulatory control. What if Bank transactions can only happen on a Bank run side chain? What if transactions for government services can only occur on a government run Sidechains with identity controls? It seems to me to be a slippery slope, once a mechanism exists to migrate coins away from Bitcoin to alternative chains, won’t we see a fragmentation of the ecosystem as companies silo specific functionality?
So the argument seems to be primarily an economics one. We aren’t gaining very much technically from this shift, that we don’t already have with existing alt coins, but are getting “risk-free” value transfer. Of course, that isn’t really true, the risk is being hidden because of lack of information sharing. Despite the negative publicity that traders get the market serves many purposes, including being able to price the value of a commodity or service based on the underlying fundamentals. When you deterministically 2-way-peg an asset you are making a statement. These two things are equivalent. 1 side coin is worth 1 Bitcoin, and 1 Bitcoin is worth 1 side coin. Of course, if a side chain is an alt coin that may not be true. If it isn’t secured by the same proof of work, and the network isn’t as large, and the code hasn’t been vetted I would say that the peg rate doesn’t make much sense. It may be that 1 Bitcoin should be worth a 1000 side coins because that network isn’t as good. Similarly if a major bug shows up in the side chain, shouldn’t its value decrease? If you have new information that the coin isn’t good, then when you buy into it you are paying more than its worth. When you sell it you are getting more than you should.
I think very little effort has been spent on the economics side of this equation. Side chains don’t make good economic sense, if they limit price discovery. The thing is when you deterministically peg something you are making a statement about value that may not be true. A side coin is not Bitcoin by definition, how can you make a value statement in code? There are people who say that Side-coins will trade on alternative markets also, but this is not the case. If I can always buy at a fixed rate, and sell at a fixed rate, I’ll only ever go to the market if I can get a better rate. Market dynamics tell me that I should never be able to get a better rate though because there is the certainty that I can buy and sell at a fixed price indefinitely. Put it another way, if I can buy a side-coin for 1 bitcoin, why would I ever buy it for 2? If I can sell a side coin for 1 bitcoin, why would I ever sell it for less?
It also plays around with incentive structures. Bitcoin itself has taken root because people believe it offers something different then what is out there, and that its network, and technical underpinnings have real value. They have put their money into Bitcoin, some simply to store it, but many with the hope that it will increase in value. A side chain never decreases in value, nor does it appreciate. You are taking a risk in that the coin may fail or have other issues, but there is no upside. Why put your money in an alternative coin and absorb that risk if there is no long term incentive? Similarly as a technologist, why should I spend the considerable effort necessary to create a side chain when there is no long term monetary incentive in the form of ownership to continue developing it? It forces us to find monetization channels outside of the currency proper, which I would argue is not an efficient means of work appropriation.
People also point out that Alt coins are frequently scams (which is true), but I would hazard that their value fairly accurately determines their risk profile. Their is a reason when a coin is trading at fractions of a penny. If the side coin chain stops working (51% attack) or some other transactional bug, Bitcoin may not be redeemable. This is not a risk-free way of trying anything, but many frame it that way.
Like any new technology the rule book is still being written. Its possible that a combination of technologies and methodologies might provide an accurate market-driven structure that preserves incentive structures within digital currency. Side chains is not a panacea to all problems Bitcoin, and there is considerable cause for concern that it may provide a mechanism to subvert Bitcoin proper. Remember Microsoft’s old adage, embrace, extend, and extinguish. Sometimes people with the best intentions make critical mistakes, for even the very wise cannot see all ends. Sidechains may provide a migration path that ultimately inadvertently undermines Bitcoin.
It all comes down to trust. The modern world’s financial system is built on a foundation of trust, and supported by the framework of law. I remember very clearly the first time I saw a trader execute an over the counter transaction, thats when two traders at different institutions agree on a trade over the phone or in this case instant messenger. With all of the computers we have I assumed that process was done through some kind of shared system, that immediately resolved the transaction and settled the obligations of both parties. It doesn’t work anything like this. Each trader marks their side of the transaction in their firm’s ledger, and then at some point in the future a settlement process occurs. So if I sell you a million barrels of oil, you take my word for it, enter it into your system and go on with your day. This system is entirely based on trust, and the penalty for voiding an agreement is never being able to work in trading again.
When a bank sends another bank money via Swift (the international payments clearing mechanism) they deduct the amount from their local books, enter the amount into swifts system, and the foreign bank adds that amount into their system. Both parties are trusting Swift to clear and settle that transaction. If the transaction goes south for some reason and cannot be resolved properly the system falls back on legal remedies. Trust permeates every aspect of our digital lives. We trust the government to back the US Dollar, that is a trust obligation to the people holding currency and investing in US bonds. We trust the bank to be able to deliver us currency even though they only hold a small portion of your money in the bank (a 5% fractional reserve rate is standard). We trust counter-parties to deliver goods and services, we trust payment companies to settle transactions, we trust brokerage companies to hold and manage stock certificates. Even the simplest payments are built on a network of trusted parties, and a web of legal and other agreements that connects them.
Trust has overhead. You can’t simply trust someone else can you? A bank can’t just take the word of another bank it doesn’t know anything about. In order to solve this we build banking associations, and government oversight committees, and employ legions of regulators, and auditors. We need accountants to compute both sides of the ledger, and lawyers to fall back on when things go south. We need tax accessors to make sure the government gets its cut, and don’t forget the police when you don’t honor your obligations. A framework of trust requires an elaborate system of checks and balances, every step in that process adds to the cost of doing business, and ultimately is passed along to consumers in the form of service fees and more expensive products.
Bitcoin solves the problem of trust. It does this in three ways. First, it enables the transfer of information between two parties in an irreversible way without either party having a pre-existing relationship. When you get paid, you get paid. Second, it allows anyone to audit transactions both in real time and historically, this provides a fact-in-time ledger, which allows us to know with certainty when events have occurred. Third, tokens representing money or other information can not be fabricated, counterfeited or otherwise copied, you can’t just magic up some Bitcoins out of thin air.
So potentially we have a new technology that is capable of replacing vast amounts of our financial infrastructure. The key is that unlike our existing system, if you can facilitate trust-less transactions you can do them programatically. This lets us push the legal, regulatory, accounting, and other rules that run our society into computer code. The same wave of automation that changed us into a post-industrial society, can now be leveraged to push us into a a new information age.
Microsoft now accepts Bitcoin. It’s all over the news. This is how this will play out. After six months or so Microsoft or another large tech company will acquire Bitpay for some insane amount of money, and then use their position in the market to push Bitcoin in every major retail channel and service they have. Of course Bitpay doesn’t actually do anything that your software couldn’t do automatically for you (and will), the dirty secret is that all Bitcoin payment processors are just order routers to exchanges in disguise with a payout back-end via ACH or some other established local payment method. The topology of Bitcoin payments is much more akin to trading infrastructure and financial services than it is to existing payment rails, and is in many ways less complicated than the legacy systems currently churning through payments.
It seems that whenever new technology comes along we have an arms race of companies trying to establish themselves as the defacto players. Bitcoin is no different in that in every country we are starting to see remittance and payments companies that pop up and perform one of two functions. They take your money and convert it into Bitcoin, or they take your Bitcoin and convert it into cash. They do this through local exchanges or by matching buyers with sellers within their own systems. Maybe they also let you link with some local payout options, or connect to an ATM machine or other point of sale device, but ultimately they are performing the same basic functions. It reminds me of the old WHO lyric, meet the new boss same as the old boss.
I’ve stated before how Bitcoin is the new Forex, but it has one property that really differentiates itself, and I think ultimately invalidates the model of most companies trying to establish themselves as the new middlemen. It is programmable money. That is a phrase that is thrown around a lot, it’s hard to pin down, what does it mean anyway? To me it means the ability to write programs that control the spending and flow of money, functionality that up until now has been largely provided by middlemen and embodied in third parties. Ten years ago you needed someone to “process” your transactions. To validate that it happened, record it in a database, and inform all of the parties through settlement what actually occurred. This still happens to a large extant across industries. The reason you needed these middlemen is that they created a proxy for trust, a framework where people could purchase services from providers without having to have any real relationship with them. So long as we mutually agreed to trust the credit card company, or the payment processor the exchange was facilitated. Bitcoin doesn’t require trust, and when it does each party can agree to trust different people. I may trust Exchange X to trade out my Bitcoin for dollars, and you trust Exchange Y. We don’t have to mutually agree on anything in order to facilitate payment.
Similarly since the flow of Bitcoin is software controlled, why do we need middlemen to handle the transaction? Why can’t the software embedded into your website facilitate the trade-out to cash itself? Lets look at the Bitpay model. They build a plugin for your e-commerce site that interfaces with their payment back-end. When they see a Bitcoin payment they notify you and the purchaser of a successful transaction, sell the Bitcoin on an exchange, and transfer the money to the merchant. They wrap that up with insurance and a big float so they don’t have to sell immediately and you have a money transfer business. The thing is, none of that functionality needs to be centralized. Alternatively your website could simply wait for the Bitcoin payment, trade it out on an exchange you trust, and initiate a payment via a method supported by the exchange to your bank account. Pretty easy, and something you can imagine being baked right into open source software.
Why can’t someones wallet directly do that? This quickly leads us down a rabbit hole where every consumer has the ability to directly deposit their money into investment vehicles they trust without middlemen. I don’t need to pay someone else to do cash settlement if the code running my website can do it automatically. I don’t need a special relationship with a select few companies if anyone can give me Bitcoin for cash. What we see is a proliferation of models that are replicating how payments have worked for the last twenty years when we are on the cusp of a payments topology that is completely different.
Decentralized computing and programmable money are here. Its time to embrace the new capabilities we have instead of shoehorning them into the existing models. The same way open source has completely taken over computing we can expect that same system to take over payments, and financial services. What we need is interoperable open systems (like open transactions) and the Bitcoin network to link our software systems together. Exchange and third party processors need to start speaking a unified API so that we can blow the possibilities wide open.
Everything old is new again. Remember Forex? Hotspot? Lava? When unregulated third party exchanges started popping up they changed the dynamic of foreign exchange trading dramatically. While arguably still heavily influenced by the banks (don’t get me started on last look liquidity for those familiar), the available liquidity and access to those markets was simplified. Now the average consumer can trade Forex in minutes, and despite the risk, many do. This has created a vibrant and diverse market, with multiple exchanges, and consumer platforms vying for dominance.
The thing is, almost every single Bitcoin company is a trading company in disguise, they all have similar pipelines and they all perform variants on the same function. You can call it payment processing if you want, but the process looks more like a trade execution system then anything approaching traditional payments. Let’s run through the major players:
Bitpay and every other payment processor on the planet, Takes your Bitcoins sends them to an exchange and gives the merchant dollars. They are on the sell side in order to meet the cash obligations to merchants.
Coinbase, Circle, BitReserve, et al. Takes your money and gives you Bitcoins. So they transfer money from your account, put it on an exchange, and credit you Bitcoins. They also perform the reverse function on settlement so they are buy and sell side. This means they can make a two sided market based on customer order flow.
Robocoin, BitAccess, etc. Takes your cash or Bitcoin at an ATM, trades it out on an exchange, and gives you the equivalent. Two sided trading liquidity, although I imagine they are more heavily buy side.
Alphapoint, shapeshift.io and others. Does order execution and platform services. That is called an order routing engine. That means they take an order, and fulfill it at one of many exchanges based on best-price or some other metric.
Coinsetter, BTC China, Kraken, Cryptsy, Bitstamp, Bitfinex, the list goes on and on. They have matching engines and run two sides markets taking order flow from the above companies and consumers and matching buyers and sellers. This is the exact same model that all of the early 2000s era Forex companies had.
Are we noticing any commonalities here? The only thing amazing about this list is how the existing well established, funded Forex platforms haven’t jumped on the bandwagon. There is nothing interesting from a technology perspective here, thousands have done it before. It would take them seconds to add unregulated third party Forex to digital currency swaps but they haven’t. There is an acquisition argument there, that existing platforms will just consume the new ones that have an understanding of handling digital currency payments.
Further, we have to ask ourselves exactly what function many of these companies perform. Order routing has complexities but isn’t exactly rocket science. Why can’t my digital wallet simply trade out on an exchange of my choosing if I want cash? Why am I paying the spread on these transactions when I can directly go to the market myself? Digital currency allows us to do frictionless transfer, so couldn’t an exchange accept a payment on my behalf and notify me when I had cash waiting? Obviously this is a simplification of the problem, but it seems we have a lot of middlemen inserted into a process that ultimately doesn’t need them.
In the end every Bitcoin company breaks down into just a few steps, and we are going to see modular open platforms that independently perform those steps. This is going to generate a tremendous amount of unstructured dumb liquidity. If you remember the explosion in growth of third party Forex, its time to make a stand in Bitcoin and digital currency. It’s happening here right now.
If you haven’t already seen it, I recommend checking out this video about the future of Bitcoin’s technology. It really lays out what I’ve been saying for a while, that we need to look at the underlying capabilities and start thinking about it as a new method for trusted exchange.
Digital currency is moving fast. Very very fast. It seems a day doesn’t go by where something new doesn’t crop up. The Bitcoin 2.0 space is particularly hot, with various organizations vying to lay the groundwork for future applications. While the world is still stuck on the notion of Bitcoin as a digital currency (if they understand it at all), technologists are embracing a more expansive vision. We are rapidly approaching a world where machines talk to other machines, but until now have lacked a viable mechanism for machines to pay other machines in real time for their resources, access, and capabilities. This machine-to-machine interaction is heavily predicated on their being facilities to do lightweight tokenization.
Let’s construct a contrived example. Let’s say we have invented a new type of camera, designed to be worn at all times that constantly stores video (yes, I am aware that devices like this exist). Over the course of years that is a lot of storage. The traditional model for building something like this would have the camera connect to a service that you the builder controls. It would send you video, which you would store. You would pay for that storage after the fact, and bill the consumer to continue hosting access to it. This means that you are not only a hardware maker, but are also in the storage business for video. Your devices will only work while you are providing them with storage, and hosting the infrastructure necessary to keep the cameras running.
Now lets make this an automated system. The consumer enters their purchase details and instead of directly buying storage with you their actual device is credited storage tokens that it controls. Storage tokens are redeemable for storage at any place that accepts them at a dynamic rate of Megabyte per second. Locations that accept storage tokens don’t have to know anything about the consumer, they don’t have to have any relationship whatsoever. They just have to accept storage tokens, provide the user with storage, and let them put stuff there. This means that the price of storage will fluctuate dynamically over time based on supply and demand. The video device itself negotiates with locations for storage, and pays them directly. When it starts running out of cash it tells the consumer who can top it up anywhere.
Now lets fast forward. Our video device company has discontinued the product, and moved on to bigger and better things. We got out of the storage business but because the tokens are untrusted existing providers can continue to honor those contracts, they have market value because people can exchange cash for tokens and vice versa on open markets. We have machines which rely on and can pay other machines for services rendered.
If you start thinking about what that means in the long term we get the complete decentralization of resources. Standard industry tokens start representing all aspects of compute power, labor and physical goods. Ram, Storage, Compute at the base, followed by more sophisticated high level services like image analysis, post production processing, rendering pipelines, messaging, Database/Querying etc. Devices no longer rely on the resources of one company, but on the available federated resources of the network. That is a total paradigm shift in the making, and Bitcoin is making it possible.
We want to be able to build highly scalable systems that respond to market demand, but are currently mired in a sea of incompatible APIs and standards. Our resources are heavily fragmented and silo-ed. In large part because there has never been a way for someone to negotiate the use of a specific resource without establishing a relationship with the provider, all that is about to change for the better.
Erlang is awesome. Really. Syntax aside the language has a lot going for it, like most good products it is highly opinionated. Pure process oriented message passing semantics with per-process mailboxes and garbage collection is a very clean approach. These fundamentals make it an excellent choice for distributed and concurrent programming, and barring Java with Akka there are few options for language-based distributed operation.
The importance of this is very much up for debate, given that the message-queue has become a ubiquitous proxy for language support. Discrete components written in multiple languages hooked up to some agnostic bus makes for a simple model for distributed computation and insulates programmers from many of the complexities of “real” distributed programming. Light-weight libraries like 0mq / and google protocol buffers have blurred the lines between the traditional message queue and full inter-process RPC. Despite these advantages some major software messaging platforms have been written in Erlang, including WhatsApp, and portions of major software infrastructure like Github. I’ve also heard that it has a role at Heroku, and frankly it makes sense.
Erlang has three absolutely killer features that make it a serious contender for any environment trying to have massive uptime. First, is the OTP platform itself. The official language is called Erlang/OTP for a reason, and thats because the Open Telecom Platform bakes in a lot of critical software components necessary to build resilient software. Not using OTP and building distributed code is like reinventing the wheel all over again. The second is hot code reload. You can upgrade code on a per module basis as the system is running, largely due to the enforced immutable state, but also a lot of back end plumbing. Doing live upgrades while a system is running is an extremely tricky business, but if uptime is absolutely critical it is a very powerful capability to have baked in to the core libraries. Finally, Erlang has a built in database. Mnesia is an acid-compliant distributed data store, capable of multi-node replication, sharding, and a host of other features that interface seamlessly with the language itself. Being able to store data in an active-active state across your application nodes, Mnesia makes it possible.
I do have one major gripe, and that is the real subject of this post. The open Telecom platform is fantastic for what it is, clearly probably the best framework out there for developing a 2 or 3 node high availability application. Takeover capabilities, distributed in memory operation, and hot code reload make for a potent mix when trying to design something capable of throughput and uptime. The problem is that it really falls short when we talk about large distributed applications. Once you want to run your code on ten nodes, or fifty, or a hundred the paradigms that OTP introduces kind of fall apart. The built in tools don’t handle network partitions very well if at all, they don’t have dynamo style consistent hashing, paxos support, or multi-cast and distributed messaging constructs between processes, nor can you expect to find built in service discovery (beyond PG2/Gproc). If you want these things (Ulf Wiger’s excellent Gproc library aside) you end up rolling your own. As any experienced programmer knows, rolling your own anything is difficult, and ultimately prone to error. When you are building a new application you generally want battle tested components, but in Erlang your options are limited.
Basho has done an excellent job with Riak, Riak Core is a really nice dynamo-style library, but its just one component in the toolbox. It is also low on examples, and although there are some interesting presentations on using it for service oriented architecture there is little in the way of open source code demonstrating that usage. I can understand why, certainly after building a nice distributed framework around Riak core many companies would simply keep it internal as part of their competitive arsenal. I think what Erlang needs is an Open Cloud Platform. A set of rock solid components that leverage Erlang’s robust distributed features, builds on OTP as a foundation, but really extends it’s capabilities for building applications that are highly distributed. Instead of having to cobble together a bunch of third party libraries, a single uniform set of interfaces around service discovery, messaging, and partition recovery would go a long way to keeping Erlang competitive in the long term.
Despite it’s success in certain industries Erlang will probably remain a niche language. Certainly some of it’s best features are being emulated in the JVM, and co-opted by languages like Scala, but it seems so clear with a serious effort on the tooling side it could cement itself as a viable alternative for a wide range of applications.
Jennifer Lawrence, Kate Upton, and numerous other celebrities have been exposed in a series of racy photographs and videos many of which they took themselves. People with extraordinary talents and prurient interests subsequently stole them from cloud services (iCloud). The obvious lesson here is don’t take pictures you don’t want mom to see. Followed closely by “use a secure password” not some english word, or your dog’s name. Unfortunately, while the subject might be giggle-worthy to some, there is a lot of information sitting online that is far more important.
The reality is that cloud security is a misnomer, there is nothing safe about it. This was long touted as the reason why corporations and consumers would avoid these services, but the cost and convenience advantages were too big to ignore. Let’s face it, it sure is nice that pictures from your iPhone and digital camera automatically sync with your home Mac, Ipad, and Apple TV. It is a slick feature with tangible consumer benefits, ultimately designed to make your life easier. Unfortunately in many instances this ease-of-use results in a loss of privacy.
We have gotten very good at creating a share-driven society, where information is publically accessible, and easy to get access to. The largest services on the Internet are entirely geared to getting the word out or disseminating pictures and video. The problem is that we don’t want to share everything, there are things we want to keep private, but this data is seamlessly mixed with everything else. We don’t have the strict separation required to protect us from rogue selfies, let alone personal and corporate identity theft.
Cloud security is a lot like the donuts above. Each donut represents a different organization. Every time you use a cloud service you are traversing multiple service providers, each with their own security practices and limitations. In the donut analogy a lot of money is spent on the exterior surface, perimeter security, but very little is spent in the interior. The problem with this model is that the interior of these organizations is rather porous, multiple parties have access to the data and systems of each company in the chain. This greatly increases the attack surface, and makes it much more difficult to isolate and protect consumer data.
Cloud data services are often constructed in a similiar fashion. Take data. Throw data on drive. Put permissions in database. Add password. Done. This is a recipe for data-leakage and compromise. It is the easy way to build software, that pays homage to good security practices while ignoring most of the hard work. Consumers and businesses don’t have the expertise to determine if their service providers are doing the right thing except when things go wrong. This should be a wake up call for Apple. No matter how they shift the blame away from their systems, in the end they are partially responsible for this type of data leakage because of poor security practices. In this event the end result was mild public embarrasment, but what is the cost to a company if their data gets leaked? What about compromising photos of their executives? Data can be extremely damaging, costly, and outright dangerous in the wrong hands.
So how do we solve this problem? Designing services from the ground up helps you create a sound methodology for data security. Clearly with the investment already put into existing cloud deployments we can’t simply replace them. Apple can take a page from it’s own playbook here and institute device-centric encryption. They already use a variant of this for their iMessage product. Granted the scale of data is not comparable, but we have a mechanism for boxing up data its called symetric encryption. The pervasive and less sexy cousin of public key cryptography, simply encrypting the data perhaps with the biometric thumb print in the new IOS would prevent a wide range of data abuse.
Ultimately you want to provide a seamless experience to the user while also protecting them from internal and external threats. Device and user-driven encryption can do this without compromising usability. In this instance the iCloud attackers may have gained password level access to icloud, but without these secondary biometric markers would have been unable to decrypt the incriminating selfies.
I would be remiss if I didn’t at least mention my own encrypted transfer service which is integrated directly into Gmail and Google Apps via a Chrome plugin. You can check that out here. Ultimately we need to demand better accountability for private data from the firms we have annointed as our digital shephards, and they have the expertise and the technology to provide a better, safer experience online.
NXT is not a Bitcoin source-code derivative, so doesn’t directly deserve the altcoin moniker. That being said it definitely is a brother-in-arms, adopting many of the core concepts while trying a different approach. It is a complete reimplementation of blockchain technology in Java, with a feature set heavily geared towards tokenization and distributed exchange. In many ways it is clearly geared as a spiritual successor to Bitcoin, addressing many of the core infrastructure concerns while adding a strong complement of crypto currency 2.0 features. A lot of this new functionality is built on the core of the project, rather than being bolted on to the existing technical stack. Total market capitalization is $28,860,616 at the time of this writing, number 5 according to coinmarketcap. It is important to note that those statistics are based on extrapolation of total available supply, which may not be an accurate gauge of real total monetary value or market penetration.
So what makes NXT special? Its considered a dark horse candidate in part because the technical stack is so different from Bitcoin core, major bugs in the latter that would surely tank the value of Bitcoin should not affect NXT. In this hypothetical scenario a major issue in Bitcoin and the thousands altcoin derivatives it is based on would destroy the credibility of it’s ecosystem, and NXT would be there to pick up the pieces and reap the rewards. This is a valid argument. I don’t personally believe that Bitcoin suffers from fundamental flaws in its design that would lead to total collapse, but if one were hedging a position in crypto currencies certainly NXT deserves mention.
From a technical standpoint we have 1 minute block times for fast confirmation, block retargetting to prevent changes in the network from adversely affecting the confirmation times, and a large fixed tokenized supply distributed via proof-of-stake. The proof-of-stake algorithm deserves its own post, it tries to address the tendency for mined networks to centralize and to keep the network fair and secure. It hasn’t undergone quite the rigorous upbringing of Bitcoin’s proof-of-work mining, but time will tell as the NXT network expands. The few projects I have seen built on the NXT network are an impressive demonstration of its capabilities.
If you are trading in altcoins I would consider NXT a hedge position against the market leaders. For those who are familiar with Taleb’s black swan, a major unforeseen event in the Bitcoin network should considerably bolster the value of NXT and other alternative blockchain-based networks.