반응형

1. 블록체인 - 합의 알고리즘 

합의 알고리즘 : 다수의 참여자가 모두 동일한 결론에 이르도록 만든 알고리즘

제안자 : 모든 노드들에게 장부 변경에 대한 내용 제안

검증자 : 각 참여자들이 변경된 내용에 대해 검증

 

Proof of Work (작업증명) : 채굴(BTC,ETH)

채굴을 통해서 가장 먼저 블록을 만든 노드를 제안자로 채택

2. 블록체인 - 자가 제한 시스템

- 블록생성간격을 스스로 제한하는 시스템

- 전체 해시 파워가 변하면 난이도 조절 - 해시파워 X 난이도

- 타임스탬프 활용

- 비트코인의 경우 2016개 기준으로 2주(10분)에 대해 난이도 조절

3. 인센티브 - 보상시스템

- 보상을 통해 많은 노드들이 참여

- 채굴로 인한 전력 사용에 대한 보상, 네트워크 기여도에 대한 보상

- 수수료 보상

 > 트랜잭션을 일으킬 때 수수료 받고, 수수료 모아 채굴자 전달

 > 수수료가 높은 트랜잭션 일수록 블록에 우선적으로 포함 (용량의 한계)

 > 수수료 경쟁이 생김

4. FORK

1) 포크 

 - 체인에 여러 블록이  동시에 여러개가 연결을 시도하여 생기는 형태

 

2) 하드포크 & 소프트포크

 -블록체인의 소스코드를 포크하여 업그레이드 하기위해 사용되는 포크

 - 하위호환성과 관련이 있음.

 

3) 비동기 네트워크 와 POW

 > 비동기적 네트워크 상태와 POW를 통한 합의로 인해 채굴 경쟁 중 거의 동시에 블록을 생성 및 전파

 > 결국 두개의 블록을 전파받는 노드가 생김

 > 둘중에 어떤 블록을 선택해야 하는가

 

4) Longest Chain rule 

: 더 긴 (블록이 더 많은) 체인을 선택 

 

5) Heaviest Chain rule

: 더 무거운 체인(난이도의 합이 더 큰) 선택

 

6) 코어 개발

 6-1. 논문

 6-2. 하이퍼레저 패브릭 

 6-3. 포크 - 비트, 이더

 6-4. cosmos sdk - tedermint 합의 알고리즘

 

 

 

 

 

 

반응형
반응형

1. 블록체인하면 2가지 분류

1) 코어 

2) 어플리케이션

2. 블록체인 등장 배경

1) 사이퍼 펑크 - 암호체계를 활용한 개인정보 보호

2) 서브 프라임 모기지사태  - 중앙화의 나쁜점으로 인한 탈중앙화가 필요..

암호학 체계 + 프라이버시 + 탈중앙화 >> 블록체인 등장 배경

3. 화폐 

암호화폐 >> 암호자산 (변동성으로 인한 자산으로 명명)

변동성 잡기 위해 >> 스테이블 코인

 

스테이블 코인 (변동성으로 부터 안정적인 코인(1달러에 가치에 페깅))

- 법정화폐 담보형 - USDT, USDC(에스크로라 하는 감시 기관) (은행과 같다.)

- 암호화폐 담보형 - DAI (과담보, 청산) : 50% 값 -> 100% 받을 수 있음 믿음, 오를거라는 믿음

- 무담보형 (알고리즘, 시뇨리지(trerra)) - 성공사례 X

4. 블록체인 구조

블록체인 - 블록 + 체인

블록 - 헤더 + 바디

체인 - 블록과 블록과의 관계성(이전 블록 해시)

헤더 : 메타데이터 (요약 정보)

바디 : 순차적인 Tx 리스트

5. Tx 분류 

- ACID(산성) : 

1) A : 원자성 - 쪼갤 수 없는 최소한의 단위 ex) 송금  (A -100 -> B +100) ERR시 처음으로 회귀(ROLLBACK)

2) C : 일관성 - 모든 트랜잭션은 같은 조건(규약)이 반영되여야 한다. 

3) I : 고립성 - 중간 끼어들기 불가 

4 D : 영구성 - 데이터가 누군가의 외부적 요인으로 변경되지 않는 것

 

- BASE(염기) : 분산 네트워크 

1) BA - 기본적으로 가용한 (노드들이 몇개는 고장이 나도 괜찮다.)

ex) 2대의 서버를 사용하여 하나의 서버가 다운되도 다른 1대의 서버를 사용가능. 

2) S :  소프트 상태 - sync(동기화)

3) E : 결론적 일관성

6. 블록바디 -순차적인 Tx 목록 

- 자신이 발생한 Tx 을 기준(자신이 발생시킨 Tx은 순차적으로) , 남이 보내는 Tx는 뒤죽박죽으로 온다,

-> 이를 나중에 가스비 기준으로 정렬 

7. MEV : Miner Extractable Value

수수료 많으면 트랙잰션을 먼저처리해줌.

마이너가 메모리 풀(일시적으로 트랜잭션을 받아놈)  -> 트랜잭션을 꺼내서 블록바디에 넣고 머클루트를 따서 헤더에 넣고 헤더에서 채굴하는 형태 / 메모리 풀을 마이너가 볼 수 있음, 트랜잭션 가스비(수수료)를 확인하고, 수수료가 높은 것들을 확인하여 트랜잭션 순서를 재배치할 수 가 있음. >> 차등이익을 마이너들이 볼 수가 있음. >> 하지만, 계속해서 수수료를 확인하고, 재배치를 하는것이 실제로는 귀찮기 때문에 마이너들은 실제로 이렇게 하지 않는다. 

8. 블록헤더 (키워드 생각하기)

1) 버전  : 하위 호환

2) 타임스탬프 : 자가제한 시스템 >> 난이도 결정하는데 필요

평균 블록 생성시간 : (맨마지막의 타임스탬프 - 맨처음의타임스탬프 / 2016 < 10분) ? 난이도 낮춤 : 난이도 높임

3)이전 블록 해시  : 체인 ,체이닝

4) 머클 루트 해시 : 증명

5) 난이도 : 채굴 -> 목표값으로 정해져 있는 해시퍼즐을 논스로 정답 찾기를 진행.

6) 논스(해시퍼즐정답) : 채굴

9. 해시함수

m (평문)-> H(m) (암호문)

H(m) 은 고정길이

m - > H(m) 가능

H(m) - > m 불가능 (복호화 불가)

>> 고정길이, 단방향, 규칙성x

머클루트 해시

1) 데이터 마다 해시로 만든다. 

2) 해시를 합쳐 또 해시를 만든다... (반복)

3) 루트를 헤더의 넣는다. 

>> 해시의 형태이기 때문에 조금만 바뀌어도 완전히 바뀌는 형태 

>> 어떤 부분이 잘못 되었는지 처리를 해주는 것을 머클 증명이라고 한다.

 

 

 

 

 

 

 

 

반응형

+ Recent posts