develop custom_top_html:no
default debug random = 0 / type = READ / detected = READ
개발
2018-02-12 21:49:29

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

안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.
 
이더리움에 대해서는 땡글에 계신 분들에게 굳이 설명을 드리지 않아도 될 것 같습니다. 이더리움을 모르시는 분은 없겠죠. 하지만 저도 그랬던 것처럼 채굴하는 입장에서 굳이 스마트 컨트랙이 뭐고, 어떻게 개발해야 하는지에 대해서는 크게 관심이 없을 수밖에 없죠. 이 글은 채굴하시는 분들에게는 지적 호기심을 충족하는 수단이 될 것이고, 개발에 도전해보려고 하시는 분들에게는 먼저 출발한 사람이 놓고간 표지판 정도로 생각하시면 될 것 같습니다.
 
스마트 컨트랙은 쉽게 생각해서 계약을 코드로 옮겨둔 것입니다. 특정한 조건이 충족되면 계약을 이행하게 해둔 것이죠. 하지만 계약을 코드로 옮기려는 행위는 이전에도 존재해왔습니다. 인터넷 뱅킹이나 공인인증서 같은 것들이 바로 그것이죠. 다들 아시겠지만 블록체인을 이용한 스마트 컨트랙과 이전의 형태의 계약의 근본적인 차이는 분산 원장에 있습니다. 이전의 계약들은 단일 혹은 소수의 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는 아직도 고쳐지지 않은 자잘한 버그들이 많으니까요.
 
다음에는 이어서 환경 구축에 대해서 보다 자세히 써볼까 합니다.
 
환경구축을 위한 주소
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

꼬리말

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

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

 

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

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

222

파이리님의 서명

Blockchainnovation

ERC20 토큰 개발, 암호화폐 지갑 개발, 스마트 컨트랙 개발

