// 에드센스

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기서 볼 수 있습니다.

 

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.


1. 블록체인이 기업(비즈니스)에 적용됐을 때

공급망 관리(Supply Chain Management)

공급망 관리란,

  • 부품 제공업자, 생산자, 배포자, 고객에 이르는 물류의 흐름을 하나의 가치사슬 관점에서 파악하고 필요한 정보가 원활히 흐르도록 지원하는 시스템
  • 즉, 어떤 원료로 생산했고, 누가 생산했고, 누가 유통했고, 누가 구매했는지를 한번에 관리하는 시스템
  • 제품 가치의 60~70%가 제조 이외의 부분에서 발생하므로 전체 라인의 관리가 필요

 

한 예시로 IBM의 Food Trust 가 있다.

 

IBM의 푸드 트러스트는 식품 생산과 유통, 판매 등 ‘농장에서 식탁까지’의 식품 생태계 데이터 정보에 농가와 공급업체, 판매업체 등 참여주체가 간편하면서 신속하게 접근할 수 있도록 설계된 것이 특징이다. 특히 기존에 6~7일 정도 소요된 식품 생산이력추적이 단 2초 만에 이뤄져 식품안전 문제가 발생했을 경우, 원인을 더욱 빨리 규명하면서 상황이 확산되는 것을 조기에 차단할 수 있는 것이 가장 큰 장점이다.

여기에 사물인터넷(IoT)과 빅데이터 등의 여러 첨단기술이 접목되면서 원산지 추적은 물론 상세한 유통경로와 제품 입·출하내역, 공급량·재고량 확인 등의 내용까지 즉각 확인할 수 있다.

https://www.econovill.com

 

 

 

 

해외 송금/자산

은행을 거친 국가간 지급 결제 방식 => 매우 불편하고 오래걸린다.

이를 블록체인으로 개선한 사례

BoC & MAS Cross-border Settlement(캐나다 - 싱가포르 중앙은행간 블록체인 결제 실험)

 

캐나다 중앙은행은 R3 코다 기반, 싱가포르는 쿼럼 기반 블록체인 네트워크를 활용해 중계자 없이 직접 대금 결제가 가능함을 보여줬다. 

https://www.digitaltoday.co.kr/news/articleView.html?idxno=303128 

 

싱가포르-캐나다, 블록체인 기반 국가간 결제 실험 성공 - 디지털투데이 (DigitalToday)

캐나다와 싱가포르 중앙은행이 최초의 블록체인 기술을 활용한 국가간 결제 실험을 성공적으로 마쳤다. 2일(현지시간) 코인데스크 등 외신에 따르면 캐나다 중앙은행(BoC, The Bank of Canada)과 싱가

www.digitaltoday.co.kr

 

 

 

 


2. 블록체인이 소비자에게 적용됐을 때

소비자는 금액이 조금 더 발생하더라도 더 편리한 것, 더 이쁜 것을 선택하는 경향이 있다.

이 부분에서 기업과 조금 다르다고 할 수 있다.

 

전자화폐

실물화폐에서 전자화폐로 변화하는 사회

  • 효율성을 위해 실물화폐에서 전자화폐로 전환되는 추세
  • 중앙은행, 기업 등이 발행 및 원장 관리를 수행 => 불투명한 운영
  • 위변조 위험 존재

 

블록체인 기반 전자화폐

  • 발행은 여전히 중앙화된 기관 또는 사업자가 수행
  • 분산원장(=블록체인)에 기록함으로써 투명성 및 추적성 확보
  • 빠른 정산 가능

 

좋은 예시가 김포페이(지역화폐)

  • 발금된 해당 지자체 관내 가맹점에서만 사용 가능한 화폐 => 지역경제 활성화를 목적으로 함
  • 김포페이는 KT의 블록체인 기반 지역화폐 플랫폼 '착한페이'를 통해 발행
  • 추적이 가능하기에 투명하다
  • 정산이 빠르다

 

 

 

 

유일한 전자 자산(NFT)

블록체인의 불변성을 사용하여 복제 불가능한 디지털 데이터 생성 => 희소성

희소성을 가진 자산은 거래가 가능하다

 

