This repository has been archived by the owner on May 7, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 29
/
design_philosophy.tex
15 lines (8 loc) · 4.11 KB
/
design_philosophy.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
At Hyperledger, all projects follow a design philosophy that includes a modular extensible approach, interoperability, emphasis on highly secure solutions, a token agnostic approach with no native cryptocurrency and the development of a rich and easy-to-use Application Program Interface (API).
Distributed ledgers for different use cases can have vastly different requirements. For instance, in use cases where participants have high trust between one another, such as many financial applications, blockchains can use rapid network consensus systems and short block confirmation times before being added to the chain. However, other applications where there is minimal trust between participants may tolerate slower processing times.
Hyperledger embraces the full spectrum of these uses cases, especially enterprise scenarios with widely varied requirements for decentralization, trust, continuity, confirmation times, etc. Each represents a potentially unique “optimization point” for the technology. To address this, Hyperledger is developing modular, extensible frameworks that allow the re-use of common building blocks, while enabling experimentation and evolution with DLT components. This modular approach enables extensibility and flexibility by defining common functional modules and the interfaces between them. This allows components to be changed independently without affecting the rest of the system. We are in the early stages in the evolution of DLT systems, and by taking a modular approach we will be able to experiment with different approaches to functional components. A modular approach allows us to develop optimal components which may be combined to compose DLT solutions that are best suited to different sets of requirements. Another advantage of the modular approach is that it allows a diverse community of developers to work independently on different modules, and allows the re-use of common modules across multiple projects. We define modules and interfaces for consensus, ledger storage, smart contract, communication, identity and policy and crypto functions\footnote{The architecture working group rocks!}.
Security is a key consideration for distributed ledgers, as many use cases may involve high value transactions or otherwise sensitive data. Securing a blockchain is quite a difficult task: distributed ledger components must be secure against online, persistent adversaries while still containing a large, feature-rich set of functionalities. The large codebase and open, networked nature of distributed ledgers make them prime targets for attackers.
In Hyperledger we view security and robustness as key aspects of Enterprise class blockchains and DLTs, which will evolve into critical infrastructure for next generation business networks. This includes embracing security by design and following best practices as specified by the Linux Foundation’s Core Infrastructure Initiative, and ensuring that the algorithms, protocols and crypto are reviewed and audited by security experts.
Interoperability and portability are key aspects for the work done under the Hyperledger umbrella. We envision that there will be many interconnected blockchain networks which will need to communicate and interact with each other to form potentially complicated networks. It is also highly desirable that smart contracts and applications be portable across different instances of blockchain/DLT networks in order to make development easier.
Hyperledger is independent and agnostic of currency and tokens. In Hyperledger we do not require a native token either as a means to provide incentives to operate the network or for resource management.The explicit focus on managing digital objects (which may represent currencies) removes the requirement for intrinsic crypto-currencies and native tokens.
Hyperledger projects will also support a well defined set of API’s and SDK’s that allow external clients and applications to interface with core DLT infrastructure. These API’s will enable a rich developer ecosystem that is needed to be successful in proliferating blockchain and DLT solutions across a diverse set of markets and use cases.