EOS EOSIO DApp 개발 – 'EOS.IO Storage 백서 읽기' 시리즈 3.The Design of EOS.IO Storage

in #eos6 years ago

The Design of EOS.IO Storage

For the purpose of this paper we will assume someone has deployed an EOS.IO based blockchain with native tokens called TOK. A filesystem smart contract, @storage, is deployed to the TOK blockchain, this smart contract allows every user to define a directory structure where all files are links to an IPFS file.

TOK라 불리는 토큰을 가진 EOS.IO 기반 블록체인을 배포한다고 가정해 보자.
파일 시스템 스마트 컨트랙트인 @storage는 블록체인에 배포될 거야. 이 스마트컨트랙트가 사용자 파일을 IPFS 파일에 연결해 줘.

A user creates a link to an IPFS file by signing a transaction that is broadcast to the TOK blockchain. The transaction includes the path relative to the user’s “home directory”, the corresponding IPFS file name, and the size of the file. The user also specifies whether they want the file be stored and hosted by the TOK block producers.

(1) 사용자는 TOK 블록체인에 브로드캐스트 되는 트랜잭션에 사인함으로 IPFS 파일에 대한 링크를 생성할 거야.
트랜잭션에는 다음과 같은 것들이 포함 돼.

  • 사용자의 "홈 디렉토리"를 기준으로 한 파일의 상대 경로
  • 대응하는 IPFS 파일 이름
  • 파일 크기
    사용자는 파일이 TOK 블록 생성자에 의해 저장되고 호스팅되기를 원하는지도 명시할 거야.

The user will then upload the file to one of the block producers via standardized REST Application Programming Interfaces (APIs) defined by the EOS.IO Storage software. Once the producer verifies the file has the size and the IPFS name indicated by the user, the producer will broadcast a transaction to the TOK blockchain indicating the file has been received. The other block producers will then replicate the file over an IPFS network.

(2) 사용자는 표준 REST API를 사용해 한 블록 생산자에게 파일을 업로드할 거야.
(3) 블록 생산자가 파일 크기와 IPFS 파일명을 검증하고나면, 파일을 받았음을 알리기 위해 TOK 블록체인에 트랜잭션을 브로드캐스팅 할 거야.
(4) 다른 블록 생산자들은 이 파일을 복제할 거야.

Storage Quota

Collectively, the block producers vote on how much total storage capacity they would like to offer. The median value of the producer votes is the expected capacity that all producers will have to provide. Block producers are incentivised to increase capacity as they compete for votes from TOK holders. A grace period may be offered during which those below the mean can increase their available capacity.

블록 생산자들은 얼만큼의 저장 용량을 제공할 것인지에 대해 투표를 해. 투표 결과의 중간값은 블록 생산자가 제공할 기대 용량이 되지.
블록생산자들은 투표를 얻기 위한 경쟁을 하기 때문에 저장 용량을 늘리는 쪽으로 갈거야. 평균 이하인 블록 생산자에게는 가용 용량을 늘릴 수 있는 유예기간이 주어질 수도 있어.

In order for a user to utilize storage, they must first reserve it by locking TOKs in the @storage smart contract - essentially a fully refundable security deposit. A user may unlock their TOKs by releasing the block producers from the requirement to store and host the files, although these files may still be available via other IPFS hosts. Assuming the price of TOK is constant, the ongoing cost of storage and bandwidth is 0. The market value of TOK may rise or fall while
one’s files are stored. Either way, an individual will pay 0 net TOK for their storage and bandwidth usage.

사용자는 저장소를 사용하기 위해 토큰을 예치하면 돼. 사용료를 내는 것이 아니라 예치하는 방식을 사용한다는 거지. 예치를 해제하면 블록 생산자는 더 이상 파일을 저장하거나 호스팅할 의무가 없어져.

The amount of storage available per TOK token is determined using the Bancor algorithm that maintains a Constant Reserve Ratio (CRR) of 10. A CRR means that the storage will never be completely consumed, as the price (locked TOK per megabyte) will rise as free capacity shrinks. A CRR of 10 is based on the fact that most TOK holders will not demand access to all of their storage, which therefore minimizes the cost of over-provisioning the network.

토큰 당 저장 용량은 10의 CRR(Constant Reserve Ratio)을 유지하는 Bancor 알고리즘을 사용해 결정해. CRR은 저장소가 완전히 소모될 일은 없음을 의미하지. 저장소 가격은 미사용 용량이 감소함에 따라서 오르게 돼.
10의 CRR이 가능한 이유는 대부분의 토큰 보유자들이 그들이 보유한 저장소를 모두 사용하지는 않기 때문이지. 대부분 보유한 것보다 적은 양을 사용한다는 거지.

