누구나 마음만 먹으면 스팀 블록체인과 보상 시스템을 이용해서 유용하고 실제로 사용 가능한 dApp을 만들 수 있습니다.
그리고 dApp을 만들고 서비스하려면 사용자 로그인 기능이 필수인데요. Steemit.com에서 공식적으로 제공하는 Third-Party dApp용 사용자 로그인 서비스가 SteemConnect입니다.
Steemit.com 입장에서는 더 많은 dApp이 나오길 바라면서 개발자들이 이용하기 쉽게 만든 서비스인 것 같은데요.
저는 이 SteemConnect 때문에 사용자들도 dApp을 사용하기 꺼려하게되고, 개발자들도 dApp을 쉽게 만들지 못하는게 아닌가 싶습니다. (저는 그렇더라고요ㅠ)
바로 SteemConnect가 사용자에게 active key나 master password를 요구한다는 점 때문인데요. Steemit.com이 마치 스팀 블록체인을 자신들의 프라이빗 체인이라고 생각하고 자기들은 사용자들에게 active key를 아무때나 요구해도 된다고 생각하고 만든 것 처럼 보여서 보안적으로 굉장히 위험하다고 생각합니다.
posting key만으로도 충분한 작업을 하려고 해도 로그인 시에 Third-Party dApp에게 권한을 부여하기 위해서 무조건 active key를 요구합니다. 사용자는 steemconnect의 로그인 페이지만 봐서는 이게 해킹당한 페이지인지, 정상적인 페이지인지 쉽게 구분할 수 없습니다.
dApp에 나름 멋있게 OAuth를 적용해보려다, 더 큰 취약점을 만든 것처럼 보입니다.
현재의 dApp 생태계에서는 posting key로 쉽게 로그인할 수 있게 만들고, 문제가 생겼을 때 posting key를 revoke하는게 현실적으로 더 나은 방법이 아닌가 싶네요.