이더리움 블록체인에 낙서하기 (Writing messages on the Ethereum blockchain using Metamask)

SJ
6 min readMay 2, 2019

--

지난 포스팅 블록체인에 낙서하기 1편 ‘비트코인 블록체인에 낙서하기’에 이은 블록체인에 낙서하기 2편 ‘이더리움 블록체인에 낙서하기’입니다. 개발자가 아닌 사람도 쉽게 할 수 있습니다.

이더리움 블록체인에 메시지 남기기

이더리움 블록체인은 잘 알려진 것처럼 이더리움 블록체인의 암호화폐인 이더(Ether)의 거래와 스마트 컨트랙트 상에서 이루어지는 거래 등을 저장하는 곳입니다. 비트코인 블록체인과 다른 점이라면, OP_RETURN 스크립트로 거래당 80 bytes 이하만 기록할 수 있는 비트코인과는 달리(다른 방법으로 하면 더 많은 데이터를 기록할 수 있다는 얘기를 듣긴 했는데 혹시 더 잘 아시는 분 계시면 알려주세요), 훨씬 더 많은 양의 데이터를 쓸 수 있습니다.

비트코인은 거래시에 비트코인으로 채굴자들에게 수수료를 내도록 되어 있는데, 이더리움은 모든 거래(송금, 스마트 컨트랙트 실행 등)에 대해 가스(Gas)라는 것을 지불하도록 되어 있습니다. 이더리움을 여러 사람이 같이 쓰는 컴퓨터라고 생각한다면, 사용한 만큼 수수료를 낸다고 생각하면 되겠습니다(Gas에 대해 자세한 것은 인터넷에 검색해 보시면 됩니다). 이더리움은 블록당 Gas Limit이 현재 8백만으로 설정되어 있는데, 블로그 포스팅 하나 정도의 글도 수십만 Gas 정도면 블록체인에 기록할 수 있으므로 이론상으로는 꽤 긴 글도 기록할 수 있을 것 같습니다(글 작성 시점 기준으로 약 몇천원 정도면 블로그 한 포스팅 정도의 글을 저장할 수 있습니다).

저장된 메시지들

이더리움에 작성된 메시지 중에서 널리 알려진 것으로는, 북경대에서 일어난 성폭행 사건에 관한 메시지(https://etherscan.io/tx/0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2 — See more를 클릭하고 input data에서 View input as를 “UTF-8”으로 설정하면 됩니다; 관련 글 ‘ Hashed Report: 4월 23일, 중국에서 누군가가 쏘아올린 작은 트랜잭션’)가 있고, 판문점 선언이 기록된 예도 있습니다( https://etherscan.io/tx/0xe4ee15d3f63db8464a649e3237ed83e930f9b3e40e842537a626745d1c96553c; 관련 기사 ‘판문점 선언, 이더리움 블록체인에 기록됐다’).

그런데 저는 이런 무거운 내용의 메시지들보다는, 재미로 하는 것이니까 좀 가벼운 메시지를 기록해 보기로 하고, 지난 달에 발매된 BTS의 <MAP OF THE SOUL : PERSONA> 앨범에 있는 곡인 ‘작은 것들을 위한 시 (Boy With Luv) (Feat. Halsey)’의 가사를 한번 기록해 보기로 합니다.

BTS - MAP OF THE SOUL: PERSONA

이더리움 블록체인에 직접 메시지를 남기는 방법

메타마스트(Metamask) 설치

이더리움 블록체인에 메시지를 남기는 것은 비트코인에 비해 매우 쉽습니다. 일단 크롬 브라우저를 설치하고 메타마스크 플러그인을 설치합니다(자세한 설치방법은 인터넷 검색).

설치 후 Create Account를 눌러 이더리움 주소를 새로 하나 생성하고, 거기로 거래소 등에 가지고 있는 이더리움을 소량 보냅니다. 저는 아래 주소로 0.30360791 ETH를 보냈습니다.

이더리움 주소: 0xC597407Dfe5376960a1Eb600974367608F3a6082

Text를 Hex로 변환

이더리움 블록체인에 메시지를 기록하기 위해서는, 메시지를 Hex 타입으로 변경해야 하는데, 웹사이트에 있는 가사를 그대로 복붙했더니 글자가 다 깨지는 현상이 있었습니다. 그래서 여기(https://www.branah.com/unicode-converter)에 가서 맨 위의 Unicode text 부분에 가사를 붙여 넣고(Convert whitespace characters도 클릭합니다), 아래의 UTF-8에서 Remove \x를 클릭하면 Hex로 변환됩니다. 그걸 복사합니다.

https://www.branah.com/unicode-converter

거래 보내기

다시 메타마스크로 돌아와서, 오른쪽 위 동그란 아이콘을 누르면 설정이 나오는데, 설정 — 고급(Advanced)로 가서 ‘Hex 데이터 보기(Show Hex Data)’를 활성화 해 줍니다.

다시 처음 메타마스크 화면으로 돌아와 ‘전송(Send)’를 누르면 아래쪽에 ‘Hex Data’를 기록하는 곳이 있습니다. 거기에 아까 복사한 Hex로 변환된 가사를 붙여넣기 해 줍니다. 받는 주소에는 그냥 아까 만든 주소를 써 주고(자기 주소에서 자기 주소로 보내는 것입니다), 수수료(Transaction Fee)는 고급을 클릭해서 Gas Limit을 넉넉하게 500,000을 입력했습니다. 보내는 수량(Amount)은 0으로 설정해도 됩니다.

다 됐으면 다음을 누르고 확인을 눌러 거래를 이더리움 네트워크로 전송합니다.

잘 기록됐는지 확인: Etherscan

그러면 거래가 잘 기록됐는지 확인하기 위해서, etherscan.io에 가서 아까 생성했던 그 주소를 입력해서 잘 전송이 되고 있는지 봅니다.

낙서 완료!

들어가서 확인해 보니 7679864번째 블록에 잘 기록이 됐습니다.

https://etherscan.io/tx/0x91257208088019bf04ebb428503ebe9662d7cfe8afb7521593b4f91867825949: ‘Click to see more’를 클릭한 다음 ‘View Input As’에서 ‘UTF-8’을 선택하면 가사가 잘 보입니다.

Transaction Hash: 0x91257208088019bf04ebb428503ebe9662d7cfe8afb7521593b4f91867825949

저처럼 이더리움 블록체인에 직접 메시지를 남기고 싶으신 분을 위해 작성했습니다. 쓰여진 내용 중 혹시 잘못된 내용이 있으면 알려주세요. 업데이트 하겠습니다.

--

--