What is Ethereum, the Project?
The Ethereum Project is an open source community driven effort designed to create a next generation distributed application platform intended to be as flexible as possible and powerful in the possibilities it enables.
What is Ethereum, the Platform?
The Ethereum platform combines a pervasive peer-to-peer network platform with next-generation blockchain architecture to offer a complete consensus-based decentralized (decentcon) platform for developing, delivering, and using distributed application services. A consumer-facing application, called EtherBrowser, integrates the front and back ends to create an environment where anyone can quickly and easily build highly secure, scalable, and interoperable decentralized apps.
Like the BitTorrent content sharing system, the Ethereum network nodes will run on thousands of computers around the world, and unless the internet goes down, their operations cannot be stopped. This is because peer-to-peer systems typically involve a large number of independent actors (individuals or organizations), each running the peer node software on one or more computers. In the Bitcoin system, these nodes are called “miners”.
Like Bitcoin, in Ethereum, the network nodes serve as miners whose purpose is to process and validate transactions and calculations in the system and quickly achieve consensus on what happened in the system and when. This consensus is what provides the network with its security. The greater the number of nodes there are, and the more work these nodes have to do to exercise a vote on what happened on the network, the greater the feeling that this shared consensual view of the system’s history is an irrefutable and canonical representation. . . In Ethereum, miners are rewarded for doing the work necessary to inform and enable their vote, and are also paid for providing resources to the network in the form of bandwidth, storage, and computational processing.
Bitcoin is a system for safely transmitting and storing value. As such, it can serve as the financial foundation of the emerging decent global economy. A conservative and prudent development roadmap for Bitcoin will make it more user-friendly and further protect the protocol against quirks and edge cases that could be exploited in the future (although it has so far proven to be remarkably robust at the protocol level). On the contrary, as a platform for hosting distributed or decentralized applications (ÐApps, spelled with the capital letter “eth” and pronounced “dapps” or “eth-apps” by insiders 🙂 ) and services, Ethereum must be agile and advanced. . moving. In Q4 2014, the Ethereum team will deliver a feature-rich system that will be fully functional with a rich user interface and provide a compelling user experience for both end-users and businesses building ÐApps and offering services. on the platform. But technology moves fast, so Ethereum will require an upgrade roadmap and continued development.
What is Ether, the Cryptofuel?
Just as the Bitcoin system has a token, called bitcoin (in lowercase) that serves as the medium of exchange, Ethereum has ether (ETH) that serves as the unit of exchange to a certain extent, but more importantly, it serves as fuel. that powers applications on the Ethereum system.
Engineers at the Ethereum Project are building a computational device or device, in the form of a software program, that anyone can download and run on their computer, smartphone, or dedicated, fast hardware. To operate this software device, a certain type of token is required as fuel in appropriate amounts.
Distributed applications on Ethereum require payments of this token to power all computational and storage operations on the system. Without requiring payment for operations, the system would be vulnerable to many types of attacks and would not be viable or secure. Payments are made to the owners of the computing resources in exchange for securing the Ethereum network, transmitting transactions, storing data, and processing the computations required by distributed software applications.
Individuals and businesses are interested in purchasing ETH to power their own trading applications, make use of trading applications offered by other service providers, trade on future exchanges, or speculatively hold for future sales to individuals and businesses. ETH can be purchased at the Genesis Sale (more details coming soon, check this space), on future exchanges and third-party ATMs, and on exchanges that are implemented as DApps on Ethereum.
By purchasing ETH in the Genesis Sale, the buyer is supporting the development of the product, just like with a kickstarter campaign. When the product is complete and ready for delivery, buyers will be able to claim their purchased ETH from the genesis block, the root block of the Ethereum blockchain.
What is Ethereum, the software stack?
A software stack is a set of technologies, realized at different layers and levels of abstraction and possessing different complementary capabilities that work well together to enable a software development team to build a complete software service, from back-end to front. -end for an end user. . Ethereum provides a full-stack solution for developing and delivering ÐApps, the front-end of which can be accessed by an end user from a web page, dedicated front-end applications, or most commonly from the Ethereum ÐApp Browser. The Ethereum stack is the first of its kind that allows developers to deliver decent software applications.
When delivering an ÐApp, the developer or implementer of that ÐApp does not organize the hosting of the back-end server processes as with traditional software services. Rather, the code is embedded as a payload in a transaction on the Ethereum network and sent to one or more mining nodes on the network. Miners who receive the transaction will broadcast it to all peers they know of, as long as the sender of the transaction has included enough ETH, the crypto-fuel that powers operations in the system, to pay for the transaction. This transaction is broadcast across the network, peer-to-peer, and is ultimately packaged into a block and locked on the blockchain. Miners create blocks approximately once per minute. Once the transaction with the code payload is embedded in a block, subsequent transactions can be sent to an address designated as the controller interface for that ÐApp to invoke ÐApp processing.
When an end user wishes to activate one or more services offered by this ÐApp, they will normally interact with a front end user interface, loaded in the ÐApp Browser (probably based on Qt or JavaScript/HTML5/CSS3) to activate the desired actions. The UI components will be cached in some kind of decentralized cloud similar to BitTorrent and pulled by the ÐApp Browser as needed. The UI will formulate Ethereum transactions and send them, with an appropriate amount of crypto-fuel and any required input data, to the ÐApp controller interface address. Once compiled into a block, the transaction will trigger the execution of the ÐApp and the states of various components (called contracts) of the ÐApp will transition to a result state. A fast peer-to-peer messaging protocol will allow the user interface to reflect such changes and facilitate communication between different DApps and between users.
One thing to keep in mind is that from an application hosting perspective, there’s pretty much nothing to do. The back-end is released to the blockchain “cloud” and the front-end will usually be rendered as an installable tile in the Ethereum ÐApp Browser. The end user will download the browser once and the browser will receive continuous updates from BitTorrent or a BitTorrent-like distribution system. While browsing the ÐApp catalog distributed in the browser, the end user can install any ÐApp that interests him in his browser at no cost and with a single click. These tiles will be arranged categorically by users and each will be invoked in a full user interface, sized “responsive” and configured according to browser dimensions and capabilities (some weaker devices may have limitations).
The programming paradigm just described will be very unusual compared to typical development technologies and will require innovative (and perhaps sometimes clumsy) approaches. If a programmer can only expect the business logic state to update once a minute, stochastically, techniques will have to be developed for certain types of applications to perhaps cache certain expected state changes and wait for back-processing. end before updating the front-end. Even more complicated is the fact that a block containing transactions and associated ÐApp state changes can be built and included in the blockchain, but then not become part of the main consensus blockchain soon after and possibly the associated transactions remain unconfirmed and unprocessed for a period. of time. Worse yet, an intermediate transaction could be processed first, making the first transaction invalid. A whole new field of blockchain-based software development techniques is required. Many developers will forge novel solutions. And some fundamentally new approaches may be required. And for this, we are developing the Cryptocurrency Research Group (CCRG) to do general research of benefit for the whole niche. Watch this space to learn more about the CCRG.