블록체인
-
SmartContract 개발에 유의해야할 점 (1/2)IT 지식 2019. 4. 25. 13:58
오늘은 그 동안 블록체인 SmartContract를 개발하며 느낀 점들을 정리해보려고 한다. 블록체인은 잘 알지 못하지만 개발면에서 우수한 개발자분들이 미리 작성해주신 Contract Code를 볼 때 그리고, 블록체인 서비스 관련 자문을 드릴 때 기존 기획자분들도 블록체인 환경에 대해서 이해가 없어 기획이 잘 못되는 모습을 자주 볼 수 있다. 블록체인은 만능이 아니지만, 블록체인을 활용해야한다면 어떤 부분을 고민하면 좋을지. 이 글이 조금이라도 도움이 되었으면 좋겠다. 1. SmartContract 무엇이 다른가 (1-1) [장점] 서버 대체 가능 - 기존 서비스는 규모에 관계 없이 공지 사항이라도 만들기 위해서는 서버 구축이 필요했다. 기존 사내 서버가 존재 했다면 번거로운 작업은 줄어들지만 그것이 ..
-
ERC-721 살펴보기BlockChain Tech 2019. 3. 31. 18:28
ERC-721 - Non-Fungible Token(대체 불가능한 토큰) 이다. 대체 불가능하다는 것은 무엇일까? 기존 ERC20과 비교해서 생각해보면 쉬울 것 같다. ERC721 의 경우 mapping 타입의 변수[토큰 아이디] = 주소 를 대입한다. ERC20 의 경우 mapping 타입의 변수[주소] = 양 을 대입한다. ERC20의 경우 토큰의 성질이 없기 때문에 아래의 공식이 성립한다. 류짱의 지갑 류쨩토큰(ERC20) 10개 = 당신의 지갑 류쨩토큰(ERC20) 10개 ERC721의 경우 토큰의 성질이 존재 하기 때문에 위의 공식은 성립되지 않는다. 성질이라는 표현이 엄청나 보이는 것 같지만, 사실 [토큰 아이디] 하나 뿐이다. 실제 CryptoKitty의 경우, [토큰 아이디] 와 Kitty..
-
ERC-165 살펴보기BlockChain Tech 2019. 3. 29. 17:51
ERC-165 - SmartContract에 구현되어 있는 인터페이스를 게시하고, 검색하는 표준 매소드를 만든다. 쉽게 생각해보면, 해당 SmartContract에 내가 사용해야할 'function hungry(string food)'라는 함수가 있는지 검색할 수 있는 함수를 구현하는 것이 ERC-165이다. 어떻게 작동하는지 소스코드를 살표보자. 썩 복잡한 코드는 아니였고, 사용하기 쉽고 효율적인 코드라고 생각되지도 않았다. (물론, 구현 해놓으면 사고 예방에는 좋긴 할 것이다.) (1) _registerInterface를 통해 interfaceId를 등록하고, (2) supportsInterface를 통해 해당 interface 즉, 함수가 있는지 확인한다. interfaceID이란? interfac..
-
블록체인 Oracle ProblemBlockChain Tech 2019. 1. 2. 11:24
Oracle의 뜻 (Naver 사전) 1. (고대 그리스에서) 신탁을 받는 곳 2. (고대 그리스에서) 신탁 3. 귀중한 조언을 주는 사람출처 : ZetaWiki 델포이 신탁블록체인의 OracleOracle이라는 말을 듣고 가장 먼저 생각난 것은 다국적 기업 ‘Oracle’이였고, 그 다음은 매트릭스의 Oracle 아주머니가 생각 났다. 아쉽게도 블록체인에서 Oracle은 이것들과 관계가 없었다.Oracle은 OFF-Chain(블록체인 밖)상의 데이터를 On-Chain(블록체인)으로 가지고 오는 것을 의미한다.즉, Oracle이란 A 블록체인이 아닌 곳에서 일어나는 각종 사건, 사고에 대한 데이터를 A 블록체인으로 가지고 오는 것이다. ‘10월 10일 서울의 날씨’, ‘B 블록체인의 Transaction..
-
이중 지불 (Double Spent) / 51% AttackBlockChain Tech 2019. 1. 2. 11:22
블록체인을 공부하면 자주 듣는 ‘이중 지불’ 이것은 무엇을 의미하며, 이를 해결 할 수 있는 방법에 대하여 알아보자.1. 이중 지불이란이중 지불이란 동일한 암호화화폐로 두 번 이상 지출하는 것을 의미한다. 암호화화폐에서 이중 지불은 실제 암호화화폐가 복사가 되어 지불되는 것이 아닌 충돌되는 트랜잭션이 있으면 더 많은 노드가 받아들인 트랙재션을 받아들이고, 받아들여지지 않은 다른 트랜잭션은 취소해버리는 블록체인 특징을 이용한 악의적인 행위이다. (출처 : NamuWiki)이중 지불은 51%의 공격을 이용한다. 예시를 통하여 이중 지불을 이해해보자.[1 Step]1–1. 류짱은 1BTC만 소유하고 있다. A와 B에게 각각 1BTC를 송금하고 그에 따른 물건을 받기로 한다.1–2. 첫 번째로 A에게 1BTC를..
-
ERC20 그리고 EIPBlockChain Tech 2019. 1. 2. 11:20
이더리움 기반의 ‘ERC20 토큰’ 여기서 ERC 는 무엇이고, 20이라는 숫자는 무엇을 의미할까?흔히 우리가 알고 있는 암호화화폐의 약 90% 이상은 이더리움 기반의 토큰이다. 자체 블록체인을 구성하는 코인들과 달리, ERC20은 많은 장점들을 가지고 있다.‘Solidity’ 언어로 쉽게 제작이 가능하다.약속된 규격이 있고, OpenSource로 다양한 예제들이 제공 되어 있다.이더리움 기반으로 상장에 용이하다. (‘거래소는 그저 Token Contract Address를 추가 하면 된다.’)CrowdSale Contract 로 손쉽게 이더리움으로 ICO를 진행할 수 있는 장점등이 있다.반년전만 해도.. 부르는 게 값이였다지..? (자료 링크)이렇듯 ERC20은 충분히 매력적이다. 또한, 자체 블록체인..
-
Mnemonic 과 HD WalletBlockChain Tech 2019. 1. 2. 11:18
Mnemonic 생성 / 백업최근 지갑 Web & App에서 거의 필수적으로 보여지는 문구이다. 직접 생성을 해보면 12개의 단어가 나온다. (HardWare 지갑의 경우 24개의 단어 조합을 주로 사용한다.) MetaMask 설치시 12개의 단어를 받는다.1. Mnemonic 이란Mnemonic의 어원은 기억의 여신 ‘Mnemosyne’ 이다. 제우스의 부인이자 9명의 예술의 여신 (Muses)의 어머니이기도 하다. 그녀의 이름은 그리스어로 ‘기억' ‘곰곰이 생각하다'라는 뜻을 가지고 있고, 그녀의 이름에서 파생된 Mnemonic은 오늘 날 ‘기억술'이나 ‘기억 증진법'을 뜻한다.처음 ‘니모닉 단어 생성' 이라는 말을 들었을 때, 단순히 백과사전에 기록 된 n개의 단어를 랜덤으로 제공해주는 기능이라고 ..
-
[알쓸신블] 제5장 UTXO알아두면 쓸모있는 신나는 블록체인 2019. 1. 2. 11:15
UTXO는 Unspent Transaction Outputs의 약자로서, 미사용 트랜잭션 출력값을 말한다. 비트코인은 이더리움의 ‘계좌 잔고 모델’(Account Balance Model)과 달리 계정이나 잔고가 없고, 블록체인에 기록된 “소비되지 않은 출력값”을 통해 거래의 유효성을 검사하여 코인의 존재 여부를 확인한다.블록체인에서의 잔액 조회기존 은행시스템에서 송금 방식은 매우 간단 했다. 송금 신청을 하면 은행에서 ‘잔액'을 확인하고, 잔액이 있다면 상대방의 통장으로 송금을 해준다. 이런 변동 내역은 고스란히 DB에 저장 되고, 잔액을 확인하게 될 때는 단순히 이름에 매칭 되어 있는 잔액을 확인해 줄 것이다. 비트코인에서 위와 같은 방식을 사용하게 된다면 문제가 생길 수 있다.현재 블록에는 n-1번..