본문 바로가기
BlockChain/CodeStates BlockChain 교육

블록체인 질문(4)

by Lalabla 2022. 3. 7.
반응형

채굴이란 무엇인가?

  • 블록체인에서 채굴이란 블럭을 생성한 사람이 받는 일종의 보상을 의미한다. 블록체인은 분산원장기술로 여러 노드(서버)로 운영되고 있는데, 해당 노드들은 보상이 없다면 참여해야 할 가치가 없어지기 때문이다. 노드를 운영하는데에도 운영비, 기술비 같은 비용이 들어간다. 

이더리움에서 블록싱크 방식은 어떻게 되는가?

  • 이더리움에서는 기본적으로 가장 긴 코인을 싱크한다. 그 과정에서 엉클블록(채굴자가 블록을 생성하였지만 인정받지 못한블록)이 생성될 수 있으며, 해당 블록들은 이더리움의 고스트프로토콜 알고리즘(블록 생성 시 정상블록에 최대2개의 엉클블록을 추가하고 채굴자에게 별도의 보상지급)에 의해 처리된다.

이더리움에서 이벤트(logs)는 어떻게 발생되며, 클라이언트에서는 어떻게 감지하는가?

  • 이더리움에서 logs는 트랜잭션과 메세지들이 생성될때 발생되며,  트랜잭션에서는 events를 정의함으로써 로그를 발생 시킬 수 있다.로그는 bloom filter 방식으로 저장된다.
    • bloom filter는 특정 원소가 집합에 속하는지 검사할 수 있는 확률적 자료구조를 의미한다. 해싱함수로 원소의 집합을 전부 해싱해놓고, 해당집합을 모두 더한다.  원소를 찾을때에는 찾을 원소를 해싱하고 해당 집합에서 마스킹되어 있는지 찾는다. 재밌는 점은 집합에 속해있지 않은 원소도 가끔 존재한다고 인식할 때 가 있을 수 있기 때문에 확률적 자료구조라고 하는 것 같다. 

이더리움에서 Receipts정보는 용도가 무엇이며 언제 pruning 되는가?

  • 이더리움에서 Receipts는 컨트랙트에 대한 영수증을 의미하며, 컨트랙트가 수행되면 해당 컨트랙트가 수행된 블록의 정보(번호, 블록 이 해시값, 트랜잭션 해시값, 트랜잭션에서 사용된 gas, 트랜잭션을 실행하면서 생성된로그들)이 담겨져 있다. 
  • pruning은 가지치기를 통하여 저장공간은 줄여주는 방식을 의미하는데, 이더리움에서 states는 항상 최신 상태만 유지하지 않고 과거 히스토리까지 보관한다. 노드간 합의가 되어 블록이 생성되어도 아직 확정되지 않은 경우 분기될 가능성이 있고, 분기가되면  롤백을 해야할 수 있기 때문이다. 블록이 확정되면 pruning을 통해 히스토리가 삭제되고 저장공간을 줄여준다.

하이퍼레저 패브릭에서 리더피어와 앵커피어란 무엇인가?

  • 리더피어는 orderer와 연결되어 최신 블록을 전달받아 조직 내 다른 peer에게 전송하는 역할을 한다.
  • 앵커피어는 다른 조직의 peer와 통신하는 역할을 한다.

트랜잭션에서 Two Phase Commit 이란 무엇인가?

  • Two Phase Commit은 코디네이터(트랜잭션 관리자)를 별도로 두어 트랜잭션을 2단계에 걸쳐서 커밋하는 방법을 의미한다.
  • 1단계는 코디네이터가 다른 노드들에게 트랜잭션 처리를 할 수 있는지 물어보고 각 노드들의 상황을 확인하여 커밋을 할지 롤백을 할지 정한다. 
  • 모든 노드들이 트랜잭션을 받을 수 있는 상황이면 2단계에서 커밋 요청을 전송하고 수행한다. 

