이더리움 블록체인에 데이터 기록하는 방법
최근에 이더리움 메인넷에 인상 깊은 사건이 두 가지 있었습니다. 하나는 판문점 선언을 이더리움 블록체인 상에 기록한 것이고, 나머지 하나는 북경대 성추문 사건이 이더리움에 기록 되었다는 것입니다.
[KR][ENG] 판문점 선언문 Panmunjom Declaration in 5517596 Block
첫 번째 판문점 선언문을 올린 것은 상징적인 의미를 가집니다. 지워지지 않고 되돌릴 수 없는 블록체인에 데이터를 기록하여 남북 간의 합의도 이와 같이 이행되길 바란다는 것입니다. 평화에 대한 염원을 기록했다고 보면 되겠네요.
Hashed Report: 4월 23일, 중국에서 누군가가 쏘아올린 작은 트랜잭션
두 번째 사건이 사실 더 의미가 깊습니다. 블록체인의 '검열 저항성'이라는 특징이 빛을 발한 케이스입니다. 인터넷에 대한 정부의 규제가 심한 중국에서는 특정 단어에 대한 접근 제한이 가능합니다. 단순한 댓글 및 게시글 삭제 뿐만 아니라 특정 커뮤니티를 폐쇄시킬 정도로 검열이 심한 상태입니다. (참고: 중국 당국이 '유머 앱'을 폐쇄하자 반발 시위가 이어지고 있다) 검열에 의해 묻힐 수도 있었던 사건이 이더리움 상에 기록되어 지우지도 못하고, 막지도 못하는 상황으로 만들었습니다. 게다가 누구나 접근할 수 있다는 것이 특징입니다. 이더스캔 사이트를 막는다 해도 트랜잭션 조회까지 완전히 막을 순 없는 노릇이기 때문입니다.
.
.
.
어떻게 하는 건지 궁금해서 한 번 시도해봤습니다. 크게 어려운 작업은 아니었는데, 중간에 하나 잘못해서 계속 에러 뜨고 몇 시간을 허비했습니다. 다른 사람은 이런 실수를 하질 않길 바라며...ㅎ
원리는 다음과 같습니다. 자기 자신에게 0 이더를 전송하는 트랜잭션을 발생시키고, 그 아래에 있는 Transaction Data(Optional)에 원하는 정보를 16진수로 기입하는 것입니다.
차례대로 아래에서 설명을 하겠습니다!
.
.
.
1. 기록하고자 하는 데이터를 16진수로 준비해둡니다.
우리가 일반적으로 쓰는 문자는 UTF-8의 형식으로 저장됩니다. 이것을 16진수로 바꿔서 올려야 기록이 됩니다. 구글링 잘 해보면 진수 바꿔주는 사이트가 있습니다. https://sites.google.com/site/nathanlexwww/tools/utf8-convert
Hexadecimal 체크한 후 왼쪽 박스에 쓰고 싶은 말을 쓰면 됩니다. 자동적으로 변환을 해줍니다.
2. 메타마스크를 실행시킵니다.
자주 사용하시는 분들은 저 여우머리 구글 런쳐를 아실 겁니다. 메타마스크는 이더 및 이더리움 계열의 토큰을 저장할 수 있는 지갑입니다. 참고로 마이 이더월렛(MEW)로도 할 수 있습니다.
메타마스크가 무엇인지, 어떻게 사용하는지, 어떤 특징이 있는 지에 대해서도 설명을 해야겠지만 ㅠ 본 포스팅의 주제를 넘어서기 때문에 다른 링크들 간단히 첨부해 놓겠습니다.
이더리움 지갑, 메타 마스크 (META MASK) 설치하는 방법!!! (메타마스크 설치 및 사용법에 대해서는 이걸로 대체하겠습니다.)
3. Send 를 눌러 전송을 실행합니다.
send를 누르면 아래와 같은 화면이 나타납니다.
To에는 자기 주소를, 그 아래에는 보낼 이더 수량을 적습니다.
이번 실습에서는 코인의 전송보다는 데이터의 기록이 주 목적이기 때문에 0이더를 기입합니다.
그리고 그 아래 Transaction Data(Optional)에 아까 준비했던 16진수를 입력합니다.
1스달을 제 주소로 보내 수수료에 쓸 돈을 준비해 두었습니다 ㅎㅎ
실습에 유용하게 쓰이네요.
4. Gas Limit , Gas Price 조정.
Gas Limit을 넉넉하게 설정해주세요.
Gas Price는 내버려 둬도 됩니다. 빠른 처리를 원한다면 올리세요.
이부분에서 제가 실수했습니다. Gas Limit을 조정하지 않고 Gwei만 자꾸 추가하면서 트랜잭션을 발생시켰습니다. Gas Limit은...자동차의 '연료통' 정도라 생각하면 되겠습니다. Gas Price는 '연료값'정도로 보면 되겠구요. 자동차에 기름을 많이 넣으면 더 멀리 갈 수 있듯이, Gas Limit이 많아야 더 복잡한 작업을 처리할 수 있습니다. Gwei는 '사토시'처럼 이더리움의 단위인데 약 10억분의 1로 알고있습니다. 여튼 연료값 정도로 알고 있으면 되겠습니다. 이것을 많이 넣으면 더 빨리 처리됩니다.
일반 송금 트랜잭션은 21000 Gas Limit으로 세팅해도 잘 갑니다. 그런데 이번에는 처리해야할 데이터가 있기 때문에 Gas Limit을 높혀줘야 합니다. 제가 이것 때문에 에러 엄청 냈습니다. 16진수에 문제가 있나, 가스값에 문제가 있나...계속 애꿎은 다른 것들만 건드렸네요 ㅠㅜ
보통 스마트 컨트랙트 실행시킬 때는 자동적으로 계산해서 나오길래, Gwei만 조정하곤 했습니다. 그것에 적응해버려서 그만... 코드 없이 실행시키는 트랜잭션은 일일이 설정을 해 줘야 했네요 ㅜ 어느정도의 Gas Limit이 적정수준인가는 모르겠습니다. 그냥 넉넉히 넣었습니다.
5. Submit을 눌러서 트랜잭션을 발생시키세요.
6. 결과창을 확인하세요.
... 은 펜딩 중(처리 중)이라는 뜻입니다. 느긋하게 트와이스 뮤비 하나 보고 오면 됩니다.
완료를 시킨 후 이더스캔 페이지에서 거래 내역을 살펴봅니다.
트랜잭션에 관한 간략한 정보들을 알 수 있습니다.
누가, 누구에게, 얼마를 보냈으며, 가스를 얼마 썼는지 그리고 몇 번째 블록에 담겼는지도 알 수 있습니다.
가장 아래 쪽 input data를 보면 아까 제가 넣었던 16진수의 데이터가 있습니다.
Convert to UTF-8을 클릭하면 원래 문자형태로 볼 수 있습니다.
잘 안보여서 크게 캡쳐했습니다.
역시 실습의 기본은 Hello World! 이지요ㅎㅎ
저는 Hello Steemit! 으로 해보았습니다. 앞에 붙어있는 0x는 16진수를 뜻하는 것인데...항상 붙어 있습니다.
여기까지가 끝입니다!
처음 보는 사람에게는 복잡할 수도 있는데...사실 은행 어플 써서 송금하는 것만큼이나 간단한 작업입니다.
암호처럼 보이는 문자들, 불친절한 UI 때문에 굉장히 무서워 보이는데...
알고보면 다 똑같습니다 ㅎㅎ
블록체인에 더 가까이 다가기기 프로젝트였습니다!
.
.
.
0xaaefa63acd529d9a8070640eea20f47eb6681e56db9db273dd06d28245611ebe
제 트랜잭션 내역입니다.
저는 0.12$ 약 150원 정도를 수수료로 사용했습니다. 입력하려는 데이터의 길이가 길어지면 더 많은 수수료를 지불해야 합니다. 판문점 선언문 기입하는 데는 총 8천원 가량이 들었다고 하네요.
심심하신 분들은 한 번 도전해보세요!
짱짱맨 호출에 출동했습니다!!
짱짱맨 x 마나마인! 색연필과학만화
https://steemit.com/kr/@mmcartoon-kr/4cmrbc
존버앤캘리에 이은 웹툰입니다
아이들이 보기에도 좋을꺼 같아요^^ 글작가님이 무려 스탠포드 물리학박사라고......
잘 모르시는 분들도 쉽게 블록체인에 박제(?)를 할 수 있는 방법을 알려주셔서 감사합니다 :) 리스팀해가요!!
핳..도움이 되었나 보군요!
감사합니다 :)
좋은 정보 감사합니다
넵 ㅎㅎ!
와 이거 생각보다 굉장히 쉬운거여서 한번 놀라고 당신의 설명력에 한번 더 놀라고... 따봉박고갑니다..
따봉 감사감사~~
앞으로 도움되는 정보 계속 올려드릴게~ ㅎㅎ