EOS.IO 개발 업데이트 (한글 번역본 - 3)steemCreated with Sketch.

in #kr7 years ago

Update Resource Usage Algorithms (리소스 사용 알고리즘 업데이트)

EOS Dawn 2.0 은 기본적인 리소스 제한을 구현했습니다. 지난 두 달 동안, 저희 팀은 대역폭, Computation, 투표, 용량 등의 리소스 제한 전략을 크게 수정했습니다.

Separate Staking(분할 스테이킹)

가장 큰 변화는 권한 별 스테이킹 풀입니다. 대역폭, 메모리, 컨트롤 등 권한 별로 경제의 기본적인 공급/ 순환 법칙을 따르는 스테이킹 풀을 만들었습니다. 예를들어, 우리는 다른 이들이 그저 투표나 대역폭을 더 갖기 위해 그들이 사용하지 않을 메모리를 할당할 수 있도록 하고 싶지 않습니다. 우리는 또한 Unstaking(Staking 취소)과정에 3일의 지연을, 사용하지 않는 저장소는 즉시 Unstaking 할 수 있도록 하며, voting Unstaking 에는 6달이 걸리도록 강제합니다. 대역폭과 voting 은 위임될 수 있으나 저장소는 위임될 수 없도록 합니다. 여기에서 보는 것처럼, 많은 니즈들이 설정될 수 있습니다.

Bandwidth Delegation (대역폭 위임)

어떤 계정이든 대역폭 Staking 계정에 토큰을 보냄으로 다른 계정에 대역폭을 위임할 수 있습니다. 같은 방식으로 유저는 스스로에게 '대역폭을 위임' 할 수 있습니다. 유저는 3일의 딜레이를 거쳐 토큰을 다시 가져올 수 있습니다. 대역폭 비용은 거래를 인가하는 모든 계정에게 부과될 것이며, 3일의 미사용기간 동안 0으로 수렴됩니다.

Voting (투표)

이제 구분된 pool 을 가게 되었으니, 우리는 정치적 권한을 행사하고 싶은 유저들에게, 더 나은 권한 분배를 할 수 있습니다. 블록생성자 선택 권한이나, 프로토콜 업그레이드에 대한 영향력을 갖기 위해서는, 사용자는 의무적으로 한 Contract 에 토큰을 6개월 이상 투자(Stake)해야 합니다. 이를 통해, 그들이 플랫폼에 부정적인 영향을 주게 되면 그들은 토큰을 잃게 될 위험에 처할 수 있게 됩니다.

Memory (메모리)

랩은 비싸고 제한된 자원입니다. 만약 1TB 의 RAM 을 총액 $100B의 시장에 할당한다고 한다면, 이는 마치 바이트당 $10 에 달하는 비용을 부과하는 것과 다름 없습니다. 이는 램이 필요하지 않은 99.99% 의 토큰 유저들에게 플랫폼을 사용할 수 없게 하는 것과 다름 없습니다.

이 문제를 해결하기 위해 우리는 Bancor 가 메모리를 1% 예약 형태의 스마트 토큰으로 취급하는데에서 아이디어를 얻었습니다. 이 경우, 예약 가능한 메모리는 1TB 가 되고, Bancor 알고리즘은 이 메모리를 변동 가격에 판매하여, 메모리가 동나지 않게 합니다. 유저가 램을 예약(reserve, 역주 : 사용)하려면, 그들은 메모리 계약(contract) 에 토큰을 보내고 토큰의 가치와 사용가능한 메모리에 따라 예약된 bytes가 정해집니다.

블록체인은 실제 사용량을 추적하고 할당된 것보다 많은 메모리를 사용하려 할때 거래를 취소합니다. 메모리가 필요치 않을때 할당된 메모리를 줄이고 투자된 토큰을 돌려받을 수 있습니다. 예약된 저장소를 할당하거나 전해주는 것은 불가능합니다. 싼 가격에 예약된 램을 비싸게 푸는 등의 거래는 불가능 합니다. 이는 저장소가 사람들의 실제 이용가치를 넘어서 투자되는 것을 방지합니다.

