Place/Date: British Virgin Islands - June 17th, 2021 at 12:12 pm UTC · 8 min read
Contact: Mina, Source: Memolabs Limited
MEMO, short for Memoriae, is an open-source decentralized cloud storage system designed by Memolabs. You can read in detail the highly secure, reliable, cost-effective decentralized cloud storage system planning design of MEMO.
1.Original Intention for Decentralized Cloud Storage System Design via MEMO
2.System Requirements–Problems We Need to Solve
3.Management of Smart Contract
4.How to Call the Smart Contract?
Nowadays, everyone is deeply surrounded by massive amounts of information. On the one hand, it does raise anxiety among people; on the other hand, there is no lack of useful information for those in need. Besides, almost every individual has the need for storing private data, especially for some organizations.
However, with the exponential explosion of data, people have found that the cost of existing data storage methods has increased correspondingly. In addition, frequent information security incidents also make people re-examine the existing data storage mode, and people look forward to a safer and more efficient new storage mode. Considering the above, the decentralized cloud storage based on blockchain has emerged.
What is decentralized cloud storage? Compared to traditional centralized storage, the brand-new decentralized cloud storage organizes and utilizes the idle electronic devices scattered around the world, such as mobile phones, computers, hard drives, etc., which can all be used as edge storage nodes. At present, the blockchain-based decentralized storage network is still in the stage of continuous exploration. After continuous efforts, Memolabs, as a blockchain data storage company, has developed a new generation of blockchain-based decentralized cloud storage system MEMO. Compared with other blockchain-based DCS systems,MEMO adopts a more concise and efficient technical processing method to protect the data of Keeper, Provider, and User, thereby ensuring the high security, reliability, and cost-effectiveness of the entire storage system and enabling users to obtain better-quality experience.
Since the decentralized cloud storage system is deployed in a low-trust P2P network, there is no centralized third-party organization responsible for the management, and the storage devices are mostly idle edge devices offered by Providers, not proprietary storage servers. Therefore, for this application scenario, the decentralized cloud storage management system first faces system management problems, which are divided into system role management, storage market management, data maintenance management, etc. These management requirements are ultimately solved by smart contracts, so the management problems of smart contracts must also be solved.
1. Management of System Roles–Solve the Problem of Role Division
According to the needs of storage scenarios and functions, users in a decentralized cloud storage system are divided into three categories, which are defined as User (storage demander), Provider (storage provider) and Keeper (storage coordinator). Their functions in the system are stated as follows:
2. Management of Storage Market–How to Implement Decentralized Cloud Storage Service in MEMO System on Blockchain
The key application of Mamoriae is storage service, so the management of storage market is essential. With the help of Keeper, User finds some suitable Providers who provides the space and time for data storing. Keeper challenges Provider on a regular basis, so if there is a Provider found to fail, then the data repair function needs to be triggered. User downloads and reads its data from Provider when there is a need. According to the application scenario above, User needs to pay Provider for storing and downloading data and pay Keeper for information coordination and management.
If one of the three roles violates the storage rules, such as damaging data and refusing to repair, etc., a corresponding penalty mechanism is needed to maintain the normal operation of the system. How Keeper matches between User and Provider; how to pay according to the price after the storage service is established; how to solve it when faced with a request from a User to download data. These problems stated above are collectively referred to as the requirements of storage market management, so MEMO has designed a storage duration management solution for this.
3. Management of Data Maintenance – Solve the Problem of Data Maintenance
Decentralized cloud storage systems face the need for data maintenance and management. User’s data is stored on the selected Provider in the form of object storage, and the corresponding Keeper will challenge to ensure that the Provider saves the data completely and correctly. However, this mechanism lacks credibility. All Keepers facing the same User may act dishonestly and provide false challenge results.
In addition, the user’s metadata information is stored on the corresponding Keeper and synchronized between the Keepers. This can solve the problem of the unbalanced load of metadata information or node failure in centralized cloud storage. However, this method does not completely guarantee the correctness of the metadata information because the Keepers may negotiate and commit evil together. Therefore, based on the decentralization and trustworthiness of the smart contract, important information related to the stored data can be stored in the smart contract, so as to facilitate the maintenance of the correctness of the data.
In order to maintain data security and integrity, various mainstream cryptographic technologies, such as symmetric encryption and decryption, anti-collision hash functions, and digital signature technologies, are applied to meet strict data privacy and integrity requirements. Cryptography technology and data redundancy and repair technology will provide the system with sufficient flexibility to tolerate various possible software and hardware failures and small-scale malicious attacks, such as attempts to invade the equipments of Keeper, Provider and User, thereby tampering, destroying, or disclosing data and information. At the same time, MEMO uses proven POW and more innovative POS technology, supplemented by third-party security tools to further enhance system security.
One of the key issues in building a large-scale decentralized cloud storage system is the efficient management of system roles and their relationships. As mentioned above, the system has requirements for role management, storage market management, data maintenance and management.Also,these requirements ultimately need to be realized by smart contracts. Therefore, smart contract management is the basis for the realization of the above three types of management requirements. Contract management runs through the entire operating system.
After the smart contract is deployed, the user needs to use the contract instance to call the methods in the contract. The contract instance can be constructed by the contract address. For some contract functions that need to change the on-chain state information, a specific user identity is required to call; and for those contract functions that obtain the on-chain state information, any user identity can call. Therefore, the system has management issues such as storage and acquisition of contract addresses.
In the MEMO system, the account is first registered as a certain role, such as User. During this process, the address and User role of the account will be saved in the role module on smart contract. When the account is online, the role smart contract will be called. Get your own role, and get the corresponding service according to it. The account determines the role that it wants to play in the system based on its own storage requirements, conditions, etc. After the user goes online, the role information of the account is obtained from the role module.
Different roles have different functions, and role information also needs to be saved. The traditional method is to save the user’s role, address and other information in the database, which is managed by the specific company that owns it. In the decentralized scenario in MEMO system, according to the characteristics of the account address that uniquely identifies users, smart contracts are used to manage system role information. In the initial stage of use, the Keeper of each User is randomly matched by the system. After the Keeper has accumulated certain data about the availability and reliability of the Provider, a scoring system can be built to match the Provider and the User, which can greatly reduce the transaction time.
Demand analysis is a prerequisite for design and implementation. Based on the above management needs, MEMO has designed multiple modules to solve the problems of role division, storage service implementation data maintenance, and contract invocation. It is these that constitute the solidity of the open-source decentralized cloud storage system of MEMO.
MEMO’s test network is currently underway, so feel free to join.
MEMO community volunteer recruitment program will be launched soon, welcome to join us and work together with the MEMO team to make human data eternal!