본문 바로가기

전체 글68

비트코인이 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.
서버에 패스워드 안전하게 저장하는 방법 (Node.js + MongoDB) - bcrypt 서버에 패스워드 안전하게 저장하는 방법 - bcryptNode.js와 MongoDB로 웹 페이지를 만들면서 비밀번호는 사실 String으로 만들어 두었었다.이때까지 완벽하게 구현하는게 목표였지 보안에는 신경을 쓰지않았었다.그러던 중 포프님의 해시와 암호화를 보고나서 암호를 PlainText로 저장하는건 자살행위나 다름없구나라고 깨닫고 비밀번호를 암호화 하는 방법을 찾아보았다. 서버에 패스워드를 저장하는 방식의 문제점들보통 서버에 사용자의 Password를 두가지 방식으로 저장을한다.1. Plain Text2. 해시값일단 첫번째 경우 보안의 중요성을 몰랐을때 저지르는 실수인데, 만약 이런 웹사이트에서 회원가입을 하는건 인터넷상에 내 정보를 올리는 것과 마찬가지니 이런 곳에서는 회원가입을 하지 않는 것이 좋.. 2019. 1. 9.
IE환경 Bootstrap4 table flex 오류 해결하기 개인적으로 대학원 홈페이지를 만들면서 생기는 오류중에 브라우저간 호환성을 맞추는 작업이 가장 어려웠다. 초안으로 만들땐 jQuery1버전과 Bootstrap3버전을 이용했기 떄문에 Internet Explorer에서 별다른 오류사항이 나오지 않았다. (간혹 화면에서 멀리표시되는 오류빼면) 이번에 IE10이전 브라우저는 지원하지 않기로 결심하면서 jQuery를 버리고 Vanilla JS (ES6+)를 사용하고 Boostrap4로 업데이트 하였다. 그런데 크롬이나 파이어폭스에서는 문제가 나지 않았지만 IE11에서 오류가 나왔다. ES6문법을 지원하지 않았던 것이다. 이 문제는 babel로 풀었는데 또 다른 복병이 나타났다. 위 사진처럼 Table이 일정하게 나오지 않았다. No. 제목 작성자 작성일 조회수 .. 2019. 1. 9.