PlatON Privacy-Preserving Computation White Paper | Part 4. Off-Chain Services
Continued from the previous article. PlatON Privacy-Preserving Computation White Paper | Part 3. On-Chain Capabilities
This article will introduce Off-Chain Services, including Computation Service and Storage Service.
Part.4 Off-Chain Services
As discussed in previous sections, it is inevitable to provide computation and storage services to address the privacy and storage issues. The off-chain services are built upon layer 2 in PlatON 2.0.
4.1 Computation Service
In layer 2 of PlatON 2.0, institutes or nodes with enormous amount of computation power could join the network to provide computation services as follows.
As described in Section 3.1, cryptographic tools are utilized to solve privacy problems. Due to the heavy cost of cryptographic operations, the performance will be reduced significantly. Zk-Rollup is widely discussed in the Ethereum community to improve scalability. In a nutshell, an off-chain service provider (or node) packs a batch of transactions, and provides a single proof to ensure the validity of all the transactions. The on-chain verifier (probably a smart contract) verifies this single proof to validate all the batch of transactions.
We will borrow this idea to improve the scalability of our systems after the privacy-preserving properties are supported. The motivation here is slightly different from Ethereum. The performance of original PlatON/Alaya is well enough for most applications (not considering privacy), and the scalability issue is incurred by introducing private payments and computations. So we call it private zk-Rollup.
It is well known that Ethereum community is one of the most creative communities. The computation service in PlatON network also aims to combine with Ethereum to solve the scalability issues. For instance, these nodes could provide zk-Rollup services for Ethereum, and users could enjoy the benefit from PlatON (low transaction fee) and Ethereum (rich applications). In more detail, users who have deployed applications in Ethereum could pay a PlatON node with LAT to pack all the Ethereum transactions. This node batches all the transactions and generates a proof for the Ethereum network. Thus the users only need to pay a tiny amount of ETH fees and LAT fees.
The off-chain computation service also enables secure outsourcing. PlatON will provide a decentralized outsourcing and fair-exchange market place. Clients with low computation power could publish a computing job, where the computed functions, fee and other related information are specified in a smart contract. In order to protect the privacy of input data, the client encrypts all the input with a fully homomorphic encryption scheme and sends the ciphertext to a computation node who picks up the job. This node evaluates the computation in an encrypted form and provides a proof to convince the smart contract that he did the job correctly. The smart contract verifies the proof and sends the tokens to this node if the verification passes.
With a single node as the first step to build computation service in layer 2 of PlatON, it will finally form a computation marketplace for those whom want to sell their computation power in a decentralized manner. Besides providing internal services for PlatON and Alaya, these off-chain services could also be extended for other systems and networks.
4.2 Storage Service
Although there are several methods to reduce the on-chain storage size, there has to be a place to store all the transactions anyway. In the lay 2 of PlatON, anyone who has sufficient disk space could provide storage services.
Data availability is the core problem we need to solve in storage services. Since historical transactions are stored off-chain, one has to make sure that there existing at least one node stores these data. New transactions initiated by users may change the state related to historical transactions. For example, the system has to ensure you could spend the tokens that received 10 years ago. Several ways may could be applied here, the first one is proof of custody, which is considered in Ethereum 2.0 to solve data availability issues. Although the situations are slightly different from Eth 2.0 and PlatON, we encourage developers to intensively study the solutions. Other possible ways are integrate proofs of storage and proofs of replications algorithms into our systems. All those solutions are heavily relied on cryptographic tools.
Storage services providers will finally work in a distributed manner. Access control of the data will be a challenge in this situation, especially when sensitive data is stored in multiple providers. Proxy re-encryption (PRE) enables users to upload encrypted data into these providers, and could share with other parties only under the owner’s permission.