Before Bitcoin, it was simply not widely possible to digitally transfer wealth online without some form of centralized intermediary . Bank transfers required banks, and credit card transactions required credit card companies and merchant processors. Digital currencies relied on centralized servers with trusted parties to store account information, transaction data, and often, assets backing the value of the currency. By removing central authorities from the process of transferring money over the Internet, Bitcoin laid the groundwork for a ‘trustless’ economy.
Using cryptocurrencies, one can send funds to anyone on the network without relying on a centralized authority. Shortly after Bitcoin’s launch, Satoshi proposed further functionality using ‘Bitcoin Scripts’ to enable more than simple send and receive functions on the network . An example of Scripts in action would be multisig, where multiple users must sign before funds are released. Bitcoin has since pivoted away from complex on-chain logic.
Ethereum adopted and expanded the programmable money concept. While Bitcoin Scripts are analogous to the punch-card computer programs of old, Ethereum is comparable to first ‘operating system’ that directly addressed virtual money in a decentralized environment. Ethereum smart contracts run within the EVM, or Ethereum Virtual Machine, using a new language called ‘Solidity’ that can execute functions ranging from simple ‘if-then’ statements to entire applications, all with far less technical acuity than required by Bitcoin Scripts. Ethereum smart contracts represented a large step towards fully programmable and autonomous money transactions .
A basic instance of a smart contract is the common ICO, or Initial Coin Offering. In this straightforward example, an organization accepts a liquid asset (Ether) at a specific address, and when Ether arrives, the smart contract automatically sends a new asset back to the source address at a given, fixed exchange rate. The smart contract autonomously handles transactions until a specific amount of time has elapsed or a specific limit is reached. The organization can then use its newly acquired Ether to conduct operations, while the holders of the new asset are free to trade it or use it for products and services.
Even smart contracts as simple as the example above have been identified to contain critical bugs, and as their complexity grows, so does the frequency and potential impact of these bugs. In 2018, in fact, a code auditor determined that twenty-five percent of all smart contracts contain critical security issues . Vulnerabilities and critical flaws can be patched in normal software systems, but smart contracts are final and cannot be modified once deployed. While the immutable contract is the foundation of ‘trustless’ exchange (meaning that the system does not rely on trust to function), it is entirely incumbent on smart contract authors and pre-auditors to guarantee the contract code. In this context, lack of understanding of Solidity, hasty deployment, and inability to react quickly to new information all pose substantial threats to safe smart contract execution.
Standard smart contract architecture sustaining versatile and complex applications generally requires a Virtual Machine, similar to the EVM and others. This essentially provides the ‘runtime engine’ in which the applications reside. Virtual machines run a variety of applications, and this usually results in a bloated system that requires heavy resources to run simple tasks. By deploying modular solutions using custom transaction types and plugins, ARK distributes the workload and removes overhead, making ARK technology far more scalable than other platforms.
The complexity of smart contracts poses even further problems: the Solidity language utilizes a multitude of granular functions to build applications. However, this can result in awarding too much raw power to the developer, who may inadvertently introduce potential exploits into a program. By distilling common business logic into ‘building blocks’ that can be assembled in a controlled environment, ARK mitigates the risk of faulty code while nonetheless supporting highly sophisticated smart contract solutions. An initial goal of Ethereum was to bring decentralized computing to the public by offering smart contracts as an efficient and safe way of carrying out business and consumer transactions. The ARK platform pursues the same goal, but with a host of user-friendly applications designed to minimize risk and error.
From the outset, our intent was to provide a solution addressing the Blockchain Trilemma and the well known limitations of blockchain technology. Many of these solutions are integrated into SmartBridge technology which, via an ecosystem of linked chains with specific use cases, allows for greater flexibility and scalability. Equally important, we address the aforementioned issues with smart contracts, which until now, have lacked flexibility and obliged developers to learn new languages.
ARK delivers more than just automation and distributed relay execution - in other words, the basic functionality of any smart contract. Via modular architecture based on plugins, we enable organizations to leverage existing expertise to develop secure and efficient blockchain applications. ARK plugins behave like normal TypeScript applications, with the exception that they run on ARK Core and therefore integrate all the capabilities of the blockchain engine. By developing a plugin, users are able to draw on the expressive capability of common programming languages to develop tables, storage options, Web servers, GUIs, and more, all on top of ARK Core technology.
Offering blockchain solutions that are flexible, user friendly, and adaptable is a necessary first step towards mass adoption. A prime example of this logic, one that is the basis for all of ARK technology, is the ARK Deployer. Developers can define custom behavior of the DPoS mechanism, adjust block time and TPS, change number of delegates, and adjust the fee mechanics and block rewards.
At the transaction level, we introduced the novel concept of adding custom transaction types that still follow the blockchain processing rules, but which can be custom tailored as needed. Custom transaction types, unique plugins, and a fractal network of interconnected bridgechains handling specific use cases all combine to maximize flexibility for developers.
At ARK, we draw on the principles of decentralized computing and apply them to the design of our network architecture. Where many other blockchain projects aim to act as global supercomputers, we recognize that modular programming approaches can better address pressing scalability problems. If a business or organization has a need for specific processing power, custom applications requiring faster confirmation times, or oracles that address a specific business process, the best solution is to launch and configure an application-specific chain and implement a module addressing the needed business logic. Such an approach offers three main benefits:
Strain on the main ARK network is reduced as resource requirements move from mainnet to bridgechain
Stability is improved, as a bridgechain can be run in an isolated environment, free from the bloat of external operations
Upgrades become easier as logic can be modified and improved, in contrast to the finality of smart contracts. The application can scale indefinitely provided that consensus is reached.
Moving processing logic from mainnet to bridgechain is in sum, a simple and effective solution that offers the same benefits as sharding and payment channels, both of which present a host of stability and security issues that result from their complexity.
We addressed the Blockchain Trilemma with knowledge and experience earned both through extensive work with companies who have launched successful projects using ARK technology, and the continuous development of the platform since 2016. We support ARK users with extensive and thorough documentation, guidebooks, tutorials, code examples, and a vast network of community developers that we cultivate. ARK Logic components such as modular plugins and TX templates will combine with the above elements to make creating and deploying decentralized applications extremely simple, but ARK technology is far from basic. The ‘keep it simple’ approach of ARK Logic is designed to allow anyone to create or enhance their project in the most efficient and standard way.