댓글 11
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1040 질문 0번블럭에 생성된 코인은 어떻게 가져올수있나요?   if (nHeight == 0) return 100000 * COIN;   간혹 소스를 보다보면 위에처럼 0번블럭에 코인을 만드는 경우가있는데.   0번 블럭에 생성된 코인은 어떤식으로 가져올수있나요?   궁금해서 문의... 8 0 829
Destroy
2018.03.30
1039 질문 지갑에서 싱크를 할수가없는데..혹시 설정해줘야하는게있나요? CMasternodeSync::Process - ERROR - Sync has failed, will retry later   싱크가 50% 이상 안올라가는데  혹시 vps seed서버에서 conf 파일에 설정해줘야하는옵션이있을까요? 현재는 rpcuser=1... 3 0 657
Destroy
2018.03.29
1038 개발 블록체인 기술   안녕하세요? ----------미래의 가정입니다.-------------------------------------------------------------------------  비탈릭이 한국인의 해외 ICO를 위해 전폭적인 지지를 해 주기로 했습... 2 1 927
이cheon000
2018.03.29
1037 개발 COIN TRADING BOT 코인트레이딩봇 정식판 완료     안녕하세요 이전에 코인트레이딩봇 개발노트글을 한번 올렸었습니다. 문의도 많았었던걸로 기억하는데 관심 너무 감사드립니다.   이번에 테스트 완료되었습니다. 이전게시물 링크입니다. ht... 27 12 2720
나는야천재
2018.03.29
1036 개발 카테고리별 블록체인기술 분류   블록체인을 카테고리 별로 분류한 내용이 있어 공유합니다.   12개 카테고리로 분류된 1007개 회사가 총 6.6조원 투자를 받은 경우입니다.   최근 자료로 "블록체인혁신" 쪽 기술 카테고리가 ... 1 0 842
이cheon000
2018.03.29
1035 질문 블록채인 플렛폼 오픈소스 좀 알수있는거 있을가요?   블록채인 플렛폼 오픈소스 좀 알수있는거 있을가요?   말그대로 입니다.   채굴을 하고 있는 채린입니다.   앞으로 블록채인 생태게에 관해서 좀더 공부를 할려고 하는대 플렛폼이 어떤것이 있... 2 0 714
혈마존
2018.03.29
1034 개발 오프체인 스케일링(Off-Chain Scaling) 솔루션 자료 오프체인 스케일링 솔루션 차트가 있어 개발자분들에게 공유합니다.    블록체인 개발에 루비, 노드, Go, PHP 등 다양한 방법으로 거래소도 따라서 만들어 보고, 프라이빗블록체인, 코인(하드포... 3 3 817
이cheon000
2018.03.28
1033 개발 지갑에서 키 생성 시 key derivation 방법에 대해 문의 드립니다.     지갑 공부를 하면서 BIP를 보고 있습니다.   BIP32를 시작으로 44, 49, 84, 141까지 key derivation 방식을 보고 있는데 과연 이 방식들을 따르면 모든 코인 종류의 지갑 주소를 생성할 수 ... 0 405
AppA
2018.03.28
1032 개발 빗썸 orderbook api 빗썸 orderbook이 2달 전에 갑자기 문제가 생겼었는데요. 마치 캐시가 있는 것처럼 몇십초 동안 같은 값만 주는 문제였습니다. 해결방법은.. api 사용하실 때 parameter로 group_orders=0 을 주... 8 2 2060
비락식
2018.03.28
1031 질문 개발자 고수님들 HELP ME !         해외 사이트인데 공개키를 입력해 넣으면  프라이빗키를 출력해준다는 그런 얼토당토 않는 헛소리 같은데 관련 유투브 영상이 많습니다   다운로드 해서 한 번 해보고 싶은 이 죽일놈에 ... 7 file 1 1232
바트코
2018.03.28
1030 개발 업비트 거래 봇 개발가능하시분 연락주세요~~ 크게 복잡하게 분석해서 어쩌구하는 것은 아니구요   지정된 가격에 비교하여 사고 또는 팔고 자동으로 하는 봇 개발 가능하신분     업비트는 API지원을 않한다고 하니 크롤링이나 패킷분석 뭐 ... 0 939
제10땅굴
2018.03.27
1029 질문 우연곡절끝에 코인을 만들었네요.. 그런데 첫블럭은 어떻게캐나요?? 낙동강님 도움을 받아서  우연곡절끝에 그디어 컴파일까지 끝냈습니다.   실행을 해도 잘되고... 문제는 첫블럭을 캐서 첫블럭에서나오는 코인을 제가 가져와야하는데 이걸 어떻게 해야하는지 궁... 8 0 2043
Destroy
2018.03.27
1028 질문 이더리움 소스 수정 도움 부탁드립니다. Ethereum 소스를 가져와서 몇 가지 사항만 수정해 보려고 합니다.   혹시 어느 부분을 수정해야 할지 도움 부탁드립니다.   1. Symbol 변경    기본인 ETH를 새로운 심볼로 변경, 예를 들어 TET ... 2 0 888
choiks
2018.03.27
1027 개발 거래소를 개발 해볼까 합니다. (기술 질문)   요즘 여기저기서 거래소 개발에 관심이 많은 것 같네요. ㅎㅎ   다 암호화폐의 열풍 때문이라고 생각이 드는데요.   저희 회사에서도 이번에 모의 거래소를 만드려는 계획에 있습니다.   그래... 15 1 2875
hyeokluv
2018.03.26
1026 질문 genesys block 생성방법은 코인별로 다다른가요?? 몇가지 젠키 생성방법이있어서 해보는데    제대로 맞지않는거같습니다.   혹시 제네시스 블럭생성은   코인별로 전부 다른건가요???   어떤 코인은 제네시스가 0xe37bd4c37400b27f681015c323c30... 4 0 1777
Destroy
2018.03.26
1025 질문 현재의 코인거래에 대한 전반적인 문의 글입니다. 코인에 대한 전반적인 문의 글입니다.  정보를 알고 계시거나, 관련 링크를 공유해 주시면 도움이 될 것 같습니다 .   1. 현재 전세계의 가상화폐 거래 인구에 대한 정보나 링크가 필요합니다.  ... 1 0 600
rocky76
2018.03.26
1024 질문 라이트닝 네트워크가 비트코인 메인넷에 런칭이 되었다고 하는데...     라이트닝 네트워크가 비트코인 메인넷에 런칭이 되었다고 하는데... 속도가 얼마나 개선되었고, 네트워크 비용이 얼마나 줄었는지 알수 있는 방법이 있는지요?         --------------------... 0 800
rocky76
2018.03.26
1023 개발 트레이딩 봇 개발하실 개인 혹은 팀 있나요? 기한은 1달 내면 좋을 것 같고 현재 베이스는 어느정도 구축된 상태입니다   가령 시세 수집기라거나 c/s간 통신은 구축되있고,   지표는 두어개만 만들어진 상태라 현재시점에서 필요한 지표 하... 0 741
nyon_
2018.03.26
1022 개발 부동산과 코인을 연결 할 수 있는 아이디어를 가지고 있는데요~ 혹시 도움 주실 개발자분 or 회사가 있을까요?   안녕하세요,   저는 강남에서 상업용 부동산 및 건물 매매를 전문으로 하고있는 중개업자입니다 매우소량이지만 이더리움 채굴도 같이 하고있는 30대 중반의 코인에 관심이 많은 남자사람이기... 13 2 1201
강남촌놈
2018.03.26
1021 질문 채굴 -       ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에.   비트코인 암호화화폐 커뮤니티 땡글~ 땡글~ -------------------------... 3 0 940
루시7
2018.03.26
Board Pagination Prev 1 ... 36 37 38 39 40 41 42 43 44 45 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