스토리지 스테이킹
NEAR에 스마트 컨트랙트를 배포할 때, 스토리지 스테이킹이라는 메커니즘을 사용하여 이 컨트랙트에 필요한 스토리지 비용을 지불합니다.
스토리지 스테이킹(상태 스테이킹이라고도 함)에서 스마트 컨트랙트를 소유한 계정은 해당 스마트 컨트랙트에 저장된 데이터의 양에 따라 토큰을 스테이킹(또는 잠가야)하여 컨트랙트 계정의 잔고를 효과적으로 줄입니다.
Ethereum에서 오셨나요?Ethereum의 가격 책정 모델에 익숙하다면 NEAR와 마찬가지로 프로토콜이 각 트랜잭션에 대해 수수료("가스"라고 함)를 부과한다는 것을 알 수 있습니다. NEAR와 달리 Ethereum의 가스 요금은 해당 트랜잭션을 통해 저장된 데이터의 양을 설명합니다. 이것은 본질적으로 누구나 체인에 영구 데이터를 저장하기 위해 한 번 지불할 수 있음을 의미합 니다. 이것은 적어도 두 가지 이유로 인해 좋지 않은 경제적 설계입니다. 1. 네트워크를 운영하는 사람들(이더리움 1의 경우 채굴자)은 먼 과거에 부과된 가스 요금이 스토리지 비용을 영원히 증가시킬 수 있기 때문에 대량의 데이터를 저장할 적절한 동기 부여를 받지 못합니다. 2. 스마트 컨트랙트 소유자에게 데이터 비용을 청구하는 대신, 그들이 저장하기 위해 스마트 컨트랙트 사용자에게 보낸 데이터에 대해 비용을 청구합니다.
How does NEAR's design align incentives?
스토리지 스테이킹 토큰은 검증 스테이킹과 같은 다른 용도로는 사용할 수 없습니다. 이는 밸리데이터가 받을 수익률을 증가시킵니다. Learn more in the economics whitepaper.
When do tokens get staked?
데이터를 추가하는 각 트랜잭션에 대해 토큰이 스테이킹될 수 있습니다.
예를 들어 보겠습니다.
- 방명록 앱을 시작 하고 앱의 스마트 컨트랙트를 계정
example.near
에 배포합니다. - 앱 방문자는 방명록에 메시지를 추가할 수 있습니다. This means your users will, by default, pay a small gas fee to send their message to your contract.
- 이러한 요청이 들어오면 NEAR는
example.near
에 새로운 스토리지 요구 사항을 충당할 수 있을 만큼 충분한 잔액이 있는지 확인합니다. 그렇지 않으면 트랜잭션이 실패합니다.
The "million cheap data additions" attack
이로 인해 공격 벡터가 생성될 수 있습니다. 만약 방명록에 데이터를 보내는 데 사용자에게는 거의 비용이 들지 않는 반면 컨트랙트 소유자에게는 훨씬 더 많은 비용이 든다고 한다면, 악의적인 사용자가 이 불균형한 상황을 악용하여 컨트랙트 유지 비용이 엄청나게 많이 들게 하는 공격을 할 수 있습니다.
따라서 스마트 컨트랙트를 설계할 때, 이러한 공격으로 인해 잠재적 공격자에게 공격의 비용보다 더 많은 가치가 발생하지 않도록 주의하세요.
btw, you can remove data to unstake some tokens
블록체인에 대한 "불변 데이터" 내러티브에 익숙한 사람들은 이것에 놀라워할 수도 있습니다.