It wasn’t just Schwarzenegger movies and great haircuts that made the 1980s so special: the emergence of the personal computer industry, and the mass-cloning of the IBM PC architecture in particular, enabled the software industry to flourish and grow, ultimately whetting cultural appetite for the present age in which software is indeed eating the world.
Like that first IBM PC, Golem is a standardized way of renting computational box, useless without proper software to give it meaning. But unlike IBM, we embrace all those who would take advantage of the standard, right from the start. Indeed, we want every developer, researcher, and software company to be able to integrate with Golem in a manner that is fair, decentralized, and completely secure. To assist in this integration, we have designed two powerful concepts: the Application Registry (“Registry”), and the Transaction Framework.
When a developer integrates their application with Golem, it must be registered on the Ethereum blockchain, via the Registry. This Registry holds basic information about the developer and his or her application, linking the developer’s identity with the application, as well as providing information about the application’s properties.
The Application registry also allows everyone to certify an application as trusted, or blacklist it as untrusted. Which certificates to trust is ultimately up to the provider, who is actually performing the computation. This concept gives a very simple and decentralized way of integrating with Golem, at the same time giving all users a reasonable level of security, so long as there are parties they trust in the system.
But why would software developers be interested in integrating with Golem in the first place? There are many potential motivations, but perhaps the most obvious and important is the market. We want to give the developers freedom of setting the renumeration rules for all parties involved, as long as they are compliant with some general prerequisites.
Not wanting to limit developers’ creativity in any way, transaction rules in Golem are now pliable via this framework, with two precepts:
- The pricing mechanism, both for computing and software, has to be verifiable, and based on well-specified and measurable units.
- The transaction must be fair to all the parties. In other words, the participants should be able to foresee (with some reasonable level of confidence) the outcome of the transaction.
The above means that provider (the owner of the computing hardware) must be rewarded, and this reward must to correspond with the provider’s expectations as expressed in the price-setting mechanism. At the same time, a developer can introduce payments for software via many different models: a single payment, payment for a single use of software, or payment for a unit use of software (for example, running the software for a specific number of hours, or performing a certain task) would all be valid.
We hope that above solutions will create a powerful incentive for developers to integrate with Golem, which will hopefully become not only a major market for computing power, but also an important distribution channel for software capable of utilizing the network’s full potential.