소위 응용레벨에서 RPC 방식과 스트리밍 방식의 차이점은 무엇인가?

  • RPC는 별도의 원격제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스 간 통신을 의미한다. 
  • 스트리밍 방식은 데이터 전체를 한번에 보내지 않고, 일부분을 조금씩 보내는 전송 방식이다. 넷플릭스,유튜브 같은 영상 스트리밍 서비스를 예로 들 수 있는데, 해당 영상을 시청할 때 영상이 끊기지 않는 이유도 바로 여기에 있다.

동기, 비동기, 블록킹, 논블록킹은 무엇이라고 생각하는가?

  • 동기는 동시에 어떤 사건이 발생한다 라는의미로 요청과 결과가 동시에 일어난다는 것을 의미한다. 동기는 어떤 사건이 발행하면 그 사건이 끝날때 까지 대기하고 있어야 한다.
  • 비동기는 동기와는 요청과 결과가 동시에 일어나지 않는것을 의미한다. 비동기는 어떤 사건이 발행하면 끝나지않아도 다른 사건을 처리할 수 있다.
  • 블록킹은 직접 제어할 수 없는 대상의 작업이 끝날때 까지 제어권을 넘겨주지 않는 것을 의미한다. 프로세스가 시스템을 호출하고 나서 결과가 반환되기까지 다음 처리로 넘어가지 않는 것을 의미한다.
  • 논블록킹은 블록킹과 반대되는 개념으로, 시스템을 호출한 직후에 프로그램으로 제어가 다시 돌아가서 시스템의 호출종료를 기다리지 않고 다음 처리로 넘어갈 수 있는 것을 의미한다.

블록체인 네트워크에서 하나 이상의 블록을 제거할 수 있는가?

  • 블록을 제거하는 것을 불가능하고, 불록에 문제가 생기면 하드포크, 소프트포크를 통해 문제가 생긴 블록의 정보를 처리할 수 있다.

오프체인이 무엇인가요? 오프체인 트랜잭션은 어떻게 구성되어있는가?

  • 오프체인은 메인 블록체인이 아닌 체인을 의미한다. 메인 블록체인에 데이터가 올라가기전에 오프체인에서 트랜잭션을 처리하고 핵심 데이터만 블록체인에 올리는 것을 의미한다. 대표적으로 라이트닝 네트워크, 이더리움 플라즈마가 있으며  컨트랙트에 보증금을 걸어 놓고 트랜잭션을 수행하고 난 후 남는 보증금을 돌려주는 방식으로 운영된다. 

블록체인에 작성된 데이터는 immutable한가?

  • 블록체인는 기록된 각각의 데이터가 체인형태로 구성되어 있고 각각의 체인들끼리 정보를 공유하고 있기 때문에 새로운 블록을 연결하는 것 말고는 위변조 하는것은 거의 불가능하다. 그리고 블록체인은 분산 장부로 여러 노드들이 해당 블록체인을 공유하고 있기 때문에, 비트코인의 경우 위조된 블록체인을 51%의 노드가 보유하고있어야 변경되므로 immutable하다고 볼 수 있다. 

하드 포크와 소프트 포크는 무엇인가?

  • 하드포크는 기존 체인에서 새로운 체인으로 넘어가는 것을 의미한다. 하드포크가 일어나면 포크가 일어나기 전 체인과, 일어난 후 체인의 통신은 불가능 하다. 
  • 소프트 포크는 기존체인에 약간의 수정사항만 업데이트 한 후 계속 기존 체인을 이용하는 것을 의미한다. 소프트 포크가 일어나도 기존체인과 포크 이후 의 체인은 같은 체인으로 볼 수 있다. 

블록은 어떻게 식별하는가?

  • 각각의 블록은 고유의 해시값을 가지고 있고, 해당 해시값을 통해 블록을 식별할 수 있다. 또한 해당 블록에는 부모와 자식블록에 대한 주소가 저장이 되어 있어 연결된 블록을 확인할 수 있다. 
반응형

'BlockChain > CodeStates BlockChain 교육' 카테고리의 다른 글

Project - Blockchain Community(2022.04.19~ 2022.05.02)  (1) 2022.05.02
블록체인 질문(8)  (1) 2022.03.14
블록체인 질문(3)  (1) 2022.03.04
블록체인 질문(2)  (0) 2022.03.03
블록체인 질문(1)  (1) 2022.03.02

댓글