NFT는

  • 상호운용불가
  • 불가분성(NFT를 쪼갤 수 없다)
  • 파괴 불가능성(토큰 제거, 복제 불가능)
  • 검증 가능성

의 성질을 가진다.

 

 

옛날 소리바다처럼 mp3 복제를 막기위해 DRM 기술을 사용하고 있지만 한계가 존재한다.

 

대표적인 예시에는 크립토 키티가 있다.

  • 이더리움 기반의 가상 펫 육성 게임
  • 각각의 캐릭터는 NFT로 발급되어 희소성을 가짐
  • 실제로 거액에 거래된 적이 있음

https://www.coindeskkorea.com/news/articleView.html?idxno=72672 

 

크립토키티 드래곤카드 한장에 10억원, NFT란? - 코인데스크 코리아

대체불가능토큰(NFT)은 세상에 단 하나뿐인 유형 또는 무형의 대상을 나타내는 디지털 자산이다. 예를 들어 수집용 스포츠 카드나 가상 부동산, 심지어는 디지털 운동화 같은 자산도 NFT 형태로

www.coindeskkorea.com

 

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기서 볼 수 있습니다.

 

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.


1. 블록체인 애플리케이션 (BApp)

블록체인 애플리케이션이란?

  • 간단하게 그냥 블록체인을 사용하는 애플리케이션을 BApp이라고 한다.
  • 탈중앙화된 애플리케이션이라는 의미의 DApp과 유사한데, BApp은 탈중앙화, 준중앙화, 완전중앙화 애플리케이션들을 포함하는 개념이다.
  • 블록체인의 특징인 불변성과 투명성을 통해서 기존의 기술로 풀기 어려운 문제를 풀어내는 것이 목적.
  • 특히 신뢰라는 부분에서 큰 비용이 발생하는데 불변성과 투명성이 이를 개선해줌.

 

 

BApp들이 블록체인을 어떻게 활용하나?

  • 결제수단: 가치의 변동이 크기에 조금 문제가 있다.
  • 저장소: 더할수만 있는 저장소
  • 컴퓨터: 누군가를 신뢰하지 않고 항상 같은 결과를 얻을 수 있는 컴퓨터

 

 

 


2. BApp의 유형

1. Fully decentralized

사용자와 블록체인이 직접 통신.

별도의 서버와 서비스에 의존하지 않는다.

 

Fully decentralized = Frontend + Blockchain

 

 

장점.

  • 높은 투명성
  • 신뢰에 필요한 비용 없다
  • 경우에 따라 사용자의 익명성 보장
  • 설치형 BApp의 경우 관리 비용 낮다

 

단점.

  • 사용자 책임 증가
  • 어려운 UX
  • 로직 변경이 어렵다
  • 경우에 따라 사용자가 블록체인에 상시 접속해 있어야하고 블록을 복제할 필요가 있다

블록체인에 있는 데이터들을 스스로 검증해야 하는데 이게 불가능하면 누군가에게 의존해야 한다.

의존한다는 것은 신뢰해야 한다는 것.

 

 

 

2. Semi-decentralized

블록체인과 애플리케이션이 직접 통신하지는 않는다.

중계인이 있다. 중계인이 블록체인과 대신 통신해줌.

블록체인의 투명성과 불변성을 통해서 데이터의 무결성은 확보했다.

이 무결성의 결과를 어떻게 제공하느냐? => 기존 서비스처럼 트랜잭션을 통해 제공해 주는 것

즉 탈중앙화가 반쯤 돼있다.

 

Semi decentralized = Frontend + Blockchain + server

 

 

장점.

  • 높은 수준의 UX
  • 사용자가 블록체인과 직접 통신할 필요 없음
  • 로직 변경이 쉽다

 

단점.

  • 신뢰 비용 발생
  • 서비스가 SPoF된다(Single Point of Failure, 즉 서버가 무너지면 문제 발생)
  • 관리 비용 높다

 

 

 

 

 

참고:

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기서 볼 수 있습니다.

 

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.


1. 스마트 컨트랙트

비트코인은 지루하다. 왜? 사람들과 교류할 수 없기 때문.

그저 비트코인을 주고 받는 것 뿐이다.

But,

스마트 컨트랙트를 통해 사람들과 교류가 가능하다.

 

 

스마트 컨트랙트란?