각 유저는 하루에 한번 할당량을 증가시킬 수 있습니다. 완전한 할당에 지불하는 비용은 할당 이후 사용되지 않은 메모리에 따라 달라집니다.이는 한 번에 많은 메모리를 할당하는 것이 굉장히 비싸고(시장의 이탈이 발생하므로), 시간에 따라 사용할 만큼만 저장소를 사는 것이 가장 저렴한 방식임을 뜻합니다.

This strategy will cause those who want to reserve a lot of RAM to dollar cost average and give all competitors similar prices over time.

Billing Memory Usage (메모리 사용 비용)

우리는 어떻게 어플리케이션을 사용가능하도록 만들지 알게되었습니다. 알게된 것 중 하나는 많은 케이스에서 유저가 자신의 저장소를 사용할때 Contract 소유자는 더 많은 이득을 취할 수 있다는 것입니다. 유저에게 이 비용을 전가하지 않으면, 특정 병렬 계산을 어렵게 만들고 개발자 스스로 비즈니스 모델을 만들어야만 합니다. 모든 contract 는 저장소 비용을 유저에게 청구하거나, 스스로가 지불할 옵션을 갖습니다. 대부분의 케이스에서 유저는 스스로의 계정 정보를 저장하는 것이 효과적입니다. 이는 개발자에게 사용성을 위한 최고의 유연함을 제공해 줄 것입니다.

이 변경사항은 EOS Dawn 3.0 에 포함되는 것으로 예정되어있습니다.

Implicit Transaction Locking (암묵적 거래 락)

우리는 “read/write scopes”(읽기/쓰기 범위) 를 “read/write locks”(읽기/쓰기 락) 이라는 이름으로 변경했습니다. 이는 이 액션의 행위를 설명하는 말이자, 락의 granularity를 증가시켜 병렬 실행의 기회를 극대화 합니다. EOS Dawn 2.0 를 테스트 하는 개발자들은 거래마다 지정해야하는 “scopes” 의 필요성에 대해 잘 알고 있을 겁니다. 이는 Transaction 을 만들기 어렵게 하고, 동적 상황에 취약할 수 있습니다. 우리는 그 상황을 조사하여 블록 생성자가 어떤 read/write locks 이 필요한지 결정할 수 있도록 했습니다. 이로 인해 모든 거래에 락의 필요가 없어졌으므로, 개발자에게 더 쉬운 작업을 가능케 합니다.

이 변경사항은 eos-noon 브랜치에 구현되어 있습니다.

Dynamic Upgrades of Core Features(코어 기능의 동적 업그레이드)

일반적으로, 블록체인의 업그레이드를 위해서는 하드포크가 필요합니다. 이는 새로운 기능이 생겼거나, 기존의 기능이 업그레이드 필요할때, 버그가 수정되어야 할 때마다 필요합니다. 하드포크는 모든 네트워크에 파괴적인 영향을 줍니다. 그러므로 WASM을 이용해 블록체인의 기능이 동적으로 정의 되어 있는 것이 바람직합니다. 우리는 주요 기능을 native C++ 에서 WASM 으로 변경하고 있습니다. 그 기능들은 다음과 같습니다.

  • The core token (e.g. EOS)
  • Staking for bandwidth, memory, and voting
  • Producer voting
  • Multisig Contracts
  • Community Benefit Contract / Worker Proposal allocation

WASM 을 통해 정의되지 않을 transaction 들은 아래와 같습니다.

  • Account creation
  • Bandwidth / RAM usage metrics
  • Permission Updates
Sort:  

이오스가 차세대 플렛폼으로 점점 우리에게 다가오고 있네요. ㅎㅎㅎ 현용하는 DPOS기반 플렛폼 코인중에 승리자는 누가 될 수 있을까요 ㅎㅎㅎ

우왕 좋은 정보 감사합니다.