Blockchain 기본 정리
Blockchain 이란
1. 블록체인은 모든 거래 정보를 포함하는 거대한 장부로서, 여러 채굴자의 컴퓨터에 분산되어 관리되는 분산 장부.
2. 블록은 다수의 거래 정보의 묶음이며, 이런 블록이 체인처럼 연결되어 전체 블록체인을 형성한다.
3. 채굴은 블록에 담긴 거래 정보를 유효한 것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Proof of Work)과 그에 따른 보상을 합친 개념이다.
4. 작업 증명의 난이도는 블록체인 전체에 걸쳐 일률적으로 적영되는 것이 아니라 채굴자 컴퓨터의 계산 능력에 따라 다르게 적용된다.
5. 비트코인은 블록체인 시스템을 암호화 화폐 분야에 적용한 서비스의 일종이다.
Block(블록)
1. 블록은 블록체인의 원소로서 개념적으로는 다수의 거래 묶음을 의미.
2. 거래의 집합으로, 타임스탬프와 이전 블록의 지문이 표시되어 있음.
3. 블록 헤더를 요약해서 작업 증명(proof of work)을 만들고 이를 통해 거래가 유효화 됨.
4. 유효화된 블록들은 네트워크의 동의를 얻은 후 주 블록체인에 추가됨.
5. 블록은 블록 헤더와 거래 정보, 기타 정보로 구성됨.
- 블록 헤더는 [version], [previousblockhash], [merklehash], [time], [bits], [nonce] 6개의 정보로 구성됨.
- 거래 정보는 입출금과 관련한 여러가지 정보를 가지고 있음
- 기타 정보는 블록 내에 있는 정보 중에서 블록 헤더와 거래 정보에 해당하지 않는 정보를 말하며, 블록 해 계산에 사용되지 않음
Block Header(블록 헤더)
1. 블록 헤더는 다음의 6가지 정보로 구성되어 있음
1) version : 소프트웨어/프로토콜 버전
2) previousblockhash : 블록 체인에서 바로 앞에 위치하는 블록의 블록 해시
3) merklehash : 개별 거래 정보의 거래 해시를 2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해시값
4) time : 블록이 생성된 시간
5) bits : 난이도 조절용 수치l
6) nonce : 최초 0에서 시작하여 조건을 만족하는 해시값을 찾아낼때까지의 1씩 증가하는 계산 횟수
Block Hash(블록 해시)
1. 블록의 식별자 역할을 하는 블록 해시는 6가지의 블록 헤더 정보를 입력값에 SHA256 해쉬 함수를 2회 적용해서 계산 되는 값으로, 32바이트의 숫자값.
2. 이름은 블록 해시지만 그 값은 블록 전체를 해시한 값이 아니라, 블록 헤더를 해시한 값.
Blockchain(블록체인)
1. 유효화된 블록의 집합.
2. 각 블록체인은 이전에 생성된 블록체인과 연결되어 최초블록(Genesis block)까지 이어짐.
3. 최초블록(Genesis block)부터 시작해서 바로 앞의 블록에 대한 링크를 가지고 있는 링크드 리스트.
4. 여러 노드에 걸쳐 분산되어 저장 및 관리되며, 블록에는 거래 정보가 포함되어 있으므로 블록의 집합체인 블록체인은 모든 거래 정보를 포함하는 거대 분산 장부라 할 수 있음
5. 블록체인 기술의 장점
1) 탈중개성(P2P-based) : 공인된 제 3자의 공증 없이 개인간 거래 가능 → 불필요한 수수료 절감
2) 보안성(Secure) : 정보를 다수가 공동으로 소유하여 해킹 불가능 → 보안관련 비용 절감
3) 신속성(Instantaneous) : 거래의 승인, 기록은 다수의 참여에 의해 자동 실행 → 신속성 극대화
4) 확장성(Scalable) : 공개된 소스에 의해 쉽게 구축, 연결, 확장 가능 → IT 구축비용 절감
5) 투명성(Transparent) : 모든 거래기록에 공개적 접근 가능 → 거래 양성화 및 규제비용 절감
Address(주소)
1. 비트코인의 주소 형태는 1DSrfJd..... 같은 형식으로 1로 시작하는 여러 개의 문자와 숫자 조합으로 이루어짐.
Bitcoin(비트코인)
1. 화폐 단위(코인), 해당 네트워크 및 소프트웨어 이름.
2. 블록 체인 시스템을 암호화 화폐에 적용한 서비스의 일종.
Difficulty(난이도)
1. 작업증명을 하기 위해서 얼마나 많은 계산이 필요한지를 제어하는, 전 네트워크의 설정값.
Difficulty target(난이도 목표값)
1. 해당 네트워크 내에 있는 계산력으로 약 10분마다 블록을 찾을 수 있는 난이도를 의미.
Difficulty retargeting(난이도 재설정)
1. 2,016개의 블록에서 한 번 발생하면 이전 2,016개의 블록의 해싱파워를 고려해서 네트워크상에서 난이도를 다시 계산.
Hash(해시)
1. 2진수 입력에 대한 디지털 지문
Genesis block(최초블록)
1. 블록체인에서 첫 블록으로, 암호화 화폐를 시작하는데 사용.
Transaction(거래)
1. 어떤 한 주소에서 다른 주소로 비트코인이 이동하는 것을 말함.
2. 거래란 송금을 의미하는 서명된 데이터 구조.
3. 거래는 비트코인 네트워크를 통해서 전송되며, 채굴자들이 수집하고 블록에 포함시켜서 블록체인 내에
영구적으로 존재하게 만듬.
Wallet(지갑)
1. 비트코인 주소와 비밀키가 담겨 있는 소프트웨어
2. 비트코인을 전송하고 수취하고 보관하는데 이용됨.
Proof of Work(작업 증명)
1. 작업 증명은 새로운 블록을 블록체인에 추가하는 '작업'을 완료했음을 '증명'하는 것이라고 이해하면 된다.
2. 새로운 블록을 블록체인에 추가하려면, 그 새로운 블록의 블록 해시를 계산 해내야 하고, 그 블록 해쉬를 계산해 내려면 그 블록의 블록 헤더 정보 중의 하나인 nonce 값을 계산을 통해 구해야 한다.
3. 결론적으로 nonce 값을 구하는 것이 바로 작업 증명`이다.
4. 블록을 찾기 위해 다량의 계산을 요구하는 데이터.
5. 비트코인에서 채굴자들은 전 네트워크에 걸쳐 설정되어 있는 목표값, 즉 난이도 목표값을 충족하는 SHA256
알고리즘에 대한 수치적 솔루션을 찾아내야 한다.
* 타임스탬프를 가지고 거래의 정당성(=최초 거래임을 입증)을 검증하는 과정
1. SHA-256 암호화 알고리즘으로 다수의 0비트들로 시작되는 암호화 해시값을 찾는 과정
1) 평균 작업시간 : 연속되는 0비트의 요구 개수에 따라 지수적으로 증가
2. 증명을 위한 다수결에 의한 의사결졍 과정에서 대표자 결정
1) 한 개의 CPU당 한 번의 투표만 가능
→ 다수의 결졍 = 가장 긴 노드 = 가장 많은 노력이 이 노드에 투입된 것
2) 컴퓨팅 파워의 과반수가 정직한 노드들에 의해 제어되고 있다면, 정직한 체인이 가장 빠르게 늘어남
3. 작업 증명 방법
1) 블록 해시 결과가 0비트들을 갖도록 하는 해시값을 찾을 때까지 블록에 임시값(Nonce)을 증가시킴
2) 한번 작업 증명 조건에 도달하게 되면, 그 블록은 다시 과정을 번복하지 않는 한 고정됨
3) 그 다음 블록들이 체인을 형성함으로써, 하나의 블록을 변경하기 위해서는 그 블록을 포함한 다음 모든
블록들에 대해 작업증명 과정을 다시 수행해야 함
4. 시간이 흐름에 따라 하드웨어 속도 증가와 노드들의 참여도 증가율을 보상하기 위해서, 작업증명의 난이도는 시간당 평균 블록 생성 수를 기준으로 하는 이동평균을 타깃으로 결정 (블록이 너무 빠르게 생성되면 난이도는 급증)
* 이는 비트코인과 같은 공개 블록체인에서 많이 쓰이는 구조이다.
여러 거래들을 하나의 블록으로 모은다.
이 블록을 만들기위해 채굴자가 해쉬 알고리즘을 풀어서 이를 증명한다(이를 채굴이라고 한다).
증명에 성공한 채굴자는 이를 전체 블록체인 노드에 이를 중계하고 블록체인의 가장 마지막 블록에 자신이 채굴한 블록을 연결한다.
이와 같은 과정이 반복되면 여러 블록이 하나의 체인을 이루기 때문에 이를 블록체인이라고 한다.
이를 위변조하기 위해서는 proof-of-work의 과정을 한번 더 거쳐야하는데 이는 사실상 불가능하다고 볼 수 있다.
즉, 위변조를 시도하는 사람은 엄청난 컴퓨터 파워를 사용하면서도 이에 대한 혜택을 얻을 수 없기 때문에 위변조에 대한 시도를 방지하는 시스템이다.
* 작업증명(Proof of work, POW)은 블록체인에 추가할 현 블록을 누가 만들것인가를 정하기 위해서 모든 노드(컴퓨터)들이 참여하여 특정 값(난이도, 즉 Difficulty와 직접 관계있음)보다 작은 해쉬값을 누가 빨리 찾는지를 겨루는 게임
Blockchain 적용범위
1. 금융권 적용범위
1) 결제(Payment) : 은행권은 블록체인을 이용한 결제 시스템을 도입 (Westpac, Commonwealth Bank of
Austraila)
2) 증권거래(Securities Trading) : 블록체인을 이용해서 개인소유 회사 주식을 안전한 방식으로 발행 및 이전
(NASDAQ)
3) 보험(Insurance) : 자산 디지털화 및 분산식 장부 기술을 통해 보험 관련 사기 방지 예방 (Barclays, Everledger)
4) 대출(Loans) : 블록체인 내 스마트 계약을 통한 대출상품 제공. (Koinify)
5) 백오피스 운영 : 블록체인은 트랜잭션에 대한 백오피스 처리의 분산 및 시간 절감 (SETL, USAA)
2. 비금융권 적용범위
1) 감사(Audit) : 장부의 실시간 대사 같은 감사 기법에 적용 (Rubix)
2) 자산 관리(Asset Ownership) : 보안 및 수정 불가능한 특성을 통해 공인된 제 3자가 없이 물적 자산에 대한
기록 및 추적 (Blockverify, Factom)
3) 계정 관리(Identity Management) : 디지털 서명 및 시간별 동기화를 통해 디지털 자산(컨텐츠)에 대한 기록
가능(Digital Asset Holdings, ShoCard)
4) 사물인터넷(Internet of Things) : 스마트 디바이스가 서로서로 안전하게 통신 (Filament, IBM)
5) Crowdsourcing : 자생적 온라인 비지니스 모델 유지를 위한 협업 네트워킹 체계 구축 (LaZooz)
6) Data Storage : Dropbox처럼 데이터 저장 서비스 제공이 가능한데, 비용은 최소화하고 프라이버시, 안정성,
서비스 품질은 높임 (DNA, Bits, Storj)
끝.
'IT > note' 카테고리의 다른 글
QA 조직 요구 사항 및 인력 구성 (6) | 2022.01.25 |
---|---|
클라우드 컴퓨팅의 서비스 형태, 장점, 단점, IaaS, PaaS, SaaS (0) | 2022.01.19 |
기술의 발전과 변화에 대응하는 우리의 자세 (2) | 2022.01.19 |
VMware, IP 관련 용어 정리 (4) | 2022.01.18 |
Server OS 동향 변화 (2) | 2022.01.17 |
댓글