블록체인 출제 예정인 문제를 알려주시고, 설명해주심.
블록체인 백서 해석 및 설명.
Minting 하는 방법.
- 블록의 정의를 설명하세요.
- 일정량의 데이터를 저장해놓은 자료구조 or 일정량의 데이터를 담아놓은 기본적인 단위.
- 거래정보와 메타데이터를 각각 담은 가장 기본적인 단위.
- 블록의 구조를 설명하세요.(최대한 자세하게)
- 헤더가 있고, 바디가 있는데 헤더에는 각각 버전,비츠,이전블록해시,시간,머클해시,논스값의 6가지 요소가 있고, 바디에는 트랜젝션들이 있고, 이것은 헤더의 머클루트값을 형성한다.
- 블록을 특정할 수 있는 요소 2가지를 설명하세요.
- 블록번호와 블록헤더해시값.(참고로 머클루트 해시를 쓰시는 분들도 계심. 맞기는 하지만 보통은 앞에 두가지를 사용.)
- 블록체인의 정의를 한문장으로 설명하세요.
- 탈중앙화된 네트워크 시스템에서 작동하는 분산원장 기술이다.
- 블록체인 특징 7가지 중 3가지를 선택해 설명하세요.
- 익명성 : 거래에는 공개키 혹은 지갑 주소만이 사용되어 실제 사람의 신원을 알 수 없다.
- 추적가능성 : 모든 거래에는 공개키 혹은 지갑 주소가 사용되고 기록된다.
- 무신뢰성 : 신뢰받는 제 3기관은 블록체인에서 존재하지 않는다. 거래를 하는 상대방도 믿지 않아도 된다. 시스템 자체가 신뢰를 담보한다.
- 분산원장 : 시스템 내 모든 참가자들은 거래의 정보를 기록하고 있다.
- 탈중앙화 : 전통적인 네트워크 시스템과 달리, 블록체인에는 중앙화된 주체가 존재하지 않는다.
- 합의 알고리즘 : 동등한 권한의 다수가 참여하기 때문에, 옳은 정보를 결정하는 규칙이 필요하다.
- 변경 불가능성 : 한번 블록체인에 정보가 들어가면 쉽게 바뀌지 않는다.
- 블록체인에는 두가지 종류의 참여자가 있습니다. 각 참여자의 이름과 정의를 설명하세요.
- Reader : 블록체인의 정보를 읽기만 하는 사람(유저).
- Writer : 블록체인의 정보를 기입하는 사람(채굴자).
- 블록체인의 종류는 두가지로 나뉠 수 있습니다. 기준에 따라 나뉘어진 블록체인의 이름을 작성하세요.
- 퍼블릭 펄미션리스(Permissionless)
- 퍼블릭 펄미션드(Permissioned)
- 프라이빗 펄미션리스(Permissionless)
- 프라이빗 펄미션드(Permissioned)
- 7번문제에서 언급한 종류들이 나뉘어지는 기준을 설명하세요.
- 퍼블릭이나 프라이빗은 리더의 억세스를 제한하느냐 마느냐
- 펄미션드 펄미션리스는 리더 혹은 라이터 둘 중 하나라도 억세스를 제한하느냐 마느냐
- 7번문제에서 언급한 예시를 하나씩 드세요.
- 퍼블릭 펄미션리스(Permissionless) : 비트코인
- 퍼블릭 펄미션드(Permissioned) : 이오스, 클레이튼, 솔라나
- 프라이빗 펄미션리스(Permissionless) : 존재x
- 프라이빗 펄미션드(Permissioned) : R3코다?, 하이퍼렛져?
- 중앙화된 네트워크와 탈중앙화된 네트워크의 차이점에 대해 설명하세요.
- 중앙화는 특정 한 주체에 권한이나 책임이 몰려있고, 탈중앙화는 반대로 권한과 책임이 분산되어 있다.
- 채굴이란 행동의 의미를 사용자, 채굴자, 시스템관점에서 설명하세요.
- 사용자관점 : 채굴을 진행함으로서 거래가 최종적으로 마무리가 되는것을 의미.
- 채굴자관점 : 돈을 벌수있는 행위.
- 시스템관점 : 체인의 길이가 지속적으로 길어짐으로서 시스템의 발전에 의미를 가지고 있다.
- 합의알고리즘이 필요한 이유에 대해서 설명하세요.
- 합의알고리즘은 탈중앙화된 네트워크이기 때문에 옳은정보가 무엇인지 결정할 수 있는 주체가 정해져 있지 않고, 그렇기에 복수의 서로 다른 노드들이 옳은정보가 무엇인지 결정해주는 규칙이 필요하다. 그래서 합의알고리즘이 필요.
- 논스, 블록해시값, 타겟값의 관계를 설명하세요.
- 논스 : 계속 돌아가는 값(바뀌는 값)
- 블록해시값 : 블록헤더와 논스를 기반으로 결정되는 값.
- 타겟값 : 올라가기도 하고 내려가기도 하는 10분마다 1개씩 나오도록 도와주는 값.
- (키워드가 안정해진 변경 이하 채굴성공, 이런식으로 키워드를 주면 키워드와 논스, 블록해시값, 타겟값의 관계를 설명하면 되는 식으로 문제가 나온다고함.)
- 답변을 블록헤더에서 안정해진 논스값을 이용해서 지속적으로 변경을 시키면 그에 따라서 블록해시값도 같이 변경이 되는데 타겟값보다 낮은 블록해시값을 찾게 되면 채굴에 성공을 하게된다. 라고 답하면 됨.
- 채굴자가 갖는 보상 2가지를 말하세요.
- 거래수수료, 블록보상
- 거래의 구성요소 4가지를 설명하세요.
- 보내는사람, 받는사람, 보내는비용, 수수료(송신자, 수신자, 전송량, 수수료)
- 빈칸을 채워 넣으시오.
- 거래가 검증되기 위해서는 거래가 A에 포함되어야 한다. A는 B에 포함되어야 한다. A에는 용량제한이 있다. 채굴자 입장에서는 C가 D한 거래를 먼저 포함시킨다.
- A : 블록
- B : 블록체인
- C : 수수료
- D : 높은
- 상황에 맞게 머클트리를 구성하고, 머클루트값을 반환해주세요.
(3개 ~ 11개 랜덤하게 문제를 제시해주실 예정.)
- 없는경우 복사해서 넣고 올리고, 다시 위로 올려서 최종값을 얻을 수 있도록.
- 아래의 거래는 A채굴자가 채굴한 블록안에 있는 거래들입니다. 문제에 대한 답변을 구하세요. 블록보상은 5입니다.
- 블록보상은 5이고, A가 B에게 얼마를 보냈고, 수수료 얼마 등으로 표현해서 작성하면 됨.(수수료를 다 더한것과 블록보상을 합쳐주면 됨.)
- ex) 보내는 양은 1이고, 수수료가 0.2면 보내는 사람은 1.2가 깎이고, 받는사람은 1이 늘어난다. 나머지 0.2는 채굴자에게 돌아간다.
- 지갑의 용도를 설명하세요.
- 키(개인키, 공개키)를 보관하는 용도.
- 개인키와 공개키의 용도를 각각 설명하세요.
- 개인키 : 돈을 보낼때, 내 돈을 쓸때 사용. (개인키로부터 생성된 디지털 서명을 코인을 소비할 때 사용.)
- 공개키 : 내 돈을 받을때 사용. (공개키로부터 형성된 비트코인 지갑주소를 돈을 받을때 사용)
- 암호화와 복호화의 목적을 각각 설명하세요.
- 암호화 : 평문을 남들이 보지 못하게 함수를 이용해서 암호문으로 바꾸는 것이 목적.
- 복호화 : 암호문을 다시 평문으로 바꾸는 것이 목적.
- 단방향암호화, 양방향암호화에 대해서 설명하세요.
- 단방향암호화 : 평문에서 암호문으로 가는것만 가능.(복호화 불가능.)
- 양방향암호화 : 평문에서 암호문으로 암호문에서 평문으로 오는게 가능. (복호화도 가능.)
- 양방향암호화의 종류 2가지를 각각 설명하세요.
- 공개키/비공개키 방법
- 대칭키/비대칭키 방법
- 두방법의 차이점은 암호화, 복호화를 할때 같은키를 쓰느냐 다른키를 쓰느냐
- DES암호화를 이용해 통신하려고 합니다. 이 과정을 자세하게 서술하세요.
- 1단계 송신자는 평문을 암호화해서 암호문으로 만든다.
- 2단계 암호키를 공유한다.(비공개적으로)
- 3단계 수신자는 같은 암호키로 암호문을 복호화해서 평문으로 만든다.
- RSA암호화 방식을 설명하세요.
- 수신자가 개인키와 공개키를 형성을 하고, 공개키를 송신자에게 전달한다. 송신자는 수신자의 공개키를 이용해 평문을 암호화하고, 암호화된 내역을 수신자에게 전달한다. 수신자는 자신의 개인키를 이용해 복호화한 후 평문을 확인한다.
- SHA256의 자리수를 설명하세요.
- SHA256을 2진수로 표현하면 256자리, 16진수로 표현하면 64자리.
- SHA512는 2진수 512자리, 16진수 128자리
- 해시충돌이란 무엇인지 설명하세요.
- 해시함수에 서로 다른 인풋을 넣었는데 같은 아웃풋이 나왔을 때 이것을 해시충돌이라고 한다.
- 해시충돌일 일어날 수 밖에 없는 이유는 설명하세요.
- SHA256은 256비트이고, 16의 64자리로 아웃풋값을 정해져 있는데 인풋값의 경우 무한대이다 보니 비둘기집 원리에 의해서 언젠가는 서로 다른 인풋이 들어갔을때 같은 아웃풋이 나온다.
- 다섯명의 참가자가 있습니다. 가장 옳은 체인이 무엇인지 결정하세요.
- A = 체인길이 10, B = 체인길이 8, C = 체인길이 8, D = 체인길이 8,
E = 체인길이 9
- 일때, 가장 긴체인이 옳은 체인이라면 5개의 체인 중 A체인이 옳은 체인이다.
- 다수결이라면 B,C,D가 옳은 체인.
- 51%공격에서 51%가 의미하는것은 무엇일까요?
- CPU파워 or 해시파워 or 연산력
- 어떤 집단이 해시파워의 30%를 보유하고 있다. 해당 집단이 다음 블록을 채굴할 확률은 몇퍼센트일까요?
- 30% (보유하고 있는 파워만큼의 확률이라고 보면 된다.)
- 해시파워의 30%를 보유하고 있는 집단이 두번 연속 블록을 채굴할 확률은 몇퍼센트일까요?
- 9% (0.3 x 0.3을 해주면 됨. 30% x 30%)
- 생성주기보다 빠르게 생성되면 난이도가 올라가나요? 내려가나요?
- 올라간다.(반대로 느리게 생성되면 난이도는 내려간다.)
- 비트코인은 10분마다 생성이 된다고 되어있는데 난이도가 변경되는 평균 주기는 얼마인가요?
- 2016개 블록마다.(14일정도)
- pay to public key hash(PToPKH) 거래방식에서 거래방식이 2가지로 나뉘어 있다. 어떤 두종류의 스크립트가 있는지 설명하세요.
- 락킹스크립트, 언락킹스크립트
- 내가 누군가에게 비트코인을 받으면 (락킹상태)
- 받는사람의 공개키로 락킹이 되어있음.
- 내가 누군가에게 전송을 하려고 하는데 소유권을 증명한 상태다.
- 소유권을 증명한 상태는 언락킹상태.
- 누군가에게 보내려면 누군가의 공개키로 락을걸어 보내면 됨.
- 누군가는 그걸 확인하려면 자신의 개인키로 언락킹상태로 만들면 됨.
- 지갑주소 잔액은 어떻게 도출이 되나요?
- UTXO들의 합.
강사님께서 말씀해주신 부분을 정리해보았는데 사실 맞게 정리한건지 모르겠다; 다행히 두번 반복해주셔서 처음 작성했던 부분에 모르고 지나갔던 부분들을 추가해서 내용을 적긴 했는데 아마 문제를 틀리면 다시 알려주실거라고 생각해서 이정도로 알아두면 되지 않을까 싶다.. 머리아프다;