"서면으로 이루어지던 계약을 코드로 구현하고,

특정 조건이 충족되었을 때 해당 계약이 이행되게 하는 소프트웨어"

 

스마트 컨트랙트를 사용하면 두 당사자가 서로를 모르거나 신뢰하지 않더라도 계약을 체결할 수 있다.

특정 조건이 만족되지 않으면 계약은 실행되지 않기 때문이다.

그렇기에 중계인 없이도 계약을 이행할 수 있다.

 

 

다른 말로 스마트 컨트랙트는 "특정 주소에 배포되어 있는 트랜잭션으로 실행 가능한 코드"다.

블록체인의 상태를 바꿀 수 있는건 오직 트랜잭션 뿐이다.

스마트 컨트랙트는 트랜잭션으로 실행된다.(트랜잭션의 결과가 컨트랙트에 반영됨)

 

 

스마트 컨트랙트는 [함수]+[상태]로 구성되며,

함수는 [상태를 변경하는]+[상태를 변경하지 않는] 함수로 구성된다.

 

 

 


2. 활용

에어비엔비에서 스마트 컨트랙트를 활용한다고 해보자.

에어비엔비라는 중계인이 사라지고 사용자<->집주인으로 연결된다면,

사용자는 돈을 보내고 자동으로 계약이 성사되며 IoT기기를 통해 집주인의 집을 사용할 수 있다

 

테슬라 자율주행 자동차에 스마트 컨트랙트를 활용해보자.

차가 필요한 사람<->자동차 간에 계약을 맺어서 돈을 보내면 자율주행으로 차가 필요한 사람에게 보내진다.

 

핵심은 중계인이 없다는 것이다.

 

 

 


3. 장단점

장점

  • 비용 절감
  • 계약 과정이 간단하며 빠르게 계약이 가능하다
  • 네트워크의 모든 사용자가 계약 내용을 증명 가능하다
  • 코드를 사용한 계약이기에 내용이 모호하지 않다(해석에 따라 오해의 여지가 없다)

 

 

단점

  • 초기 계약 설정이 잘못되어 문제가 발생할 수 있다
  • 코드로 동작하기에 시스템에 결함이 발생하면 문제가 된다
  • 해당 블록체인 네트워크 위에서만 동작한다
  • 조건이 만족되믄 기준이 명확하지 않을 수 있다

 

예를들어, 내일 비가오면(조건) 내기의 상금을 받는다(계약)인데,

비가 오는지 알기위해서는 제 3자를 신뢰해야 한다. 이 경우에는 비 감지 센서나 기상청 데이터 등이 되겠다.

 

 

 

 

 

참고:

 

 

 

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기서 볼 수 있습니다.

 

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.


1. 블록체인의 상태

 

블록체인은 트랜잭션으로 변화하는 상태 기계라고 할 수 있다.

  • 첫블록을 블록0이라고 했을때 이 블록은 초기값이 none이다.
  • 그리고 Changes(트랜잭션)가 일어나며 최종값이 정해진다.
  • 다음 블록1은 블록0의 최종값을 초기값으로 잡고 시작한다. 이 후로 쭉 이어진다.
  • 트랜잭션의 목적은 블록체인의 상태를 변경하는 것

 

 

어카운트(계정)

  • 상태는 어카운트라고 하는 오브젝트들로 구성돼 있다.
  • 각 오브젝트는 주소와 상태변화 내역을 가지고있다.
  • 어카운트는 EOA(External Owned Accounts)와 CA(Contract Account)로 구분된다.
  • EOA는 통상 사용자가 사용하는 어카운트다.

 

 

트랜잭션은 어카운트를 생성하거나 변경한다.

트랜잭션의 sender와 recipient가 있는데 recipient(받는이)가 누구냐에 따라서 트랜잭션의 목적이 나뉜다.

  • 기존에 존재하지 않던 주소로 트랜잭션을 발생시키면 새로운 컨트랙트 배포
  • 기존에 존재했던 주소로 트랜잭션을 발생시키면 보내면 그냥 토큰 교환.
  • CA주소로 트랜잭션을 발생시키면 컨트랙트 실행

 

 

 


2. 가스비

