스팀잇에서는 키가 4가지나 존재합니다. 간단하게 설명을 하면 다음과 같습니다.
키 | 용도 |
---|---|
Owner | 마스터키입니다. 이 키를 가지면 모든 것을 할 수 있습니다. |
Posting | 포스팅을 하는데 쓸 수 있는 키입니다. 포스팅 뿐만 아니라 보팅, 댓글 같은 것도 이 포스팅 키로 합니다. |
Active | 지갑과 관련 된 키입니다. 이 키를 가지고 STEEM/SBD를 보내거나 내부 마켓에서 오더를 할 수 있습니다. |
Memo | 메모를 암호화 해서 보낼 때 사용합니다. |
여기서 우리가 오늘 사용할 건 메모 키입니다(사실 내부적으로 사용 되기 때문에 직접 복붙해서 적어 넣을 필요가 없습니다).
다른 글들을 보면 돈이 빠져나가는 걸 방지하기 위해 포스팅 키로 로그인 하는 게 안전하다 하는 정도만 소개가 되어 있지만 메모 키에 대해서는 메모를 암호화 할 수 있다고만 말하고 어떻게 암호화를 하는 지 아무도 알려주지 않더라구요. 그래서 제가 찾아봤습니다.
일단 지갑 페이지에 가서 Transfer(송금) 메뉴를 눌러봅시다. 일반적으로 송금을 할 때와 전혀 다를 게 없습니다.
이 과정에서 메모를 적을 때 앞에 #
을 붙이면 자동으로 암호화를 해서 전송이 됩니다. 마찬가지로 웹 UI에서는 보낸 사람, 받는 사람 모두에게 자동으로 복호화가 되어 보입니다[1]
메모 칸 바로 위에 보이는 This memo is public이 문제네요.. 실제로는 암호화를 해서 보내는데 수정을 안 한 듯 합니다.
보낸 후에 확인을 해 보면 아래와 같이 복호화가 되어서 보입니다.
근데 이것만 가지고는 암호화가 안 된 것처럼 보이죠..ㅠㅠ 그래서 블록체인에 어떻게 들어갔나 확인을 해 봅시다. (이 링크를 눌러서 같이 확인해 봅시다)
똑같이 #
으로 시작하긴 하는데 제가 쓴 메시지와 다르게 막 이상한 알파벳과 숫자들이 나열되어 있고 길이도 훨씬 깁니다. base58로 인코딩이 된 문자열인데 자세히 알 필요까지는 없고 바이너리 데이터를 텍스트로 표현한 겁니다. 비트코인 주소도 같은 알고리즘을 사용해요.
앞에 #
이 붙으면 암호화 된 메모로 인식하고 웹 UI에서도 알아서 복호화 시켜서 보여주는 것 같습니다.
사실 송금을 하면서 암호화를 할 일이 그렇게 많지 않습니다. 그래서 이 방법을 모르는 사람들도 꽤 많아요. 하지만 개인정보가 들어가거나 하는 경우에는 블록체인에 영원히 공개되는 것보다는 이런 방법을 활용하는 게 좋을 것 같습니다.
예를 들면 이벤트 등으로 인해서 주소나 전화번호를 같이 적어 보내야 할 때 정도가 있을 것 같아요.
받는 사람의 공개키로 암호화를 해서 보내면 받는 사람의 개인키로만 복호화가 가능하기 때문에 보내는 사람과 받는 사람 간의 공유키로 암호화 한다고 합니다. ↩