본문 바로가기

블록체인14

기초 암호학(2) - AES 이번 포스팅에서는 DES 이후 새로운 암호화 표준인 AES에 대해 알아보려한다.1977년에 표준으로 지정된 DES는 오랫동안 암호화의 표준으로 잘 사용되었지만, 1990년대 이르러 기술 발전으로 56bit Key를 사용하는 기존의 암호화 방식인 DES는 더이상 안전하지 않게 되었다.이러한 이유로 DES를 발전시킨 3-DES와 같은 방법도 사용되기는 하였지만 112bit 보안성을 위해서는 Key가 168bit여야 하기 때문에 여전히 보안성이 불충분했다. 그리고 무엇보다 소프트웨어에서 실행 속도가 느리기 때문에 대안이 필요했다. AES (Advanced Encryption Standard)NIST에서 1997년에 AES라는 이름의 표준으로 제정할 것을 발표하였고, AES 암호화 알고리즘의 공모를 받게되었다... 2019. 3. 1.
비트코인이 Merkle Tree를 사용하는 이유 왜 Bitcoin은 Merkle Tree 구조를 사용할까?Bitcoin은 Transaction을 Merkle Tree 구조로 구성한 다음 Root Node의 해시 값(Merkle Root)를 블록헤더에 넣어서 블록을 만드는 과정을 거친다.그런데 "왜 비트코인에서 블록헤더에 Transaction 정보들을 Merkle Tree구조로 저장을 할까?"라는 의문이 들었다. Why Tree?Merkle Tree를 알아보기 전 왜 Tree구조를 사용할 까라는 생각이 들었다. 컴퓨터 자료구조의 큰 관점으로 보면 선형구조(List, Stack, Queue 등), 비 선형구조(Graph, Tree)로 나눌 수 있다.선형구조와 비 선형구조에서 차이점은 노드 검색속도로 들 수 있다. 예시를 통해 보면 더 쉽게 이해할 수 있다.. 2019. 2. 24.
기초 암호학(1) - DES 블록체인을 공부하면서 dApp을 만들어보고 비트코인이 어떤 방식으로 트랜잭션이 될까라는 부분부터 시작했었다. 그런데 기초 암호학 지식이 없는 상태이다보니 이해하는데 상당한 시간이 걸렸고 수박 겉햛기식으로 학습이 지속되었다.블록체인을 배우면서 만났던 멘토분께서 암호학을 먼저 공부하는 것이 좋다는 말씀을 듣고 공부한 내용들을 정리하였다. DES (Data Encryption Standard)DES는 IBM에서 고안되어 NIST가 미국 표준 암호 알고리즘으로 채택된 대칭 암호화 알고리즘이다. 1998년도에 해독된 암호화 기술이기 때문에, 현재의 일반 컴퓨팅 파워로도 쉽게 뚫린다. 기존에 암호화된 문서를 복호화 하는 용도로만 사용하고 신규 암호화 문서를 생성하는데는 절대로 사용하지 말 것을 권장한다. 개요DES.. 2019. 2. 24.
[이더리움]Geth를 이용해 multi node Private network 구성하기 Ethereum Multi node Private network 구성하기Ethereum을 이용해 dApp을 만들어 배포하기 전에 Ethereum Client의 Private Network를 만들어서 테스트 한 후 배포를 해야 불필요한 비용을 줄일 수 있다. 해당 Tutorial에서는 3가지의 방법을 설명한다.Multi node를 가지고 있는 block Chain망 구성하기어떻게 마이닝 노드 구성하는지어떻게 Multi node들간 BlockChain 통신하는지 Geth 설치방법과 기본적인 동작은 생략한다. 1. Genesis Block 생성하기/* genesis.json */{"config": {"chainId": 1004,"homesteadBlock": 0,"eip150Block": 0,"eip155Bl.. 2018. 12. 9.
[이더리움]Genesis json이 무엇인가 Ethereum - Genesis.json실제 이더리움 기반 DApp을 배포하려면 실제 이더를 소비하여 컴파일된 코드를 블록으로 저장을 해야한다. 운이좋게 오류 없이 실행이 된다면 단 한번의 배포비용만 지불하면 되겠지만, 이미 배포된 DApp에 오류가 발견된다면 수정 후 다시 배포를 해야 하기 때문에 추가로 이더를 소비해야 한다. 따라서, 개발자들은 실제 배포단계 이전에 Private Network를 통해 테스트 한다면 손실되는 비용을 줄일 수가 있을 것이다.Geth를 이용해 Ethereum private Network를 구성하기 위해서는 처음 제네시스 블록을 생성해주어야 한다.이때, Genesis.json에 제네시스 블록에 대한 설정을 해주는데, 이 파일의 구조를 알면 대략적인 이더리움 블록의 구조를 .. 2018. 12. 1.
Hash 함수를 알아보자 Hash 함수를 알아보자블록체인을 공부하다보면 (비트코인, 이더리움) Hash라는 단어를 자주 볼 수 있다. 물론, 블록체인 뿐만 아니라 해시는 보안, 암호분야에서도 널리쓰이는 개념이다. Hash 함수 정의임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수Hash("비트코인") = f386c9a9402b1adcfccd9d7f1b18aa6c60a583e82fca35b59029f4bcc776649eHash("이더리움") = 46f15f1dbcafc4e74402625e6af1a1c2f8675911845381620a07c20f12300d72이 사이트를 클릭하면 SHA-256 Hash를 변환해볼 수 있다.SHA-256 Hash함수의 예를 들어보았다. 어떠한 입력값이 오더라도 출력값은 256bit = 32.. 2018. 11. 27.