안녕하세요, 이오시스 서포터즈 디온(@donekim)입니다. 이오스 메인넷의 온체인 거버넌스 시스템인 레퍼렌덤이 시작이 된지도 벌써 2달이 넘어가고 있습니다. 그러나 당초 기대에 비해서 아직까지 레퍼렌덤의 안건으로 제안된 사항들에 대한 투표율이 굉장히 저조한 관계로, 아직까지 모든 제안들이 승인 또는 거부를 위한 최소한의 조건을 달성하지 못하고 있는 실정입니다.
투표율이 저조한 원인으로는 무관심, 제안된 사항의 내용에 대한 이해도 부족 등 여러가지 이유가 있겠지만 그 중 가장 큰 장벽은 “프라이빗키 유출에 대한 걱정”이 아닐까 싶습니다. 특히나 최근 들어서 “에어드랍을 받으려면 클레임이 필요하다며 피싱 사이트 주소를 트랜잭션 메모 안에 첨부하여, 토큰 홀더들의 소중한 자산이 유출되는 피싱 피해사례”가 많아지면서 많은 사용자들이 프라이빗키 유출 걱정을 많이 하고 있습니다.
“투표에 참여해보고 싶긴 하지만, 혹시라도 해킹을 당하면 어쩌지? “
아마도 이런 걱정을 하고 있는 분들도 꽤나 많으실 겁니다. 그래서 오늘은 “프라이빗키(Private key) 유출 걱정 없이 레퍼렌덤에 참여할 수 있는 방법”에 대해서 설명을 드리도록 하겠습니다.
프라이빗키 걱정 없이 레퍼렌덤을 참여하는 방법은 생각보다 굉장히 간단합니다. 아래에서 설명하는 내용이 꽤 길게 느껴지실 수도 있지만, 초보자이신 분들도 따라오시기 쉽게 최대한 자세히 설명할 예정이니 하나씩 차근차근 따라해보시기 바랍니다 :)
아래의 설명은 글 작성일 현재 스캐터 데스크탑 최신 버전(v10.1.2.)을 기준으로 작성되었습니다.
#1. 레퍼렌덤 투표 전용 키 만들기
먼저 스캐터 데스크탑에 로그인 한 뒤에 Add Key 버튼을 클릭해주세요.
그 다음에는 Create Key 버튼을 클릭합니다.
위와 같은 화면이 나오면 좌측의 Key라는 열쇠모양의 아이콘을 클릭합니다.
위와 같이 EOSIO라는 문구 하단에 EOS로 시작하는 53자리의 퍼블릭키(Public key)가 생성된 것을 확인하실 수 있습니다. 오른쪽에 보이는 Copy라는 버튼을 클릭해주세요.
Copy버튼을 클릭하여 퍼블릭키를 복사하셨으면, 메모장이나 한글 프로그램을 열어서 복사한 퍼블릭키를 붙여넣기 해 놓아주세요(조금 이따가 복사한 퍼블릭키를 다른 곳에 넣어주어야 합니다). 붙여넣기를 잘 하셨으면 Back버튼을 클릭하여 뒤로 갑니다.
위와 같은 화면이 나타나면 Key Name 하단에 보이는 박스 안에 마우스를 클릭한 뒤에 Voting Permission이라고 입력해주세요. 입력한 뒤에는 위에 보이는 Back버튼을 클릭하여 스캐터 데스크탑 로그인 시 초기 화면으로 돌아가주세요.
(참고) 꼭 Voting Permission이라고 입력하실 필요는 없습니다. Test, Vote, 투표용 이런식으로 본인이 나중에 알아보시기 편한 문구를 아무렇게나 넣으셔도 관계가 없습니다.
위와 같은 화면이 보이신다면, 레퍼렌덤 투표 시에만 사용할 새로운 키쌍이 잘 만들어진 것입니다. 이제 새롭게 만든 키에다가 “레퍼렌덤에서 투표에 참여할 수 있는 권한을 부여”하러 가보겠습니다.
#2. 투표전용 키 등록하기
위에서 만든 투표전용 키를 등록하기 위해 아래의 툴킷 사이트에 접속합니다.
스캐터 팝업창이 나타나면 Login버튼을 클릭하여 기존에 사용 중이던 계정으로 로그인을 해주세요.
로그인이 완료되었으면, 위와 같은 화면이 보일 때까지 스크롤을 아래로 내려주세요. 그 다음 Permission #2: active라는 메뉴 하단에 보이는 녹색으로 된 Add New Permission버튼을 클릭해주세요.
해당 버튼을 클릭하면 위와 같이 새로운 정보를 입력하는 창이 나타나는 것을 확인하실 수 있습니다.
아래와 같이 3가지 항목을 입력하신 뒤에 Add Key버튼을 클릭해주세요.
- Permission Name : vote
- Parent : active
- Threshold : 1
Add Key버튼을 클릭하여 위와 같은 화면이 나타나면, 위에서 따로 붙여넣기 해 놓았었던 새로운 퍼블릭키(Public key)를 입력해주세요. 퍼블릭키 앞 칸에는 숫자 1을 넣어주시면 됩니다.
입력을 모두 완료하셨으면 위에 보이는 Save Permission이라는 녹색 버튼을 클릭해주세요.
Save Permission버튼을 클릭하면 위와 같이 붉은색 경고문들로 가득한 스캐터 데스크탑 팝업창이 나타나는데 Allow버튼을 클릭해주세요.
권한을 업데이트하는 것은 꽤나 중요한 트랜잭션으로 분류가 됩니다. 새로운 권한을 등록하는 것이다 보니 스캐터 데스크탑에서 저렇게 붉은색으로 경고를 하는 것인데, 우리는 새로운 권한을 등록하는 것이기 때문에 크게 걱정하지 않으셔도 됩니다 :)
Allow버튼을 클릭하여 새로운 권한을 부여하는 것에 서명을 완료하면 위와 같이 해당 트랜잭션이 성공했다는 메시지가 뜨는 것을 확인하실 수 있습니다.
그러면 이제 내 계정에 새로운 권한이 어떻게 등록되었는지를 한 번 살펴볼까요?
블록 익스플로러(https://bloks.io/)에 접속하신 뒤에 방금 전에 사용했던 내 계정명을 입력해보겠습니다.
Tokens와 Votes 옆에 보이는 Permissions라는 탭을 클릭하시면, 지금까지는 못보던 새로운 키 하나가 새로 등록되어 있는 것을 확인하실 수 있습니다.
active키 아래에 vote라는 이름의 새로운 키가 등록된 것이 보이시죠? 이 키가 앞으로 레퍼렌덤에서 투표(vote) 또는 투표철회(unvote)에만 사용할 키입니다.
그런데 여기까지만 입력을 하면 레퍼렌덤 투표에 사용할 새로운 자물쇠(퍼블릭키)만 달아놓은 것일 뿐이기 때문에 “이 키는 레퍼렌덤 투표 용도로만 사용할 것이라는 걸 설정”해주어야 합니다.
#3. 투표권한 부여하기
방금 전에 내 계정에 새롭게 등록한 투표전용 키에 이제는 투표권한을 부여해보겠습니다. (아직까지 해당 키는 말 그대로 새로운 자물쇠 하나를 등록한 것일 뿐이라 아무런 역할을 하지 못합니다)
위의 주소를 클릭하시면 위와 같은 화면이 나타나는 것을 확인하실 수 있습니다.
- Permission : vote
- Contract Name : eosio.forum
- Contract Action : vote
차례대로 위와 같이 입력하신 뒤에 Link Auth라는 버튼을 클릭해주세요.
위와 같은 팝업창이 나타나면 Allow버튼을 클릭해주세요. 이제 투표를 참여할 수 있는 권한이 부여된 것입니다 :)
그 다음에 다시 방금 전 사이트로 돌아가서 이번에는 투표를 철회할 수 있는 권한을 부여해보겠습니다. 가장 마지막 박스를 제외하고는 방금 전과 동일하게 입력하시면 됩니다.
- Permission : vote
- Contract Name : eosio.forum
- Contract Action : unvote
기존에 입력한 내용이 그대로 입력되어 있기 때문에 마지막에 보이는 Contract Action이라는 칸에만 unvote라고 입력하신 뒤에 다시 한 번 Link Auth버튼을 클릭해주세요.
위와 같은 팝업창이 나타나면 Allow버튼을 클릭해주세요. 이번 권한연결은 기존에 참여했던 투표를 철회하는 권한(unvote)이 부여된 것입니다.
여기까지 완료하셨으면 이제 레퍼렌덤 투표에만 활용할 새로운 키쌍을 만드는 모든 작업이 완료된 것입니다. 로그아웃을 해주세요.
이제 스캐터 데스크탑으로 돌아가서 정보를 업데이트 해주도록 하겠습니다.
스캐터 데스크탑을 실행하신 뒤에 방금전 Voting Permission으로 입력한 계정을 클릭해주세요.
그 다음에 위와 같은 화면이 보이면 상단에 보이는 Refresh 버튼을 클릭해주세요. 그러면 Linked Accounts에 방금 전에 등록한 내 계정이름이 연결되는 것을 확인하실 수 있습니다. (스캐터 데스크탑에서 내 계정에 새로운 키가 연결된 것을 인식하게끔 해주는 절차입니다)
이제 모든 준비절차가 끝났습니다.
새롭게 설정한 키가 정말 투표참여 또는 투표철회 권한만 있는지 테스트를 한 번 해볼까요?
#4. 레퍼렌덤 투표전용 키 테스트
레퍼렌덤 투표참여 사이트(https://bloks.io/vote)에 접속하신 뒤에 로그인 버튼을 클릭해주세요.
위와 같은 화면이 나타나면, Show All이라는 글자를 클릭해주세요.
여태까지는 @active 또는 @owner 만 봤었는데, 특이하게 계정 뒤에 @vote 라는 단어가 붙어있는 계정이 생긴 것을 확인하실 수 있습니다. Login 버튼을 클릭해주세요.
레퍼렌덤 제안들 중에서 투표에 참여하고 싶으신 안건을 선택하신 뒤, 반대(Decline) 또는 동의(Approve) 중 하나를 클릭해주세요.
Allow버튼을 클릭해서 투표를 최종 승인해보겠습니다.
제대로 작동하는 것을 확인하실 수 있습니다. 그렇다면 과연 이 키로는 정말 투표에 참여하는 것만 가능할까요? 토큰 전송이나 권한 변경은 어떨까요?
위에서 확인하실 수 있는 것처럼 이 키로는 토큰 전송 등 다른 활동은 불가합니다.
따라서 이 키는 혹시라도 유출이 된다고 하더라도 절대 내 계정에 보관 중인 자산을 다른 곳으로 옮기거나, 계정의 프라이빗키를 변경하는 것이 절대 불가능하기 때문에 훨씬 편하게 사용하는 것이 가능합니다.
예를 들어서, 노바 월렛과 같은 모바일 월렛에 계정을 등록해서 투표에 참여하고 싶으신 분들은 기존의 액티브(active)키를 옮기다가 실수할 걱정을 하실 필요 없이 이 보팅(vote)키의 프라이빗키를 옮기시기만 하면 됩니다.
#5. [참고] 프라이빗키 추출하기
참고로 방금 전 저장했던 퍼블릭키의 프라이빗키를 추출해서 모바일 월렛에 등록하고 싶으신 분들은 Export버튼을 클릭하여 프라이빗키를 추출하시면 됩니다.
Export버튼 클릭 후에 스캐터 데스크탑 비밀번호를 입력하고,
이 화면에서는 Key를 클릭해주세요.
그 다음 위와 같은 화면이 나타나면 Reveal이라는 버튼을 클릭합니다.
위와 같이 프라이빗키가 나타나면 이것을 모바일 월렛에 등록해주시면 끝!
다시 한 번 말씀드리지만, 이렇게 등록한 키는 투표권한만 가지고 있기 때문에 혹시라도 유출되거나 해킹을 당한다고 하더라도 100% 안전합니다. 해당 키를 탈취한 해커가 할 수 있는 일은 다른 투표에 참여하거나, 내가 참여한 투표를 취소하는 것 말고는 없으니까요 :)
혹시라도 초심자이시라면 계정 내 트랜잭션 메모로 삽입된 내용에 절대 신경쓰지 말 것을 당부드립니다. 절대 중요한 내용은 트랜잭션 메모에 삽입된 형태로 들어오지 않습니다. 항상 피싱사이트를 조심하시고 처음 보는 사이트나 클레임 같은 경우에는 반드시 여러번 확인 후에 진행하시기 바랍니다. 모두들 안전한 이오스 생활하세요!