블록체인

블록체인 개념을 잡기위한 첫 번째 발걸음

코린F&F프티 2022. 4. 14. 09:56
기존 캐시의 문제점, 비트코인이 필요한 점
1. 기존 캐시는 |복사|가 일어날 수 있습니다.
2. 기존 캐시는 |이중 지불|을 할 수 있습니다.
3. 기존 캐시는 |소유권 이전|이 일어날 수 있습니다.

해결책
1. 모든사람이 이력을 소유(개인이 조작을 하더라도 모든사람의 이력을 조작할 순 없으니 조작 불가능)
  - 51%문제 => 100명중 자신을 포함한 51명의 이력을 조작하면
    이력조작이 가능(과반수를 넘었기에 증명이 가능하기 때문, 단. 둘일때는 불가능)

블록체인에서의 장부는 흔히 트랜잭션이라고 하며,
트랜잭션은 => 원소성을 가지기에 더 작은 단위로 분해 될수 없으며
       블록체인의 거래에서 문제가 생길 시 트랜잭션 단위로 거래의 롤백이 일어남.

각 유저들은 블록체인에서 자신을 입증 해야한다.
1. 비대칭 키 알고리즘 방식인 |ECC(타원곡선 암호 알고리즘)|
-비밀키는 유저가 가지고, 공개키를 가공해서 블록체인에 통용되는 |주소(일종의 계좌)| 생성

자신이 보유한 계좌 주소에서 상대방 계좌 주소로 얼만큼의 비용을 보낼지를 트랜잭션에 기입
송금을 하기위한 증빙서류 첨부
ex)(트랜잭션 A)내가 저사람에게 100만 비트를 받았어.
    (트랜잭션 B)내가 저 사람에게 50만 비트를 보낼게.
    (트랜잭션 C)트랜잭션 B를 보내면서, 나머지 잔고 50만 비트를 다시 내 계좌로 돌려받을거야.
    트랜잭션 B, C를 발행하는데 트랜잭션 A를 증빙서류로 해서 보낼게.
-트랜잭션 A를 UTXO라고 부른다(출금하는데 증빙서류로 단 한번도 사용하지 않은 깨끗한 트랜잭션)

=> 이러한 트랜잭션들을 서로 공유하며 섞이지 않은 형태로 깔끔히 정리하여 묶어놓은
     트랜잭션의 상위호환 | 블록 |
=> 이러한 블록들이 체인처럼 연결된 모습을 가지기에 | 블록 체인 |

블록체인
1.구성: 이전 블록 해시값, 블록의 정보 + nonce(무작위 값)
2.consensus(합의)
- 특정 조건을 만족하는 해시를 생성하기 위한 nonce를 찾아야 할 때, 이
  특정 조건을 만들어내는 기준(hash값에서 임의의 숫자가 연속적으로 몇자리 이상 나와야 하는지)
3.작업 증명 방식(Proof of Work)
  블록주기 : 블록을 생성하기 위한 특정 조건의 hash를 찾기 위한 시간
  해쉬레이트(Hash Rate) : 블록을 생성하는 이용자들의 초당 연산 가능한
해시 수
블록주기 : 난이도 ( 비례 관계 ), 블록주기 : 해쉬레이트( 반비례)
  While(난이도 = 동일){
  if Hash Rate > 높다 { 블록주기 = 낮다 }
  else Hash Rate < 낮다 { 블록주기 = 높다 }
  } But 해쉬레이트는 사용자의 연산 능력이기에 유동 가능성이 큼
4. 하드포킹
- 특정 블록지점을 기준으로 두 체인(51% 체인, 49%체인)이 독립적인 블록체인의
  메인체인으로 기능하게 되는것 ==> 51%의 문제로 야기된 문제
5. 블록체인을 이용하는 사람들이 블록을 만들어야하는 이유 => 동기
- |보상개념|에 해당하는 것으로 비트코인 - 즉, 암호화폐(가상자산)의 개념적 정의
6.비트코인의 가치화
- 무정부 체제(탈중앙화), 현존하는 Fiat Money 들의 인플레이션으로 인한 가치하락(신뢰성)
  금을 대체할 수 있는 수단이라던(희소성)

나의 생각 정리

무작정 블록체인의 내용들을 정리해서 되새겨 보았다.
왠지 나만 알 수 있게끔 뒤죽박죽 정리를 한거 같아 블로그에 글을 올리기 부끄러웠다.

용어들이 너무나도 생소하고 이해 안되는 부분들이 많아 찾는데 생각보다 시간이 많이 들었지만
직접 구글링 한다는것이 정말 도움이 많이 된것 같다.
앞으로 이러한 얘기들을 다룰 것이라고 하는데 벌써부터 조금씩 지루할 것 같다고 생각이 들기도 하지만
막상 전문적으로 점점 깊게 파고 들고 있다는 것이 몸소 느껴졌다.
내일 부터는 본격적으로 파헤치기로 들어가서 복습과 개념을 다 잡고 블록체인에 필요한 프로그래밍 언어를
배워 나만의 블록체인 포트폴리오를 작성해볼 계획이다.