트랜잭션을 참여자들이 받고, 트랜잭션을 블록에 넣기 위해 검증, 실행, 블록으로 묶어서 저장을 해준다.

이 과정에서 비용이 발생한다.

  • 트랜잭션을 받기위해 네트워크를 열어놓는 비용
  • 트랜잭션을 받고 블록에 넣기까지 연산하는 비용
  • 블록으로 묶어서 저장하는 비용

이 비용은 sender가 부담한다. 토큰 보내는 사람이 수수료를 부담하는 그런 느낌.

이 가스비는 블록을 생성한 노드(트랜잭션 처리한 노드)가 수집한다.

 

 

즉, 트랜잭션을 처리하는데 필요한 자원(computing, power, storage)을 비용으로 전환한 것이 가스

 

 

이더리움은 소모되는 가스비를 미리 트랜잭션에 명시하는데 각 노드들은 이것을 보고 가스비가 높은 트랜잭션을 먼저 처리한다. 돈을 많이 준다니깐.

 

 

하지만 결국 하는 연산은 똑같기에 클레이튼은 가스비를 미리 명시하지 않도록 구현돼 있기에 사용자들끼리 경쟁을 하지 않고 선입선출식으로 트랜잭션을 처리하게 된다.

 

 

  • 노드(마이너)는 트랜잭션을 받는다.
  • 트랜잭션 속의 sender를 확인해서 sender의 어카운트에 유효한 만큼의 balance가 있는지 확인한다.
  • balance가 없으면 트랜잭션 거절
  • balance가 충분하면 트랜잭션을 체결(이때 가스비를 받는다)

 

 

 

 


3. 서명

내가 아닌 다른 사람이 나의 어카운트로 트랜잭션을 보내면 그 비용을 내가 지불해야하는 문제가 발생한다.

그렇기에 어느 특정 어카운트를 사용해서 트랜잭션을 발생시키려면 특정 어카운트로 검증할 수 있는 서명이 있어야한다. 트랜잭션은 항상 서명과 함께 움직인다.

 

 

비트코인

  • 공개키로 sender의 주소를 도출해서 sender를 확인.
  • 이걸로 서명도 검증
  • 증명 과정은 간단하지만 sender주소, sender의 공개키, sender의 서명 등 많은 정보를 트랜잭션에 담아야 하기에 비효율

 

 

이더리움

  • 트랜잭션에 sender의 주소 없이 서명만 넣는다.
  • 서명에서 공개키를 도출할 수 있는 어떤 함수가 있다.(노드가 할 수 있다)
  • 도출한 공개키로 만든 주소가 실존하면 검증완료.
  • 하지만 서명에서 공개키를 도출하는 과정에서 연산이 너무 많다. 느려짐.
  • 이게 이더리움이 성능 안좋다고 하는 이유의 3할 정도.

 

 

클레이튼

  • 이더리움 기반으로 만든 클레이튼은 공개키 도출 과정을 병렬화 시켜보았다. 연산량이 줄긴 줄었다.
  • 그래도 문제였기에 그냥 sender의 주소를 포함시켰다. 자세한 이유는 이후 강의에서 아라보자.

 

 

 


4. 트랜잭션

트랜잭션은 이런 구조를 가진다. 

{
    nonce: 1,
    from: '0xd5wef4gr5e4we1wx3e1rg5ce4w1wc3ce4w5a',
    to: '0x5e4f6w58df4e5461xcs21fed54e84x6qw5w1c2',
    value: 10
}
  • from과 to의 값은 내가 아무 텍스트를 입력한 것이다. 
  • 어카운트 기반 블록체인이 nonce값을 사용한다. 어카운트가 몇 번째 트랜잭션을 보냈는지 의미.

 

 

 

이더리움 트랜잭션은 다음과 같은 구조를 가진다.

{
    nonce: '0x01',
    gasPrice: '0x4a817c800',
    gas: '0x5208',
    value: '0xde0b6b3a764000',
    
    to: '0x3563535353535353535353535353535353535',
    v: '0x25',
    r: '0x4sd5f4ef4s2a4cd5dc3s1.......75735sdf7s35sa5',
    s: '0x4s85cs5dc45sc4s54dc2sd5.......sdc54sd5c4d5cs8'
}
  • from이 없다. 160비트 아끼기 위해
  • gas는 instruction을 몇개까지 실행하겠다. 라는 의미
  • gasPrice는 각 gas마다 얼마를 지불할지. 를 의미
  • gas x gasPrice는 총 가격이 나온다.
  • gas x gasPrice의 값 이상이 balance에 있어야 실행된다.
  • v,r,s는 전자서명 부분.

 

 

 

