Caver-js 대납기능 악용에 대한 방어방안이 있을까요?

안녕하세요! klaytn 플랫폼에서 dApp을 개발하다가 질문이 생겨 질문을 올려봅니다.
caver-js의 fee delegation 기능을 이용하여 서비스 이용자들에게 수수료 면제 기능을 개발하려하는데,
한가지 걱정이 되는부분은 악의적인 사용자가 의미없는 Tx를 과도하게 일으켜 서비스에 타격을 주는 상황이 있을것 같아, 이를 대비하고자 합니다, 현재로썬 사용자의 지갑주소가 5개의 블록타임 (대략 5초)안에 4개 이상의 Tx가 발생하면 (5초안에 4번의 트랜잭션을 일으킨 비정상적 상황) 거래를 제한하는 로직을 생각했는데, 혹시 더 좋은 방안이나 레퍼런스가 있다면 참고하고 싶습니다!

읽어주셔서 감사합니다.

@totopark0

안녕하세요. 클레이튼 포럼에 질문을 올려주셔서 감사합니다.
질문자 분의 환경과 상황에 따라 다양한 제도를 생각해볼 수 있을 거 같습니다.

질분자 분이 제시해 주신 아이디어 저는 좋다고 봅니다만 이외에 방법을 더 생각해본다면
아래와 같은 방법도 생각해볼 수 있을 거 같습니다.

  • 여러 개의 대납용 계정을 생성(해당 계정들은 유저들의 계정과 1:1 매핑).
  • 유저 당 한 개의 대납용 계정이 존재하게 되고, 그 계정에 주기적으로(예를 들면 한 달) KLAY를 적정량으로 충전 (e.g. 유저가 KLAY 전송을 1,000번 정도 할 수 있는 수수료 량)
  • 즉 특정 유저가 서비스를 사용할 때 차감되는 수수료에 상한선이 정해져 있는 것임.

즉 유저당 기간 내 정해진 수수료 안에서 서비스를 사용할 수 있는 형태입니다.

어떤 안이 더 좋을지는 질문자 분의 서비스 성격과 운영 상황에 따라 달라질 거 같습니다 :slight_smile:
질문자 분이 운영하고 계신 정책도 저는 좋다고 생각합니다.

Best Practice로 아이디어를 드린 건 아니고 상상력에 도움을 드리는 차원에서 남겨보았습니다.
도움이 되었길 바랍니다.

1 Like

좋은 아이디어 남겨주셔서 감사드립니다!
해결책 아이디에이션에 많은 도움이 되었습니다.

1 Like