이렇게 함으로 네크워크의 공급 과다 비용을 최소화할 수 있어.

The equation to the right defines Balance as the total amount of storage consumed by all parties. Supply is the
total amount of storage the block producers physically have, and CCR is the constant reserve ratio.

가격은 다음 식에 의해 결정돼.

가격 = 밸런스 / (공급량 x CCR)

밸런스: 모든 참여자들에 의해 소모된 저장공간의 총량
공급량: 블록 생산자들이 물리적으로 가진 저장공간의 총량

Collectively the block producers may adjust the CRR (up or down), or adjust the total storage supply (up or down), but may never decrease the storage supply below what has already been claimed (balance).

블록 생산자들은 CRR을 높이거나 낮추면서 조정하거나, 전체 공급량을 높이기나 낮춰서 조정할 거야. 하지만 이미 점유된 저장용량 밑으로 공급량을 낮출 수는 없어.

Objectionable Data

EOS.IO software is designed to combine smart contracts with legally binding arbitration. In addition to having code, these contracts can also impose subjective requirements on the parties. Block producers and storage users enter into a smart contract paired with a legal contract that agrees block producers may be responsible for controlling objectionable content.

EOS.IO 소프트웨어는 법적 구속력이 있는 수단(Ricardian Contract와 같은)을 스마트 컨트랙트에 결합할 수 있도록 설계되었어. 코드에 더해 주관적인 요구사항을 당사자들에게 부여할 수 있다는 거야. 저장소 사용도 마찬가지야.

Pursuant to the arbitration dispute resolution mechanism provided by the network, anyone can seek a ruling that any stored file is objectionable and should be deleted if its storage and hosting is in violation of laws or other contracts.

법적으로 문제가 되는 파일에 대한 조치 등이 코드와는 별도로 법적 계약 형태로 스마트 컨트랙트에 포함될 수 있겠지.

The EOS.IO Storage protocol will allow a block producer to delete any file where required by law or arbitration. Not all block producers will be subject to the same laws and regulations; therefore, it will be up to the community of TOK holders to determine whether block producers are deleting files fairly and reasonably. Misbehaving producers can be voted out and/or brought before arbitration under the blockchain’s constitution.

EOS.IO 저장소 프로토콜에서는 블록 생산자들이 법이나 중재의 요구에 따라 파일을 삭제할 수 있도록 허용할 거야. 모든 블록 생산자들이 같은 법이나 규정을 따르는 것은 아니기 때문에 공정하고 합리적으로 파일이 삭제되도록 하는 것은 결국 토큰 보유자들의 커뮤니티에 달려있어.
잘못된 행동을 하는 블록 생산자는 투표로 퇴출되거나 블록체인 헌법 하에서 중재에 회부될 수 있어.

It is important to understand that the use of the IPFS network places fundamental limits on the ability of EOS.IO Storage to censor data. While the block producers may no longer store or serve a particular file, the file may still be available if someone else hosts it on the IPFS network. The identifier remains an accurate descriptor of the file, and any independent full node may also employ an independent IPFS node to access the file. An individual may choose to host it themselves or pay someone else to host the file on their behalf. In this case the individual or their service provider will assume the liability for hosting and serving the file.

IPFS 네트워크를 사용하기 때문에 EOS.IO 저장소는 데이터 검열에 근본적으로 한계가 있을 수 밖에 없어.
블록 생산자가 더 이상 특별한 파일을 저장하거나 제공하지 않는다고 해도, 누군가가 IPFS 네트워크 상에서 파일을 호스팅하고 있다면(독립 풀 노드, 개인이 직접 호스팅, 3자에게 호스팅비 지불) 그 파일은 여전히 사용 가능해. 물론 이러한 경우에는 개인이나 서비스 제공자가 호스팅과 파일 제공에 대한 법적 책임을 지겠지.

Privacy

EOS.IO Storage is a platform for hosting public data. Users who need privacy may apply an encryption algorithm prior to uploading their files. While the content of the encrypted file will be private, the identity of the blockchain account that uploads the file will still be visible to everyone.

EOS.IO 저장소는 공개된 데이터를 호스팅하는 플랫폼이야.
프라이버시가 필요한 경우라면 파일을 업로드하기 전에 암호화 알고리즘을 적용해야 겠지.
암호화는 파일에 한 것으로 파일에 대한 프라이버시를 지키는 것이지 파일을 업로드한 계정을 숨기는 것은 아니야.