클레이튼 트랜잭션은 다음과 같은 구조를 가진다.

{
    type: 'VALUE_TRANSFER',
    nonce: '0x01',
    gasPrice: '0x4a817c800',
    gas: '0x5208',
    value: '0xde0b6b3a764000',
    
    to: '0x3563535353535353535353535353535353535',
    from: '0x5df4w5e4w6efe8fe1w3e2dwef512sd1f3s2g',
    
    v: '0x25',
    r: '0x4sd5f4ef4s2a4cd5dc3s1.......75735sdf7s35sa5',
    s: '0x4s85cs5dc45sc4s54dc2sd5.......sdc54sd5c4d5cs8'
}
  • 타입과 from이 생겼다.
  • to가 CA인지, EOA인지, 없는지에 따라 트랜잭션의 목적이 바뀐다고 위에 말했었는데,
  • type에 미리 트랜잭션의 목적을 명시해둔다.
  • gasPrice를 사용자가 바꿀 수 없다. (이더리움 트랜잭션 가스비의 1/10 미만)

 

 

 

 


5. 정리

사용자 -> Node

  • 사용자는 트랜잭션을 생성, 서명하여 Node(마이너)에게 전달
  • 이때 데이터 구조를 온전하게 전달하고자 RLP알고리즘으로 트랜잭션 직렬화
  • 사용자와 Node가 같은 프로토콜로 통신하는 것이 중요

 

Node -> 사용자

  • 올바른 트랜잭션 수신시 트랜잭션을 해시로 반환
  • 트랜잭션 체결 시 Receipt(영수증)반환(소요된 gas, 트랜잭션 해시, 인풋 등이 기록돼있다)

 

 

 

 

참고:

더보기

 

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기서 볼 수 있습니다.

 

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.


1. 블록체인이란?

  • 블록은 정보다.
  • 정보를 블록이라고 하는 단위로 저장하고 이 블록들을 이어붙혀서 체인 형태로 저장하는 기술.
  • 블록은 더하기만 가능하고 수정과 삭제가 힘들다.
  • 블록은 [내 블록의 해시값], [이전 블록의 해시값], [내 데이터]로 구성된다.
  • 조금더 자세히 말해보면, 블록체인은 데이터 분산 처리 기술이다.
  • 블록은 개인과 개인의 거래 장부의 역할을 하고, 이를 조작하려면 모든 사람의 장부를 조작해야한다.

 

출처 : 한국전자통신연구원

 

기존 거래 방식

은행이 모든 거래 내역을 가지고있다. A가 B에게 10만원을 송금한다고 하면 은행이 중간역할을 한다.

A가 B에게 10만원을 보냈다는 사실을 증명해줘야 하기 때문이다.

 

우리는 오직 은행만을 신뢰하게 된다. 증명해 줄 곳이 은행뿐이니까. 그렇기에 이 은행에 문제가 생기면 A는 돈을 보냈다는 사실을 증명할 수 없고 결국 돈을 잃는다.

 

 

 

블록체인 방식

블록체인도 거래 내역을 저장하고 증명한다. 단, 은행처럼 한 곳이 전담하는게 아닌 여러명이 나눠서 맡는다.

한 네트워크에 10명의 참여자가 있다면 A가 B에게 10만원을 보낸 내역을 10개의 블록으로 생성해 10명 모두에게 전송, 저장한다. 나중에 거래내역을 확인할 때는 블록으로 저장한 데이터들을 연결해 확인한다. 

 

보안이 탄탄한 한 명이 모든 장부를 관리하는 것이 아닌 모두가 장부를 관리한다. 그렇기에 장부를 조작하려면 한 개만 조작해선 될게 아니다.

 

 

 

 


2. 블록체인의 활용

비트코인의 구조 출처: http://www.smallake.kr/

