What is Ethereum, the Initiative?
The Ethereum Initiative is an open-source, community-fostered endeavor aimed at establishing a next-generation decentralized application platform designed to be maximally versatile and potent in the opportunities it offers.
What is Ethereum, the Platform?
The Ethereum Platform merges a generic peer-to-peer networking system with cutting-edge blockchain infrastructure to provide a decentralized consensus-based (decentcon), comprehensive platform for creating, offering, and utilizing distributed application services. A user-oriented application, referred to as the EtherBrowser, integrates the frontend and backend to generate an environment where anyone can easily and swiftly develop highly secure, scalable, and interoperable decentralized applications.
Similar to the BitTorrent content sharing network, Ethereum network nodes operate on thousands of computers globally, and aside from shutting down the Internet, its operations cannot be interrupted. This is due to peer-to-peer systems typically involving a vast array of independent participants (individuals or organizations) each running the peer node software on one or more computers. In the Bitcoin ecosystem, these nodes are termed “miners.”
Like Bitcoin, in Ethereum, the nodes within the network act as miners whose function is to process and authenticate the transactions and computations in the system and quickly reach a consensus about what occurred within the system and when. This consensus provides the network with its security. The larger the number of nodes and the greater the effort these nodes exert to cast votes on events that transpire in the network, the stronger the impression that this shared consensus view of the system’s history is a canonical and irrefutable account. In Ethereum, miners receive compensation for completing the tasks necessary to inform and facilitate their vote, and they are also rewarded for supplying resources to the network in terms of bandwidth, storage, and computational processing.
Bitcoin is a system for securely transmitting and safeguarding value. As such, it can function as the financial foundation of the emerging global decentcon economy. A cautious, well-considered development roadmap for Bitcoin will facilitate easier usage and further secure the protocol against peculiarities and edge cases that might be exploited in the future (although it has thus far demonstrated remarkable robustness at the protocol level). In contrast, as a platform for hosting distributed or decentralized applications (ÐApps — spelled with a capital “eth” and articulated as “dapps” or “eth-apps” by insiders ) and services, Ethereum must be nimble and proactive. In Q4 of 2014, the Ethereum team plans to deliver a feature-rich system that will be entirely functional and will feature a rich user interface, delivering a compelling user experience for both end users and enterprises developing ÐApps and providing services on the platform. However, technology progresses rapidly, thus Ethereum will necessitate an upgrade roadmap and ongoing development.
What is Ether, the Cryptofuel?
Much like the Bitcoin system has a token, known as a bitcoin (lowercase), that acts as the medium of exchange, Ethereum possesses ether (ETH) which functions as a unit of exchange to some extent, but more critically, it serves as a fuel that powers applications within the Ethereum ecosystem.
The engineers behind the Ethereum Initiative are constructing a computational device or appliance in the form of a software program that anyone can download and operate on their computer, smartphone, or on specialized, high-speed hardware. To run this software appliance, a specific type of token is required as fuel in suitable quantities.
Distributed applications on Ethereum necessitate payments of this token to power every computational and storage operation in the system. Without payment requirements for operations, the system would be susceptible to multiple forms of attacks and would not be viable or secure. Payments are made to individuals owning computational resources in exchange for securing the Ethereum network, for transmitting transactions, for data storage, and for processing computations needed by distributed software applications.
Individuals and enterprises are keen on acquiring ETH to fuel their own business applications, to utilize business applications provided by other service suppliers, to trade on upcoming exchanges, or to hold speculatively for future sale to individuals and businesses. ETH may be procured in the Genesis Sale (details to follow, please stay tuned), on forthcoming third-party exchanges and ATMs, and on exchanges implemented as DApps on Ethereum.
When purchasing ETH during the Genesis Sale, the buyer supports the product’s development, much like in a Kickstarter campaign. Once the product is finalized and prepared for delivery, buyers will be able to claim their purchased ETH from the genesis block — the foundational block of the Ethereum blockchain.
What is Ethereum, the Software Stack?
A software stack constitutes a set of technologies realized at various layers and levels of abstraction, possessing different complementary capabilities that work cohesively to empower a software development team to create a complete back-end to front-end software service for an end user. Ethereum offers a full-stack solution for creating and delivering ÐApps, the frontend of which can be accessed by an end user from a web page, dedicated front-end applications, or more commonly from the Ethereum ÐApp Browser. The Ethereum stack is the first of its kind to enable developers to deliver decentcon software applications.
When deploying an ÐApp, the developer or deployer does not arrange hosting for back-end server processes as with traditional software services. Instead, the code is integrated as payload in a transaction on the Ethereum network and dispatched to one or more mining nodes within the network. Miners receiving the transaction broadcast it to all peers they are aware of, provided the transaction sender has included sufficient ETH, the cryptofuel that powers operations in the system, to pay for the transaction. This transaction spreads through the network, peer-to-peer, and eventually is assembled into a block and secured within the blockchain. Blocks are generated by miners approximately once a minute. Once the transaction with the code payload is integrated into a block, further transactions can be sent to an address designated as the controller interface for that ÐApp to invoke processing of the ÐApp.
When an end user intends to activate one or more services offered by this ÐApp, they will typically interact with a front-end user interface, loaded into the ÐApp Browser (likely Qt-based or JavaScript/HTML5/CSS3) to initiate desired actions. User interface components will be cached on some type of decentralized BitTorrent-like cloud and retrieved by the ÐApp Browser as needed. The user interface will formulate Ethereum transactions and send these, along with an appropriate amount of cryptofuel and any necessary input data, to the address of the controller interface.of the ÐApp. Once aggregated into a block, the transaction will initiate the execution of the ÐApp, and the statuses of various elements (referred to as contracts) of the ÐApp will shift to a resultant state. A peer-to-peer rapid messaging protocol will allow the user interface to reflect these modifications and will support communication among diverse DApps and users.
One aspect to observe is that, from the viewpoint of application deployment, there is essentially nothing that needs to be performed. The back end is deployed into the blockchain “cloud,” while the front end is typically shown as an installable tile within the Ethereum ÐApp Browser. The end user will install the browser once, and it will receive ongoing updates from BitTorrent or a similar distribution system. While exploring the decentralized ÐApp catalog in the browser, the end user can install any appealing ÐApp in her browser with a no-cost, single-click installation. These tiles will be organized into categories by users, each being invocable into a comprehensive user interface that is “responsively” sized and configured according to the dimensions and capabilities of the browser (some less powerful devices may face limitations).
The programming model just outlined will be quite atypical when compared to conventional development technologies and will necessitate creative (and perhaps at times makeshift) techniques. If a developer can only anticipate the state of the business logic to refresh once every minute, randomly, methods must be devised for specific applications to possibly cache certain anticipated state modifications and await back end processing prior to updating the front end. Even more complex is the reality that a block containing transactions and related ÐApp state modifications can be formed and included in the blockchain but might subsequently find itself excluded from the primary consensus blockchain, which could result in the associated transactions remaining unverified and unprocessed for a certain duration. Furthermore, an intervening transaction might be processed first, thus invalidating the first transaction. A wholly new realm of blockchain-based software development methodologies is needed. Many developers will create innovative solutions, and some entirely new strategies may be necessary. For this purpose, we are establishing the Crypto Currency Research Group (CCRG) to perform general research that benefits the entire niche. Please keep an eye on this space for further information on the CCRG.