이오스 기반 네트워크도 무한 루프를 막는 방법이 있나요?

이더리움 같은 경우, 프로그래밍 할 때 무한루프를 막기 위해 가스를 만든걸로 알고있습니다.

그런데 이오스는 가스같은 존재가 없는걸로 아는데, 그럼 이오스 기반 네트워크에서 오류로 인한 무한 루프를 막을 수 있는 방지책이 따로 있는지 알고 싶습니다.

    1개의 답변이 있어요!

    • 말씀하신 것처럼 이더리움의 경우 가스비와 가스한도라는 것이 있기 때문에 무한루프나 반복되는 불필요한 트랜젝션이 발생될 가능성이 거의 없습니다.

      그럼 이오스는 어떨까요? 이오스의 경우 계정을 만들어서 이오스 코인을 스테이킹 함으로써 한정된 컴퓨팅 자원(CPU, RAM)과 네트워크 자원(NETWORK)을 자신의 몫으로 할당받아 사용하는 방식으로 운영됩니다. 따라서 자신의 몫으로 할당된 자원 대역폭 내에서는 수수료가 없이 블록체인을 이용하는 것이 가능합니다.

      그런데 수수료가 없다보니 스팸 트랜젝션을 일으켜서 네트워크에 과부하를 일으킬 가능성이 존재합니다. 실제로 작년에 이오스 블록체인에서 5만 이오스를 스테이킹하고 있는 blocktwitter라는 계정이 이오스 네트워크의 트랜젝션 수가 적은 시간에 자신의 CPU자원 보다 훨씬 많은 자원을 한꺼번에 사용하며(블록체인의 유휴 자원의 사용을 허용하고 있음) 엄청난 스팸 트랜젝션(We Love BM)을 일으킴으로서 이오스 코인을 많이 스테이킹 하지 않은 다른 사용자들의 CPU자원 사용을 방해하여 일시적으로 트랜젝션의 처리가 원활하지 않았던 적이 있습니다.

      앞서도 말씀드렸다시피 한정된 컴퓨팅 자원과 네트워크 자원을 나눠서 사용하게 되는데 한 계정이 자신에게 할당된 몫보다 더 많은 CPU 자원을 순간적으로 동원하여 무의미한 스팸 트랜젝션을 보내는데 사용함으로써 상대적으로 적은 이오스를 스테이킹 하고 있던 사용자들의 이오스 블록체인 이용에 불편을 주게 된 것이라고 할 수 있습니다.

      이러한 문제는 BP들의 투표와 합의를 통해 이런 스팸 계정을 블락시키는 방법과 BP들이 그레이리스트를 만들고 이런 스팸 계정들을 등록하여 이 계정들의 경우 자신의 이오스 스테이킹으로 할당된 자원 이상의 유휴 자원들을 활용하지 못하도록 하는 방법들이 있을 수 있습니다.

      답변이 도움이 되길 바랍니다.