What is Programmable Money?
Our current system of monetary exchange has evolved over time to accommodate new marketplace demands and technological advancements, giving financial inclusion to even the most remote villages on earth. Predating the era of tangible fiat currencies, the idea of an ecosystem reliant upon bartering was most commonly used to facilitate trade between two or more parties that were in the same geographical area, where the price of the goods or services being traded can be negotiated in person. It wasn’t until the advent of minted coins, most commonly attributed to Lydian societies (now modern-day Turkey) where an exchange of goods can be quantified based on a widely recognized set of standards. This store of value enabled ancient societies to expand well beyond their territorial boundaries and engage in trade with empires across the globe. New forms of monetary transmission have allowed civilizations to become more interdependent and the reliance on cross border trade has fueled societies to grow, people to live outside of major metropolitan areas, and cultures to assimilate with one another.
Our modern-day system of exchange, while technologically more advanced, is no different in principle than how ancient societies functioned. A good or service is placed in the marketplace and a price is set, for which a buyer can either accept, reject, or counter the offer. If the two parties agree on a mutually satisfactory price, the transaction is complete. This form of trade is conditional upon sellers providing quality goods and buyers using authentic forms of payment. However, the risk of bad actors using deceit and engaging in fraudulent behavior cannot be fully controlled in open marketplace transactions whereby those looking to deceive can offer counterfeit goods in return for authentic currencies. Modern trading platforms such as eBay and Amazon have security measures in place to facilitate transactions where payment of goods are not released to the seller until confirmation of goods in transit, partially combating fraudulent behavior, however, what happens if the goods in transit are fraudulent themselves? A bad review can be left for the seller, which can result in the reporting and shutdown of a seller account, but that only solves part of the problem and the buyer is often times left at a loss.
With recent advancement in marketplace architecture, the concept of programmable money has allowed transactions to not only be quantifiable (as in the case of eBay and Amazon) but also verifiable and secure. Goods and payment terms can be locked up in escrow where neither party is given access their piece of the transaction until authenticity is provided (through notary services or trusted 3rd parties) and goods have changed hands. A common example can be seen in the sale of a car. Jack is looking to buy a car from Bob, however, Jack wants to make sure the car passes the proper emissions tests, does not have structural damage, and is delivered to an address provided. Jack puts in escrow the amount that has been negotiated with Bob for the car and upon a mechanic signing off on all relevant tests and a shipping agent delivering the car to the proper address, the payment terms are then released to the seller. Programmable money, or the act of creating exchange based transaction conditions, gives the payer and payee greater parameters when engaging in trade and conditions such as time, value, and expertise can be predefined as a result of a valid trade and stored through electronic measures.
In theory, creating a system of predefined marketplace conditions where both the buyer and seller have transactional guarantees makes sense, but the logistical inefficiencies of implementing such a system have barred mass adoption to date. The DAO is a good example of what can happen when the direct access to funds transfer is controlled only by using the software. Through exploitation of weak security code, hackers were able to ciphon off about 80 million dollars in Ethereum’s native currency, Ether, due to the lack of features that frameworks supporting critical systems would ordinarily have. It is possible that inefficient or missing documentation was the result of the hack, where if properly provided developers could have spotted the critical flaws in advance, but when software is only the control agent for funds transfer, security is most critical. Technology development around programmable money has come a long way since the DAO hack of 2016 and major financial institutions such as IBM have started to make substantial investments into distributed ledger technology. In fact, IBM’s recent release of their programmable money whitepaper and platform World Wire, notes that 91% of banks surveyed in the report are making some kind of investment into blockchain technology as a facilitation medium for deposit transfers, however, the entire monetary transmission supply chain won’t be completely decentralized. It is argued that while there is substantial efficiencies that can be gained by using programmable money, critical functions such as ID management, monitoring transactions for fraud, and preventing/reporting money laundering activities will still be manual checks using trusted 3rd party agents.
Scaling Programmable Money
It seems as if this industry is heading towards using a blend of software and trusted 3rd parties to facilitate trade, however mass adoption of programmable money will only come from scalable protocol layers that allow for decentralized consumer applications to gain popularity. A great medium article by Newtown Partners (with contributions from Civic) discusses Decentralized Applications, commonly known as DApps, and their value chain. Application layers enable a relationship with the end user (ie consumer-facing services and interactions), application protocols facilitate the internal token economy, and base/processing protocols dictate governance of the organization and facilitate the underlying network. For consumer-facing solutions to work, all parts of the DApp value chain must work harmoniously so that value is captured across multiple layers. It is discussed that for mass DApp adoption, user aggregation of application layers is the only way to scale DApps and bring value to the underlying protocol. In some centralized manner, all the current infrastructure needed to build a DApp has already been created, thus, capturing a majority user base is the only way to effectively scale blockchain products. A DApp needs to be able to bootstrap and generate genuine user level interest before value can be attributable to the underlying protocol. But before a DApp can be built, it must work using already existing infrastructure (such as AWS), work with an established blockchain protocol layer (such as Bitcoin, Ethereum, Stellar, etc.) that can support its functional needs, or concurrently build with a new protocol layer.
Interestingly enough, the rise of protocol layers followed by mass adoptable consumer applications is not a new trend and in fact, occurred back in the early 90’s. When Tim Berners-Lee sought to build an application protocol layer for distributable and collaborative hypermedia information systems, the result was HTTP, or what has become the genesis of document and information sharing. Berners-Lee created a system where users can click and link resources for public access, consumption, and publication over the internet. He built the first web server, which leads to the rise of the web browser accessing, reading, and displaying the shareable content. Companies such as Netscape/Mosaic, Opera, and browsers, such as Lynx and Internet Explorer, were among the first to capitalize on this trend and soon after, consumer application development started to occur using HTTP to share content and web browsers to display content. Today, virtually all consumer applications use some form of HTTP (such as Amazon, Facebook, LinkedIn, etc.) with many organizations taking advantage of the numerous other protocol layers out there. With the blockchain industry still in its infancy, we are seeing many of the same trends as the early 90’s to build protocol layers that can eventually support mass adoptable consumer applications.
Problems with Blockchain Adoption
The blockchain developer ecosystem is growing: from October 2017 to October 2018, solidity package downloads tripled, the number of new decentralized applications released per week doubled, and OpenZeppelin (popular framework for smart contract development) downloads almost grew tenfold (source).
Developers building on platforms are motivated to build on a blockchain as long as the platform allows them to acquire users, scale across the users and monetize their applications.
When it comes to end-user acquisition adoption and the ability of current blockchains to scale applications across the larger user base, the existing solutions fall short of their promises.
What’s the problem with user acquisition?
The user coming from web 2.0 to blockchain faces a lot of challenges with basic concepts of this new paradigm.
The biggest problem or friction is that you have to pay for every transaction, even if the transaction is not monetary. This means that in order to create their first transaction, the users have to go through multiple steps, involving installing software, creating an account and funding the account.
In order to fund the account, the user would need to convert his fiat (USD) into cryptocurrency using some exchange. This usually involves some identification and sharing of personalized information with a centralized entity — which ruins the purpose of a decentralized environment. This clearly slows down adoption, since most people are not willing to share personalized information in the blockchain space, whereas sharing of personal information for mobile application usage is common practice.
At NEAR Protocol, we use a different transaction model: instead of paying per transaction, we use a rate limiter. Essentially, the user can send some amount of the transaction based on a per unit of time while the rate limiter is backed by bandwidth staking. Bandwidth stake doesn’t have to come from the user and other accounts or contracts can stake on behalf of the user. This allows new users to create transactions without having any money in their account. This means that a person who just opened the app for the first time can start using it almost immediately.
How does this work? When the user first visits the website, we either use their existing identity (similar to Metamask) or create an ephemeral account for them as a temporary identity. This ephemeral account can be used and later converted to a real account. The keys can be stored in local storage and the application can temporarily stake on behalf of this new account after some verification to prevent Sybil attack (for example: checking a phone number or some other form of login). After some time, the application’s stake is returned back to its account and can be reused again.
In other words, NEAR solves the issue of the user having to fund an account before using the application. Needless to say, it’s a major point of friction today: in popular decentralized applications, the dropoff rates for sign-ups go up to 97–99%. In other words, there is interest and demand, but users today can’t use apps due to monetary reasons.
While it’s now possible for a user to conduct their very first transaction in a decentralized application without any monetary support, we now look at potential security issues a user may face to keep their new account secure.
In most blockchain protocols, a users identity is linked to the user’s public key or at least a unique private key. This means if the private key is exposed, you have to re-create your account with a new private key and move everything to a new account (which might not even be possible due to fact that state data could be stored in other applications). Additionally, the private key cannot be trusted to be stored with other parties since the malicious third party can duplicate the key and get possession of user’s funds.
At NEAR Protocol, the user and contract identity is not a computer generated public key. Instead, it’s an alphanumeric string (some additional characters) such as a domain name, phone number, email or just a name. This makes it easy for people to read and remember account IDs. This allows an account to have a variable number of public keys associated with it and transferring accounts by swapping public key.
This can be used in at onboarding phase, an application can create an account on your behalf and then transfer ownership to the user when requested. A user would need to only provide the public key and receive full ownership of such an account. Importantly, this account can now be used with other applications.
Another use case is allowing each device to have their own key pair. Then when new device is added, the current device can just authorize new public key and add it to the account. This way, private key doesn’t need to transfer between devices or even be seen by the user.
In essence, NEAR Protocol allows developers to onboard new users without any additional software (using the concept of ephemeral accounts and bandwidth staking), while also allowing more advanced end users to use the application in a fully decentralized manner.
What is the problem with the current base protocol scalability?
From NEAR Protocol’s sharding blog post: “It is well-known that Ethereum, the most used general purpose blockchain at the time of this writing, can only process less than 20 transactions per second on the main chain. This limitation, coupled with the popularity of the network, leads to high gas prices (the cost of executing a transaction on the network) and long confirmation times; despite the fact that at the time of this writing a new block is produced approximately every 10–20 seconds while the average time it actually takes for a transaction to be added to the blockchain is 1.2 minutes, according to ETH Gas Station. Low throughput, high prices, and high latency all make Ethereum not suitable to run services that need to scale with adoption.”
Why are current solutions so slow? It’s because each node does all of the work for the system: processing transactions, relaying the validated transactions and completed blocks to other nodes, and storing states and histories of the system on each node individually.
Sharding of blockchain (which includes sharding of state and processing) solves these limitations because nodes in each shard are building their own blockchain that contains transactions that affect only the local part of the global state that is assigned to that shard. Therefore, the validators in the shard only need to store their local part of the global state and only execute, and as such only relay, transactions that affect their part of the state. This partition linearly reduces the requirement on all compute power, storage, and network bandwidth.
For an in-depth discussion on blockchain sharding, check out our other blog here. Needless to mention, sharding introduces some additional complexities and therefore new problems, with many of them being unsolved as of now. We’ve covered such problems in this blog post.
However, an important additional benefit is that higher throughput will decrease each transaction cost which will make it cheaper for everyone to use blockchain.
Industry Set For Change
With scalable application and base protocol layers in the works, there has been a rise of consumer-facing applications that are trying to capture aggregate value with users to solve real-world use cases within the financial sector. Developing fractionalized lending platforms (ie asset tokenization platforms) where users can own shares of historically illiquid assets has grown in popularity over the last couple of years. While not directly related to the blockchain space, companies such as Realty Shares, Fund Rise, Lending Home, and Cadre are among the numerous companies that are taking a distributed approach to investing. From the consumer side, capital can be invested into a variety of real estate deals with no more than a small minimum buy-in while all back-office tasks (legal, underwriting, etc.) are taken care of. Furthering the push to capture consumer-based market share, there has also been a rise of mobile-first financial planning and investment platforms seeking to provide users access to stocks (and cryptocurrencies) with the push of a button and with no transaction fees. Robinhood is among the leaders seeking to provide value to the average investor with more than 4 million user account registrations and a valuation of $5.6 billion. Traditional investment platforms are paving the way for consumer-facing blockchain products to grow and it’s only a matter of time before using programmable money to guide the purchase and sale of fractionalized partnership, real estate, or alternative investment interests can come to fruition. While companies such as Harbor and Trust Token are making waves to further these goals, it seems as though the days of requiring large minimum buy-ins, having access to deal flow, or locking up capital may be a thing of the past as protocol/application layers are working together to garner user adoption and appeal to the average consumer.
As of the time of this writing, nobody knows what the initial blockchain use cases with mass adoption will look like. Since monetary transactions are baked into the chain, the first applications will likely involve financial transaction services, however, the potential for adoption within other vertices are still being explored. Blockchain developments reliant upon security and trust have created the idea of fungible tokens, leading to native use cases such as CryptoKitties. But once the technology is far enough along to facilitate more cost-effective transactions, we might see completely new applications being adopted.
In this blog post, we’ve covered the history of monetary systems as well as how programmable money has allowed transactions to not only be quantifiable (as in the case of traditional tech marketplaces, like eBay or Amazon), but also verifiable and secure. We then looked at how adoption might come from better approaches to the current usability and scalability models that can help blockchain technology pave the way for an industry set for change. With the right public and private capital support, tokenized investment funds can replace traditional investment platforms that may help consumer-facing blockchain products to grow in the financial services sector. We see it as only a matter of time before using programmable money will guide the purchase and sale of fractionalized partnership, real estate, or alternative investment interests that can be readily available for consumer use.
NEAR Protocol builds a sharded general purpose blockchain with a huge emphasis on usability. If you like our write-ups, follow us on Twitter to learn when we post new content:
If you want to be more involved, join our Discord channel where we discuss all technical and non-technical aspects of NEAR Protocol, such as consensus, economics, and governance:
Lastly, please subscribe to our newsletter. We send bi-weekly updates, and this is the best channel to learn about our progress towards the launch of NEAR Protocol.