개발
2018.02.12 21:49

이더리움과 스마트 컨트랙(1)

profile
조회 수 1358 좋아요 10 댓글 7
안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.
 
이더리움에 대해서는 땡글에 계신 분들에게 굳이 설명을 드리지 않아도 될 것 같습니다. 이더리움을 모르시는 분은 없겠죠. 하지만 저도 그랬던 것처럼 채굴하는 입장에서 굳이 스마트 컨트랙이 뭐고, 어떻게 개발해야 하는지에 대해서는 크게 관심이 없을 수밖에 없죠. 이 글은 채굴하시는 분들에게는 지적 호기심을 충족하는 수단이 될 것이고, 개발에 도전해보려고 하시는 분들에게는 먼저 출발한 사람이 놓고간 표지판 정도로 생각하시면 될 것 같습니다.
 
스마트 컨트랙은 쉽게 생각해서 계약을 코드로 옮겨둔 것입니다. 특정한 조건이 충족되면 계약을 이행하게 해둔 것이죠. 하지만 계약을 코드로 옮기려는 행위는 이전에도 존재해왔습니다. 인터넷 뱅킹이나 공인인증서 같은 것들이 바로 그것이죠. 다들 아시겠지만 블록체인을 이용한 스마트 컨트랙과 이전의 형태의 계약의 근본적인 차이는 분산 원장에 있습니다. 이전의 계약들은 단일 혹은 소수의 DB에 데이터가 저장되기 때문에 한번의 공격으로 무너질 수 있지만, 분산 원장을 해킹하기는 대단히 어렵죠. 증명이나 데이터의 정합성이 중요한 영역에서 블록체인이 떠오르는 이유도 바로 그것입니다.
 
이더리움 네트워크에 스마트 컨트랙을 제출하기 위해서는 solidity라는 언어로 만들어진 스마트 컨트랙을 만들어야 합니다. solidity는 javascript와 C언어를 섞어놓은 것처럼 보이는 묘한 형태인데, 컴파일한 결과를 바이트 코드로 옮겨서 사용하는 것을 보면 java와 비슷한 점도 있습니다. 이 solidity는 대중적인 언어가 아니기 때문에 처음 접하는 개발자들에게는 낯설게 느껴질 수 있습니다. syntax 자체를 익히는데도 약간의 시간이 필요하고, 이더리움 네트워크와 연결지어서 생각해야 하기 때문에 사전지식이 없는 사람에게는 이게 대체 어떻게 돌아가는지 이해하기 어려울 수 있습니다. 저도 물론 그랬고요.
 
개발자들을 가장 괴롭히는 것들 중에 하나는 개발 환경을 구축하는 것입니다. 더구나 뭐부터 구축해야 하는지 모르겠다면 상황은 더 심각해지죠. 아래는 이더리움 네트워크와 통신하고 solidity 언어 환경 구축을 하기 위해서 필요한 것들입니다.
 
 
web3 : 이더리움 자바스크립트 API입니다. 이더리움 네트워크와 통신하기 위해서 사용됩니다.
web3j : 이더리움 자바 API입니다. 
solc : solidity 컴파일러입니다.
 
 
 
그리고
Image.png

 

 
 
truffle : solidity의 빌드부터 테스트, 스마트 컨트랙 등록까지를 도와주는 framework입니다. nodejs 기반으로 사용하실 수 있습니다.
 
사용하실 수 있는 syntax의 폭이 넓지 않거나 이미 javascript에 익숙하신 분이라면 web3와 truffle을 사용하시는 것을 권장합니다. 빌드와 테스트까지 종합적으로 지원하는 framework가 별로 없기도 하고, javascript 하나로 개발 / 테스트 / 사용 환경을 구성할 수 있기 떄문이죠. 다만 이더리움 네트워크와 통신이 실패했을 때와 같은 예외처리가 많이 까다로운 부분이긴 합니다. 이더리움 네트워크 자체가 ICO가 몰린다거나 하면 낮은 gas로는 처리가 안되는 경우가 생기고, web3는 아직도 고쳐지지 않은 자잘한 버그들이 많으니까요.
 
다음에는 이어서 환경 구축에 대해서 보다 자세히 써볼까 합니다.
 
환경구축을 위한 주소
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

-------------------------------------

꼬리말

