본문 바로가기

정보 보안/블록체인10

암호화폐 보상 예상시간과 난이도 # 블록 체인의 보상 예상시간 - 채굴을 완료한 뒤에 언제쯤 보상을 받을 수 있을까? > 만약, 보상을 받을 수 있는 시기를 어림짐작할 수 없다면, 해당 암호화폐는 신뢰받을 수 없다. ex) 인터파크에 책을 주문했는데, 언제 배송이 완료될지 알려주지 않는다면 매일같이 오매불망 책을 기다리는 불편을 감수해야 한다 -> 이런 서점은 신뢰할 수 없다. 암호화폐도 같은 맥락 - 암호화폐들의 보상 예상시간 : 1) 대부분의 경우, 얼마의 시간 단위마다 화폐가 발행되는지 정해둔다 2) 이 시간을 알면, 평균적으로 뒤이어서 6개의 블록이 생성되면 채굴에 대한 보상이 주어진다는 것을 알기 때문에, 대략적인 보상 시간을 계산 가능하다.> 비트코인, 이더리움 등 암호화폐마다 발행 시간을 정해뒀다. # 난이도 - 난이도 조.. 2020. 3. 12.
암호화폐 마이닝 풀 # 마이닝 풀 - 개요 : 1) 시간이 지날수록 채굴 참여자가 많아짐 2) 이에 발행 시간을 유지하기 위해, 암호화폐의 해싱 난이도가 높아짐 3) 개인이 계산하기엔 버거운 문제들 등장 4) 집단 풀이의 필요성 대두 (집단 지성)>> 마이닝 풀!! 다같이 풀자! - 마이닝 풀 참여자들의 이익 분배 : - 의의 : 1) 만약에, 마이닝 풀의 특정 인원의 컴퓨팅 파워가 압도적이라서 계속 그 사람이 주도적으로 코인을 채굴한다고 하자 2) 근데 수익 분배는 1/N 하라고 하면 빡치지 않을까? >> 따라서, 마이닝 풀은 특정 기준을 가지고 이익의 분배를 다르게 해준다 - 기준 : 해싱 파워! - 개개인의 참여자들의 해싱 파워에 비례하게, 수익이 발생한다면 나눠 가진다.- 마치, 특정 아이돌 그룹의 수익 분배를 할때.. 2020. 3. 12.
화폐의 3대 조건 & 블록체인 트릴레마 # 화폐의 3대 조건 1) 충분히 가치가 있는가? - 물물교환에 사용 2) 충분한 수량이 있는가? - 대중이 사용할 수 있도록 3) 가치 손상이 어려우며 + 가치가 안정적인가? # 블록체인 트릴레마 - 개요 : 이더리움 창시자인 비탈릭 부테린이 제시한 트릴레마 - 종류 : 1) 확장성 : 사용자가 증가하더라도 유연하게 대응할 수 있는가? > 블록체인에서는, 참여자들이 많아지면서 거래량이 많아지더라도 빠른 속도로 처리가 가능한지의 여부를 의미 > 비트코인, 이더리움(1세대) 는 이 한계를 극복 못함 2) 탈 중앙화 : 중앙 집중되지 않고, 분산된 집단이 각자 소규모 단위로 자율적인 운영이 가능한가? > EOS 의 방식의 경우, 탈 중앙화를 만족시키지 못한다 3) 보안 : 권한이 없는 이용자가 블록체인에 접.. 2020. 3. 12.
블록체인 해킹 사례 # 비트코인 해킹사례 1. 비트코인 채굴자 악성코드 - 원리 : 1) 채굴을 위해선, 여러 사람들이 해싱 작업을 계속 수행해야 한다 2) 경쟁자가 너무 많을 경우엔, 내 블록이 stale block 이 되어버릴 가능성이 높아진다! 3) 즉, 다른 사람과의 경쟁 자체를 줄여야 내가 블록을 얻게될 가능성이 높아진다 4) 따라서, 블록을 채굴하려는 사람들에게 악성코드를 심어놓자!> 그럴 경우, 채굴하다가 악성코드에 의해 아예 채굴 자체가 불가능하게 된다> 비유하자면, 전교 2등이 전교 1등을 하기 위해 전교 1등을 처단(?) 해버리는거랑 똑같다 2. 코인 지갑 해킹 - 원리 : 1) 공개키 암호화방식인 블록체인이기에, 각각의 사람들은 본인의 블록에 맞는 개인키를 소지하고 있다 2) 이 개인키들을 모아놓고 관리.. 2020. 3. 8.
암호화폐의 해싱 # 해싱 - 해싱의 장점 1) 어떤 입력값에도, 고정된 길이의 해시값 출력ex) "안녕" -> z1x2c3 "안녕하세요 제 이름은 김상윤입니다" -> f4g5h6>> 두 개의 입력값에 대한 해시 값 길이는 일치한다 2) 눈사태 효과 : 입력값이 조금만 달라져도 전혀 다른 결과물이 나온다ex) "hello" -> q1w2e3, "hello?" -> a4s5d6 3) (눈사태 효과때문에) 따라서, 해시 값을 이용해서 입력값을 추측하는 것이 불가능하다 - 해싱 충돌 가능성? - 아~주 희박 - 해싱의 성능 : 충돌의 발생 가능성이 적을수록, 좋은 해싱 함수다! # 암호화 해시 함수cryptographic hash function - 다음의 세 가지 조건을 만족시키는 해시 함수를 의미 : 1) 역상 저항성(pr.. 2020. 2. 27.
채굴이란? # 채굴이라 불리는 이유? - 일반 화폐의 발행 주체 : 중앙 정부 - 암호화폐의 발행 주체 : 개인 - 방법 : 1) 개인이 직접 컴퓨터를 돌려서, 해싱을 수행 2) 올바른 값을 구해낼때까지 계속 해싱 3) 올바른 값을 구해냈다면, 그제서야 개인이 해당 화폐를 얻는다 - 의의 : 금광에서 금을 직접 캐내듯, "개인" 이 직접 암호화폐 "금광"으로 가서 암호화폐를 "채굴"한다>> 이런 의미에서 암호화폐 "채굴" 이라는 방식으로 불림 # 채굴의 양상 : 1) 초기에는 개인이 채굴 : 속도는 매우 느렸으나, 대부분의 다른 사람들도 개인 컴퓨터로 채굴했기에 경쟁이 약함 2) 그래픽 카드의 등장 : 성능 좋은 컴퓨터들로 채굴을 하면서, 속도가 매우 빨라짐 3) ASIC 의 등장 : 더 좋은 성능의, 오직 채굴만.. 2020. 2. 27.
채굴의 구체적 과정 # 채굴의 구체적 과정 1) 블록체인 구조 (블록 바디, 블록 헤더) 중, 블록헤더를 보자2) 블록 헤더의 여러 내용물들은 그대로 주어지되, "논스(nonce)" 값만 비어있는 상태로 채굴 희망자들에게 "빈 블록"이 주어진다3) 채굴자들은, 빈 블록 안에 임의의 nonce 들을 하나씩 넣어가며, 그때마다 "블록 해시" 값을 구해낸다 > 블록해시 : 블록 헤더의 6가지 값들을 합산해서 해싱한 결괏값이다4) 이때의 블록 해시 값이, target 값보다 작을경우, "문제를 해결했다" 고 지칭한다 > target 값은 자율적으로 조정되는 값이지 않을까 싶다 (비트코인의 경우, 시간이 지날수록 난이도를 조절한다는 부분에서 추측했음)5) 따라서, 문제를 해결한 경우엔, 해당 채굴자에게 블록이 주어진다. (논스가 채.. 2020. 2. 27.
합의 알고리즘 # 합의 알고리즘 - 의의 : 1) 탈중앙화 된 공간이 있다고 하자. 이때, 각 개인간의 통신은 P2P 방식에 의존한다. 2) 그러다 한 개인이 특정 값을 수정한다거나, 새로운 사람이 해당 공간에 들어온다고 했을때, 혹은 두 사람이 경쟁해서 동시에 공간에 들어오게 됐을때 누구를 선택할 것인지 등 -> 이때의 의사 결정은 어떻게 할 것인가? 3) 중앙 정부가 없기 때문에, 모든 개인들이 P2P 방식을 통해 의사 결정에 참여해야 하는 상황이다 4) 이를 위한 알고리즘 = "합의 알고리즘" - 용도 : (어떤 블록이 진짜 블록인가?) 를 결정하기 위해 합의할때, 사용하는 알고리즘 - 이 알고리즘의 종류에 따라, 어떤 식으로 사람들이 채굴할 것인지를 결정한다 (채굴 방식) - 대표적 종류 : 1) PoW (Pr.. 2020. 2. 27.
암호화폐 지갑 # 암호화폐 지갑 정의/의의 > 의의 : - 거래하고 있는 암호화폐가 다양하거나, 소유하고 있는 블록들이 여러개인 경우 -> 일일이 공개키/보안키를 관리하는게 어려움 - 공개키/보안키 를 한꺼번에 들고 있으면 편하지 않을까?> 이 발상에 기초해서 암호화폐 지갑 개발됨. > 정의 : 공개키/보안키를 넣어 다닐 수 있는, 사실상 "열쇠 지갑" # 암호화폐 지갑의 한계 > 현재 기술 : 공개키/보안키 를 모음집 형식으로 들고다닐 수 있는 기본적인 상황.> 여러 기업들이 암호화폐 지갑 개발에 투자하고 있음 > 한계 : 1) 보안의 취약성 :- 암호화폐 각각의 보안 자체는 압도적으로 안전하고, 해킹이 거의 불가능- 그러나, "금고" 역할을 하는 블록 자체가 안전하더라도, "열쇠" 역할을 하는 암호화폐 지갑 (또는.. 2020. 2. 27.
블록 체인의 구조 # 블록체인의 구조 - 큰 틀에서의 구조 : 1) 블록 해시 : 블록 헤더에 있는 내용들을 모두 합산한 값 -> SHA-1 해싱을 한 결괏값> 역할 : 블록의 "식별자" 2) 블록 헤더 : 버전, 이전 블록 해시, 머클 루트 값, 타임, 난이도 목표, 논스 (6가지) 로 구성>1. 이전 블록 해시 : 이전 블록의 주솟값 ** 블록 해시와 헷갈리면 안된다!! 블록 해시는 "지금 이 블록의" 블록 주소를 의미하며, 이전 블록 해시는 "이전 블록의" 블록 주소를 의미한다>> 실제로 블록들을 하나의 "체인"처럼 연결해주는건 바로 이 부분때문이다. >2. 머클 루트 : 블록 바디에 있는 트랜잭션들의 해싱 트리- 의의 : 트랜잭션/블록 해시 의 무결성 증명 가능 3) 블록 바디 : 트랜잭션들로 구성 (1번째~N번째.. 2020. 2. 27.