화폐(Currencies)

  • 이체와 화폐의 기능을 수행하는 전자 화폐.
  • 규제, 감독, 법제화 등 관련된 공인성은 없음
  • 예) 비트코인, 라이트코인, 다크코인, 피어코인, 도기코인 등

자산 등록(Asset Registry)

  • 자산 등록을 블록체인에 기록 하고, 개인키로 자산의 소유권을 주장하는 장부 기능.
  • 블록의 크기가 화폐용 블록보다 상대적으로 크며, 네트워크 성능 저하와 고비용 수반함.
  • 예) 컬러드코인, 옴니, 카운터파티 등

응용 플랫폼(Application Platform)

  • 네트웍상에 존재하는 블록체인에 응용프로그램을 개발하고 작동시키는 플랫폼 역할
  • 아직까지 서비스 초기이기 때문에 취약점이 다수 존재
  • 예) 이더리움, 에리스, NXT 등

자산 중심(Assent Centric)

  • 화폐, 자원. 주식, 채권의 거래를 일부 사용자만 볼 수 있는 공유장부에 기술함. (비트코인은 공개된 장부)
  • 외환 거래, 송금, 결제, 이체를 목적으로 두고 있음.
  • 예)리플, 스텔라

 

 

 

 


3. 해시함수

해시는 전에도 정리했던 적이 있다.

https://llshl.tistory.com/17?category=942551 

 

[Java] 해시/해시테이블이란?

사실 자료구조 카테고리에 맞는 게시글이지만 아직 자료구조 카테고리가 없고 앞으로 딱히 만들 계획이 없기에, 그리고 구현을 자바로 했기에 자바 카테고리에 넣었다! 그냥 그런걸로 하자 ㅎ

llshl.tistory.com

 

  • 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수,
  • 한 개의 인풋은 한 개의 아웃풋만을 가진다.
  • 조금만 인풋이 달라도 아웃풋은 크게 바뀐다.
  • 블록체인에는 Keccak256을 많이 쓴다 카더라(아직 잘 모름)
  • [이전 블록의 해시값]을 통해서 이전 블록을 포인팅하기에 블록의 순서를 알 수 있다.

 

 

 

 


4. 블록 생성 과정

블록 생성 시간 == 거래 소요 시간

  • 블록체인상에서의 장부 작성은 블록체인 네트워크에 참여하고 있는 사람들(이를 노드라고 한다)이 그 기록이 참인지 거짓인지 과반수의 동의를 얻어야 장부에 기록이 된다.
  • 이 노드들은 전 세계적으로 분산되어있고 전세계를 아우르는 하나의 거대한 장부를 형성한다. 따라서 신뢰가 필요가 없이 합의를 통해서 기록이 작성된다. 
  • 가장 많고 가장 빨리 작업을 한 사람이 블록에 기록하고 블록을 생성할 수 있는 투표권을 더 많이 갖는다고 할 수 있다. (작업증명)
  • 합의 알고리즘은 여러 방법이 있고 3개만 알아보자.

 

 

 


5. 합의 알고리즘

합의 알고리즘이란,

  • P2P 네트워크에서 정보의 지연과 미 도달을 통해 잘못된 정보 or 정보의 중복이 발생할 수 있다.
  • 이때 어떤 블록이 정당한지 검토하고 체인에 연결하기 위해 참가자들의 함의를 얻기 위한 알고리즘이다.

 

 

PoW

  • Proof Of Work, 비트코인, 비트코인 캐시, 라이트코인 등이 있다.
  • 누구나 참여 가능.
  • 풀기 어려운 문제를 빨리 해결한 사람에게 블록을 생성할 수 있는 권한을 주고 그 보상으로 코인을 제공하는 알고리즘
  • [앞 블록의 해시] + [Nonce] = [어떤 해시 값]을 만족하는 Nonce를 찾는 문제이다.
  • 난이도라는게 존재하는데 난이도가 4라면 어떤 해시 값은 4개의 0으로 시작하는 값이어야 한다.
  • 즉, Nonce를 빠르게 돌리면서 4개의 0으로 시작하는 해시값이 나오면 Nonce를 찾았다고 할 수 있다.
  • 연산량의 51퍼센트를 한 명의 참여자가 소유하면 블록을 조작할 수 있다. 
  • Nonce를 찾기 위해 전기를 너무 많이 써야한다.

 

 

