블록체인의 개념과 관련 용어들에 대해 공부하고 정리해보자.
Web 3.0
web의 역사
-web 1.0시대 : 90년대 초~2000년대 중반, read only
-> 유저와의 상호작용이 없고, 정보전달의 목적이 강함.
-web 2.0 : 2000년대 중반 ~ 현재, read&write
-> 유저들이 컨텐츠를 자유롭게 올리고 수정 가능, 기업들이 데이터를 독점하고 활용함.
web 3.0
2세대의 문제점으로 지적되고 있는 중앙화, 보안문제를 해결하고자 탄생(특정 플랫폼 기업이 데이터를 가지고 있기때문에 해당 기업의 보안이 뚫리면 개인정보 유출 문제가 발생할 수 있음)
read & write & own
블록체인기술로 데이터를 분산 저장 -> 데이터를 중앙 서버가 아닌 네트워크에 참여한 모두에게 나눠주는 기술이다. 이 기술을 위변조하려면 과반수의 장부를 해킹해야 하기때문에 기록을 안전하게 보관할 수 있다.블록체인의 동작원리
각 블록은 데이터, 해당 데이터의 해시값, 해당 블록의 바로 이전 블록의 해시값을 가지고 있다.해시
어떤 블록을 고유 식별하는 값으로 해당 블록과 그 안에 있는 내용의 고유값이다. 매 생생된 블록마다 그 블록의 해시값이 계산된다. 만약 블록 안에 있는 데이터를 변경하면 해시값도 완전히 다른 값으로 변경된다.이전 블록의 해시값
이전의 모든 블록들을 하나의 사슬로 묶어준다.
어떤 블록의 데이터를 조작하면, 이 블록의 해시값이 변경된다.
다음 블록에 기록되어있는 직전 블록의 해시값이 다르기 때문에 무효가 된다. -> 블록체인이 조작, 해킹이 어려운 이유
*블록체인 안전성을 높이는 다른 방법
: 컴퓨터의 해시값 계산이 빠르기때문에 블록을 조작한 후 다른 블록의 모든 해시를 재빨리 재계산할 가능성도 있다.
이를 방지하기 위해서 새로운 블록을 만드는데 걸리는 시간을 10분이 소요되어 시간을 지연시킨다.
블록체인 기본용어
메인넷
기존 플랫폼(이더리움, 솔라나...)에 속하지 않고 프로젝트를 수행할 수 있는 '독립적인 플랫폼'으로서 블록체인 프로젝트가 출시되면 해당 프로젝트를 구현하게 해주는 네트워크
블록체인 종류
퍼블릭: 누구든지 블록체인 네트워크에 참여가 가능하다. 많은 사람들이 함께 참여하기 때문에 투명성이 강하고, 보안에 특화되어 있다. 하지만, 많은 사람들에 의해 합의가 진행되고 전체 네트워크에 전파하여 동기화해야하기 때문에 속도가 느리다.
ex) 비트코인, 이더리움, 모네로 등
프라이빗: 허가받은 특정대상에게만 공개된다. 신뢰할 수 있는 사람들만 참여하여 트랜잭션 속도가 빠르다. 소수에 의해서 합의가 진행되기 때문에 일부 중앙화가 되어 보안성이 낮을 수 있다.
ex) Hyper ledger fabric, R3 CORDA 등
하이브리드: 퍼블릭 + 프라이빗 유연하게 혼합한 블록체인
모든 거래는 비공개로 진행할 수 있으며, 필요할 때에는 검증 가능성을 위해 거래 내역을 개방할 수 있다.
ex) 클레이튼
DApp(Decentralized Application)
블록체인 메인넷을 기반으로 동작하는 서비스
암호화폐(토큰/코인)
블록체인 네트워크에서 거래가 기록된 장부를 검증하고 연결하는 대가로 검증자(노드)에게 주어지는 보상
토큰: 독자적인 메인넷 x (다른 블록체인 네트워크 기반을 사용)
코인: 독자적인 메인넷 o
block confirmation
코인을 전송하게되면 일종의 확인절차를 거치게 되는데 이것을 'confirm'이라고 한다. 각 코인마다 정해진 컨펌의 횟수가 채워지면 전송이 완료된다. 하나의 블록이 생생되어 기존의 블록에 연결될 때 이때 해당 거래에서 첫번째 컨펌이 발생한다. (비트코인 6컨펌-컨펌당 10분, 이더리움 12컨펌)
DLT(분산원장기술)
거래정보를 기록한 원장을 중앙회된 서버가 아닌 분산화된 네트워크에 참여자 모두에게 저장 및 관리하는 기술로 블록체인은 분산원장기술이지만 모든 분산원장은 블록체인은 아니다.
ERC-20
Ethereum Request For Comment 20의 약자로써 이더리움 블록체인 네트워크에서 발행되는 토큰의 표준을 말한다. 제안서를 제출 후 사람들의 합의에 의해 통과되어 인터넷 표준이 되는 것을 RFC라고 하는데 ERC는 이더리움 RFC로 이더리움의 표준이 될 만한 내용들이다.
Wallet
블록체인과 훨씬 쉽게 상호작용할 수 있게 해주는 소프트웨어로 코인을 보관하는 1차적인 보안이 적용된다.
메타마스크나 카이카스 등의 지갑을 만들면, 지갑의 주소(public key)
와 키(private key)
가 발급되고, 키 오너는 해당 지갑에 대한 접근 권한을 얻는다. 주소는 공개키에 해당하며, 은행의 계좌번호와 같은 역할을 한다. 키는 개인키에 해당하며 계좌의 비밀번호와 같다. 공개키와 개인키는 한 쌍을 이루며, 지갑에는 여러 쌍이 존재할 수 있다.
ㅣㅡ public key: 누구에게나 공유가능하며, 코인을 전송받을 때 사용된다. 또한 거래 내역의 유효성을 판단할 수 있다.
ㅣ
ㅣㅡ private key: 비밀유지되야 하는 키로 256비트의 난수(random number)로 구성된 값이다. 개인키를 통해 공개키를 생성한다.(반대의 경우는 불가능) 개인키를 한번 분실하게 되면 다시는 찾을 수 없고 개인키로 묶인 코인 역시 찾을 수 없기 때문에 주의가 필요하다.
주소
공개키로부터 생성되며, 숫자와 문자로 구성되어 있으며 '1'로 시작한다. 비트코인 주소는 외부에 공개되는 주소이며, 코인을 주고받기 위해 사용된다. 주소에서 공개키를 알아내는 것은 불가능하다.
*메타마스크: 이더리움 기반 암호화폐 및 토큰을 주고받을 수 있는 지갑
콜드월렛
암호화폐를 보관하기 위한 오프라인 데이터 저장 장치. 암호화폐 시스템 자체를 해킹하는 것은 불가능하지만 가상자산을 담아두는 거래소의 사용자 계정 및 지갑은 소유자 개인이 관리하는 방식이기 때문에 해킹의 대상이 될 수 있다.
콜드월렛은 인터넷에 연결되어 있지않는 오프라인 데이터 저장 장치이기때문에 바이러스나 백도어 프로그램 등 해킹 요소에 영향을 받지 않는다.
DID
블록체인 기술을 기반으로 한 분산 신원증명 기술을 말한다.
기존에 기술적으로 스마트폰에 담을 수 없었던 운전면허, 자격증 등은 필요할 때마다 증서를 발급받아 번거롭게 제출했었다.
DID는 탈중앙화된 ID를 부여하여 스마트폰에 저장해서 위조가 불가능한 증명을 가능하게 해준다.
실제로 백신접종증명서에 DID를 활용했었음.
DID Syntax
하나의 DID는 문자열로 표현가능하며 3개의 부분으로 이루어져 있다.
did:sov:2k9dwkjrwioweio7a
scheme: method: DID Method-Specific Identifier
세미콜론으로 구분가능하며, 맨 처음 부분이 Scheme
- 문자열이 DID임을 나타내는 prefix, 항상 did
DID Method
- DID document가 어떻게 생성되고 업데이트되는지를 정의한 것
DID Method-Specific Identifier
- 메소드 내에서 사용되는 식별자