* 게시글 내용 삭제레벨 강등

* 질문은 각 주제별 게시판에.

 

비트코인 암호화화폐 커뮤니티 땡글~ 땡글~

-------------------------------------

Who's 파이리

profile

Blockchainnovation

주식회사 라드로치 소프트

 

서울시 강남구 테헤란로63길 12

Atachment
첨부 '1'
Comment '7'

List of Articles
번호 분류 제목 좋아요 조회 수 글쓴이 날짜
공지 개발 [좋아요 5개] -> 추천글로 이동됩니다. 1 2531
쌍둥아빠
2017.04.01
922 개발 코인개발부터 상용화까지 팀꾸려봅니다. 안녕하세요 코인개발자 및 보안관련개발자 , 거래소구축개발자등등 코인관련해서 팀을 꾸려보고싶습니다. 코인개발관련 전문지식 없습니다 저는 단지 거래가능한 코인과 거래소만 있으면 거래 활성화시킬 홍보루트를 ... 3 943
땁두가
2018.02.12
» 개발 이더리움과 스마트 컨트랙(1) 안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.   이더리움에 대해서는 땡글에 ... 7 file 10 1358
파이리
2018.02.12
920 개발 HD wallet 을 사용하는 거래소 지갑?   안녕하세요,  뒤늦게(?) 비트코인을 공부하고 있는 1인입니다.   bitcoin core를 PC에 설치해 보니, 지갑이 자동생성되고 상태바에 HD enable 됐다고 표시되더라구요. testnet에서 새로운 지갑주소를 2개 더 생성하... 3 347
샤브라니
2018.02.12
919 개발 암호화폐 입출금 지갑 개발자 모십니다    암호화폐 입출금 개발. - 다양한 암호화폐 입출금 개발 (Bitcoin, Ethereum, Litecoin, etc…) - 리눅스 기반의 전자지갑. -모발 지갑   연락처  (주)메인넷    010-2801-5983      위  쳇   아이디 :  kepc075 카... 1 458
금하
2018.02.12
918 개발 코인관련 개발자 모집 합니다---     안녕하세요.   암호화폐 코인을 웹사이트에서 사용할수 있는 시스템을 만들려고 합니다. ,  아래의 사항과 관련해 같이할수 있는 개인 또는 협력업체 연락 부탁 드립니다.     1. 코인 개발 관련 - 신규코인 개발... 3 601
금하
2018.02.12
917 개발 상승장에서만 투자하는 봇     아래쪽에 이런 캡쳐를 올렸더랬습니다.       크로스에서 사고 팔게 로봇을 구현했더니... 저 사각형 왼쪽위에서 사서, 오른쪽 아래에서 팔더군요. ㅜㅜ     그래서 몇번의 수정을 (손실을 보면서... ㅜㅜ) 거쳐... 17 file 2 1507
jaypark
2018.02.12
916 개발 바이낸스 api 질문이요^^ 빗썸같은 경우에는 서로 다른 계정으로 api키를 발급받고 한 컴퓨터에서 봇을 각각 실행하면 12초 딜레이가 걸리는데   혹시 바이낸스 아시는 분있나요? 보통 1분에 1200회, 1초에 10개 오더로 허용을 해주는데 빗썸... 1 322
시니가미
2018.02.12
915 개발 이더리움 강의가 유튜브에 있었네요   땡글에서 '민빠' 라는 닉네임으로 활동하시는 분께서    강의를 진행하셨네요. 쌍둥아빠님 유튜브 계정에 올려져 있습니다.   https://www.youtube.com/watch?v=ddZ4wBfHGIo     이정도 깊이로 들어간 한글 자료가 ... 3 4 639
트라트
2018.02.12
914 개발 파이썬 봇 중간에 멈춰버림 해결어떻게 하나요... 파이썬3을 사용하여 폴로닉스 트레이딩봇을 제작중입니다 별건아니고 while True:문으로 시세를 감시하다가 상황봐서 분할매수 분할 매도를 하는 프로그램인데요 cmd창에서 실행도중 그냥 멈춰버립니다 이게 어떤 오... 9 506
squid
2018.02.11
913 개발 누구나 따라할 수 있는 ETN 마이닝 풀 구축 가이드 입니다. 일렉트로니움 마이닝풀 운영을 위한 설치 가이드 입니다.   ETN 마이닝 풀 서버 설치를 해보려고 했는데 node 버전 문제로 여러번의 실패로 우분투를 재설치하면서 여러번의 삽질을 하여 성공하고 작성한 설치 가이드... 42 update 45 3887
번트마이너
2018.02.11
912 개발 빗썸 분봉 캔들값 관련 문의입니다. 안녕하셔요.. 오늘도 질문 드려봅니다^^   bithumb 거래소 거래 체결 완료 내역 API를 가져와서 DB에 쌓아놓고 1분씩 잘라서 1분봉 캔들의 값을 구해보고 있는데요..   트레이딩뷰나 빗썸메인의 1분봉 차트를 보면 아... 7 file 412
비만타쿠미
2018.02.11
911 개발 빗썸 api로 ZEC 출금시 되다 말다 하네요 빗썸 api로 ZEC 출금시 되다 말다 하네요 현재 5번 중 3번은 자동으로 취소처리 되네요 다른 코인은 잘 됩니다. 사용 해보신분 있나요?                       ------------------------------------- 꼬리말 * 게시... 298
둔산
2018.02.11
910 개발 바이낸스 전용 오토 매매 를 제작중입니다 .     국내 거래소랑 여기저기 보고 있는대 .. 바이낸스가 API는 체계적으로 잘 제공해 주네요 ...   국내보다 더 잘 되어 있어서 살짝 ? 놀랐네요   3월초면 베타 테스트 해볼수 있을거같네요 시중에 알려준 차트기반... 8 3 790
바이낸스
2018.02.11
909 개발 [질문]AMD GPU 상태 조회 command line tool 안녕하세요   채굴기 모니터링 프로그램을 개발중입니다. NVIDIA의 경우에는 nvidia-smi 라는 command line tool이 제공되는 데요, AMD는 검색해 보아도 시원한게 답변을 찾을 수 가 없네요 혹시 AMD GPU상태를 조회... 302
inireland
2018.02.10
908 개발 erc20 토큰 질문드려요..   안녕하세요. 코린이입니다.    이더리움 개발 입문 책을 보며 궁금한점이 생겨서 질문드려요. 답변 해주시면 감사하겠습니다.   거래내역이  있어야 블럭을 만들기위한 작업증명(채굴)을 하는것으로 알고 있는데요.... 6 319
바보쿠우
2018.02.10
907 개발 빗썸 api 주문들 되시나요? 오늘 점검 이후로 아예 먹통인데 저만 이런건가요? 10시간째네요                       ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에.   비트코인 암... 4 421
파란기린이
2018.02.10
906 개발 이더리움베이직으로 공부 3일차!       안녕하세요 Dapp개발을꿈꾸며 공부하고있는! 학생입니다 이더리움베이직 책을보면서 예제를따라하면서 만들고 이해하고! 이러고있습니다.   2일동안은 자료를찾고 책을한번 정독하고! 3일차인 오늘 책에나온예... 2 file 3 658
연두부
2018.02.10
905 개발 바이낸스 거래소 가상서버에서 접속 시 안들어가는거같은데.. 제가 가상서버가 3개가 있는데   한개는 차트 사이트(바이낸스 api이용) 한개는 자동매매 봇 (바이낸스 api이용) 나머지 한개는 이제 데이터베이스 저장용(바이낸스 api를 사용하지도 않고 웹서버도 현재없음)   이 ... 2 296
알럽코인
2018.02.10
904 개발 PC방 유휴프로그램 v0.0.4 다운로드   업데이트 내용   1. 프로그램 종료 방법 변경 및 config에 직접 등록가능       버전 0.0.3 : https://www.ddengle.com/develop/5913404 (모니터 끄기 기능추가)   버전 0.0.2 : https://www.ddengle.com/... 24 file 3 1354
우리형
2018.02.09
903 개발 0컨펌 UTXO사용의 위험성 QT지갑에서 6컨펌 이후로 미확정에서 사용가능으로 바뀌길레 6컨펌 이전의 UTXO는 완전사용 불가능인줄 알고있었는데 create/sign/send rawtransaction을 통해서 0컨펌의 UTXO가 사용되더군요.     0컨펌 UTXO를 사용... 257
낙동강2995번개미
2018.02.09
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 49 Next
/ 49