PoS

  • Proof Of Stake, 대시, 네오 등이 있다.
  • 자신이 네트워크에 얼마만큼의 지분을 가지고 있는지로 판단. 즉 가지고있는 재산에 비례
  • 지분을 많이 가지고 있으면 높은 확률로 다음 블록을 제안할 수 있다.
  • 중앙 집중화를 예방하고 PoW보다 에너지를 절약한다.
  • 코인을 독식한 사람이 너무 강한 권력을 지니게 된다.
  • 그렇기에 PoW와 연계하여 사용한다고 한다.

 

 

BFT

  • PoW와 PoS의 단점인 *파이널리티의 불확실성을 해결한 것
  • 정해진 순번에 따라서 다음 블록을 누가 제안할지 정함
  • 네트워크가 동기화 되어있다. 즉 네트워크 참여자가 누구인지 다 알고있기에 새로운 참여자가 들어가면 작업을 멈추고 동기화를 진행해야한다.
  • 좀 느림

 

* 블록체인이 분기하게 되는 경우 긴 체인이 올바른 것으로 판단한다. 짧은 체인이 버려지는 경우 트랜잭션이 없었던 일이 될 수 있다.

 

 

 

 


6. Public vs Private

  • 누구든지 기록된 정보를 자유롭게 읽을 수 있는가?
  • 명시적인 등록 또는 자격 취득 없이도 블록체인 네트워크에 기록할 수 있는가?

라는 질문에 예라고 답하면 Public/공개형 블록체인이라고 한다.

반대로 정보가 공개돼 있지 않고 미리 자격을 얻은 사람만이 정보를 기록할 수 있다면 Private/비공개형 블록체인이라고 한다.

 

퍼블릭 블록체인은 누구나 접근 가능하고 익명이다.

프라이빗 블록체인은 정보를 비밀로 공유하고 아무나 못들어온다. 또 익명이 아니다.(기업 특화)

 

 

 

 

 

 

참고:

더보기

https://medium.com/@kimjunyong/5-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%95%A9%EC%9D%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-1%ED%8E%B8-pow-pos-dpos-21f8e3b2c22a

 

블록체인 합의 알고리즘 알아보기 1편(PoW, PoS, DPoS)

안녕하십니까 블록체인 알려주는 남자 Ryan KIM 입니다.

medium.com

https://medium.com/b-ock-chain/pow-%EC%99%80-pos-%EC%9D%98-%EC%A0%95%EC%9D%98-962a36d0979

 

PoW 와 PoS 의 정의

안녕하세요 이번에 PoW 와 PoS에 대한 포스팅을 맡게된 Seonmi입니다 :)  앞으로 잘부탁드릴게요!

medium.com

https://www.markany.com/kr/portfolio-posts/%EC%9D%80%EA%B7%BC-%EC%9E%98-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EA%B0%9C%EB%85%90/

 

다 아는 것 같은데 은근 잘 모르는 블록체인의 개념 - 마크애니

다 아는 것 같은데 은근 잘 모르는 블록체인의 개념 ‘블록체인’하면 어떤 게 떠오르세요? 많은 분들이 ‘코인’, 가상화폐를 제일먼저 떠올리실 것 같습니다. 재작년 소위 비트코인광풍으로

www.markany.com

https://wooaoe.tistory.com/19

 

[신기술]블록체인 이란? - 블록체인 개념 이해하기(퍼블릭,프라이빗,컨소시엄,하이브리드)

블록체인은 무엇일까요? 블록체인 이란? 블록체인은 데이터 분산 처리 기술이다. 즉, 네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산, 저장하는 기술을 지칭하는 말이다

wooaoe.tistory.com

https://www.youtube.com/playlist?list=PLKqrwxupttYEcJhWAw0E_5RVpDD9LD6Q- 

 

Klaytn 클레이튼 스마트계약과 탈중앙앱 강의

이 수업은 한양대학교 일반대학원(석사과정) 블록체인 융합학과에서 한 학기동안 진행하게 된 블록체인 플랫폼 클레이튼을 활용한 스마트계약과 탈중앙앱 개발에 대한 수업입니다. 이 강의를

www.youtube.com

 

 

+ Recent posts