"기술이라는 거대한 흐름은 반드시 일어난다. 내가 동의하지 않아도"
업무 진행 중 내가 모르는 용어가 너무 많아, 화면의 플로우가 이해가 되지 않는다.
많은 정도가 아니라 아는 용어가 없다! 정말 새로운 세계에 떨어진 것 같다.
나는 그동안 조금씩 "일"을 하고 있다고 생각했고, 슬슬 서비스의 흐름을 알 것 같다고 생각했다.
이 회사에 오기 전까지는 그랬다!
용어를 모르니 업무 지시의 목적을 모르고,
업무지시의 목적을 모르니 일처리의 결과가 만족스러울 리가 없다.
그간 어설프게 작은 앱이나 만들면서 무슨 성취를 하고, 무슨 일을 하고있다고 생각한걸까?
나는 개굴거리기만 했구나.
선배들의 멋진 말(?)을 들으며 멍때리고 있자니 내 멍청함에 미쳐버릴 것 같다 😡😡
블록체인 산업은 관심 있었던 부분이었는데, 복잡해보여 못본 척 넘어갔었다.
이참에 제대로 정리해보자.
어떻게든 이해하고 말거다. 나도 회의 내용을 이해할 거야.
하다보면 개구리도 할 수 있을 거야! 🐸
블록체인 시리즈를 제대로 시작하기 전에, 용어와 개념을 간단하게 훑고 가면 시리즈 이해에 큰 도움이 될 것이다.
자금 거래 및 이에 상응하는 비즈니스를 하는 금융기관과 관련회사들은 반드시 KYC
와 AML
규정을 준수해야 한다.
KYC(Know Your Customer)
고객인증제도. 고객에 대해 기본정보를 확인해야 한다
자금지불 능력이 있는지, 나중에 파산여부 가능성 등 또한 들어다봄
KYC는 AML의 세부항목이기도 하지만, AML과 무관하게 반드시 이루어져야하는 절차이다.
보통 암호화폐 지갑 생성시에는 익명이 기본이기 때문에 KYC를 하지 않았으나, 한국에서는 법적으로 본인인증이 필수가 되었고 해외 지갑들 또한 KYC를 도입하는 추세다.
CDD(Customer Due Diligence)로도 알려진다.
AML(Anti-Money Laundering)
자금세탁방지, 테러지원여부등 관련 금융위험을 방지하고자 자금의 출처 및 최종 수령인에 대한 분석, 확인을 하는 절차이다
자금세탁 방법으로 마약, 골동품, 미술품, 보석, 고가자동차, 부동산, 사치품 등이 사용되어왔고 최근엔 대표적으로 암호화폐 또한 이름을 올리고 있다.
KYC와 AML을 처리할 수 있는 적절한 시스템을 갖추어야 한다.
이를 준수하지 않으면 각국정부는 해당 기관을 제재할 수 있다.
=> 암호화폐 거래소는 이 같은 기본 규정을 자체적으로 마련하지 않았기 때문에, 관리수준이 구멍가게 수준이라는 평가를 받는다.
한 블록체인 기반 헬스케어 플랫폼 업체가 등록한 KYC 등록이 실패했을 경우를 보자.
등록 실패의 이유
AML 검증
)등록 실패 했을 경우
블록패스(Block Pass)
란, 블록체인(Blockchain)과 패스(Pass)의 합성어로 기술을 만들어낸 회사 이름과 등일하다.
블록패스는 한 번 인증된 사용자의 신원을 기억했다가 앞으로 진행하는 모든 신원인증 절차가 발생할 때 불러온다.
이는 상점을 포함해 모든 B2C 기업들이 필요한 KYC(Know Your Customer)
구축에 드는 기업의 비용 절감과 동시에 고객 시간 절약의 이점이 있다.
그리고 AML(Anti Money Laundaring)
규정 준수에 필요한 모든 조건에 고객과 기업이 모두 부합할 수 있도록 돕는다.
블록패스는 PASS라고 불리는 유틸리티 토큰으로 순환되는데, KYC 간소화를 위해 사용하는 사용자와 기업들에게 주어지는 보상 토큰이다.
ID를 토큰에 완전히 통합시켜 안전하게 신원을 보관, 검증한다.
block + chain
데이터베이스.
데이터가 블록에 담겨있고 블록들이 해시를 통해 연결되어 있다.
해시 알고리즘
을 활용해 체인처럼 모든 블록들이 연결된 분산 저장 알고리즘
이다.블록을 검증
하고, 모두 합의가 되었을 때 비로소 블록이 생성
된다.동시검증 방식
으로 인해 데이터의 위변조가 불가능
하며 권위있는 중개기관이 없더라도 신뢰할 수 있는 안전한 거래와 데이터 처리를 할 수 있다.이러한 기반에서 새로 생겨난 생테계와 그 경제 모델 등을
Web 3 생태계
라고 한다.
- Web3에 대한 자세한 내용은 세상을 바꿀 Web 3.0
검증은 왜 필요한가?
거래내역을 위조할 수 없게 하기 위해서.
블록체인 데이터베이스는 모든 사람이 접근하여 작성할 수 있다. 이 데이터베이스를 거래장부라고 할 수 있는데, 거래장부에 모든 사람들이 접근하여 거래를 기록할 수 있다면 큰 혼란이 일어날 것이다.
이런 일을 방지하기 위해 거래내역을 위조할 수 없도록 검증이 필요하다.
아래에서 좀 더 자세히 알아보자.
블록체인은 Append only
.
이 데이터베이스에는 추가만 가능하고, 편집이 불가능하다
블록체인은 탈중앙화
가 가능하다.
특정 개인이 DB를 관리할 수 없음. 모두가 DB의 복제본을 가지고 있기 때문에, 거짓말이 통하지 않음.
그래서 분산된 DB
이기 때문에 크립토를 감시하거나, 통제하기 힘들다.
너무 많은 사람들이 비트코인 노드를 돌리고 있고, 모두가 정확하게 동일한 DB 복제본을 가지고있기 때문에!
(모두가 동시에 컴퓨터를 끄면 죽을 수 있겠지만)
덕분에 cryptocurrency들이 정부의 감시나 통제에 대응할 수 있다.
"블록"은 정보를 DB에 추가하는 방법.
데이터를 그냥 적어서 추가하는 것이 아니라, "블록"이라는 것으로 추가.
비트코인의 경우, 10분마다 블록이 생성됨.
블록에는 중요한 정보들이 많음.
한개의 인풋을 받으면 한개의 아웃풋을 주는 수학 함수.
일방향 함수
이고, 결정론적
이다.
결정론적
일방향 함수
=> 이것이 바로 블록들이 서로 연결된 방법이자, 블록의 체인을 만드는 것.
내가 블록이고, 빗코 블록체인에 추가되고 싶다면?
내 데이터
, 빗코의 거래내역(트랜젝션)을 모은다이전 블록의 해시
필요내 데이터
+ 이전 블록의 해시
합쳐서 다시 해시=> 이 과정을 거쳐야 내 해시가 생긴다!
이제 블록체인에 블록을 추가할 수 있다.
모두 다 이전 해시와 같이 결합을 한다!
이런 방법으로 체인이 결성된다.
누군가가 1번 블록에서 데이터를 수정한다면, 인풋이 바뀌었으니 아웃풋이 몽땅 바뀌어버린다!
그래서 누구도 이 블록체인을 변경할 수 없는 것.
현실에서는
" 타인의 서명을 완벽히 흉내낼 수 없다 / 도장을 잘 관리한다 "
는 전제하에 자필 서명 또는 도장을 찍는다.
하지만 모든 것을 복붙할 수 있는 인터넷에서는 어떻게 할까?
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
블록체인은 트랜잭션을 블록 단위의 체인 형태로 저장하는 기술이다
비트코인에서 거래를 하기 위해 보내는 주소, 받는 주소, 금액, 수수료 등의 정보가 작성되며 이 정보를 담는 것이 바로 트랜잭션 데이터
.
블록체인에 대한 자세한 내용은 블록체인(Block chain) - 블록체인(Block chain) 포스팅에서
= 공개키 알고리즘
비트코인을 포함한 암호화폐들이 이 방식을 사용한다.
클라이언트에서 거래를 하면 거래내역이 생성되고,
클라이언트는 이 거래내역을 노드에 전송해 검증
을 맡긴다.
노드가 검증을 수행하기 위해서는, 그 거래내역 안에 전자서명
이 포함되어야 한다.
모든 클라이언트는 공개키
와 비공개키
가 있는데,
비공개키로 암호화한 데이터(거래내역 등)은 공개키로만 해독할 수 있다.
이미지 출처 - Mastering Bitcoin Ch04
비공개키를 타원곡선 곱셈함수로 돌리면 공개키가 나오고,
공개키를 해시함수로 돌리면 주소가 나온다.
이 그림에서 주목할 점은 일방향이라는 것이다.
비공개키로 공개키를 알 수 있지만, 공개키로 비공개키를 알 수 없다.
거래내역을 바로 비공개키로 암호화하는 것이 아니라,
비공개키를 해시함수로 돌려서 해시값을 뽑아내고
그 해시값을 비공개키로 암호화하는 것이다.
이렇게 하면, 거래내역이 줄줄줄 아무리 길어도 고정된 길이의 해시값이 나오기 때문에 송수신이 유리하다.
A와 검증 노드가 합심해서 조작하면 어떻게 될까?
A가 가짜 거래내역을 노드에게 검증신청을 하고,
이 노드가 가짜 거래내역을 검증완료 처리하면?
이를 막기 위해서 신뢰할 수 있는 노드(검증자)만 검증할 수 있또록 제한한다.
신뢰할 수 있는 노드를 가리기 위해서
검증 참여를 위해선 비용이 발생하고, 검증이 완료되면 네트워크에서 보상을 지급한다.
입장료를 받기 때문에 나쁜 의도를 가진 검증 참여자를 걸러낼 수 있고,
보상으로 암호화폐를 받기 때문에 이 화폐의 가치가 올라가기 위해서는 정직한 검증을 해야한다.
상황에 따라 다르다. 음식 레시피 블록체인이라면 상관없겠지만,
비트코인, 이더리움 등 거래내역과 잔금 등이 담겨있다면 문제가 된다.
이 경우엔, 어떤 데이터가 블록체인에 추가되는지도 면밀히 살펴야함
우리가 원하는 데이터는 "진실"
진실만을 업로드하기 위해 필요한 것이 "작업증명
"
작업증명을 통해서 비트코인, 이더리움 등 다양한 크립토들이 사기꾼, 악용사례로부터 블록체인을 보호한다.
채굴자는블록체인에 들어오는 데이터를 확인
한다.
채굴자가 데이터를 블록 안에 넣어서 블록체인에 보내는 역할을 함.
예제
비트코인 블록체인에서 빗코를 친구에게 보냄
=> 거래내역 확인이 되지 않는다
채굴자가 있어서 블록체인에 올라가야하는 데이터들을 모두 체크할 수 있다.
누구나 채굴자가 되어 데이터를 검증할 수 있다
채굴자가 트랜잭션 컨펌을 하면 수수료를 받음.
덕분에 검증이 활발하게 이루어져서 거짓말, 사기꾼으로부터 네트워크를 보호할 수 있다.
채굴자는 블록에 들어갈 데이터를 바꿀 수 없다.
change(X) verify (O)
=> 채굴자가 이 질문에 답하면 블록을 올릴 수 있다.
질문이란?
해시값의 앞자리로 0이 와야하는데, 그 0의 갯수는 문제 난이도와 일치한다.
채굴자가 유일하게 바꿀 수 있는 nonce 값을 변경해서 조건을 만족하는 nonce 값을 찾아내는 것.
이것이 바로 그래픽 카드의 가격이 급등한 이유.
비트코인, 이더리움 등 작업증명 관련된 크립토 채굴을 위해서 빠르게 논스를 여러개 시도할 수 있는 그래픽카드를 대량으로 사들였기 때문에.
채굴자는 거래내역을 컨펌
하면서 보상을 받고,
질문의 답을 찾아 블록을 체인에 올리면서
보상을 받는다.
블록을 블록체인에 올리는 순간, 코인이 생성된다.
그렇게 채굴자가 블록을 체인에 올릴 때 마다 coinbase transaction
이 생성된다.
coinbase transaction
란?
: 새 블록의 첫번째거래(transaction)
비트코인은 원래부터 생성되어 있는 것이 아니라, 블록을 체인에 올릴 때마다 새롭게 생성되는 것.
채굴자에 의해 새로운 블록이 채굴되면, 새롭게거래(transaction)
가 시작된다.
첫번째 거래이기 때문에 이전(parent) 트랜젝션의 출력(output)을 받아오지 않고 새로운 코인을 만들기만 한다
코인베이스(coinbase)
는 이 거래에서 입력의 내용.
이 입력은 출력이 되어 다음 거래의 부모 트랜잭션이 된다.
말 그대로 기반(base)이라는 의미.
비트코인은 2100만 개로 생산량이 한정되어 있다.
처음엔 블록을 올릴 때마다 50개의 코인이 생성되었지만, 4년마다 반감기가 와서 생산량이 반으로 줄어든다
(블록마다 50개 새로운 비트코인에서, 현재는 6.25개)
- 거래(Transaction)에 대한 자세한 내용은 Transaction 포스팅
: How many coins you hold?
3세대 블록체인
의 증명방식으로,
코인을 지속적으로 보유하는 사람에게 보상을 지급하는 방식
네트워크에서 보상을 받는 양은 얼마나 네트워크에 참여(commit)
하는 정도와 비례한다.
그래서 빠른 컴퓨터가 필요없고, 에너지 낭비도 없다!
블록 채굴하고 거래를 승인하고 보상의 양이 코인 보유량에 따라 달라진다.
작업증명과 지분증명 결론
작업증명
: 전기를 가장 많이 쓴 사람, 빠른 컴퓨터를 가진 사람에게 보상을 지급하는 방식
- 에너지가 엄청나게 필요한 네트워크만 안전하다
- 환경오염 발생. 네트워크 규모가 작은 코인은 51% 공격의 위험이 있다지분증명
: 코인을 지속적으로 보유하는 사람에게 보상을 지급하는 방식
- 빠른 컴퓨터가 필요없고, 에너지 낭비도 없다
Cryptography(암호방식) + Currency(화폐)
교환수단으로 사용하기 위해 만들어진 디지털 화폐 또는 가상화폐를 가리킨다.
암호
는 가상화폐가 화폐로서의 신용과 가치를 가지게 함.화폐
는 지불기능과 저축기능, 가격의 척도와 교환의 수단을 모두 가지고 있어야 함.예시
- 비트코인캐시가 나왔을 때, 비트코인을 가지고 있는 사람들에게 1:1 비율로 비트코인캐시를 지급함
- 이더리움은 오미세고, 이오스는 EOSDAC 코인을 지급한 이력이 있음
그럼 이 특정한 자격요건
의 확인은 어떻게 할까?
특정한 자격요건
을 가진 사용자들에게 에어드랍을 한다고 했을 때, 에어드랍을 하는 시점에서 누가 그 조건을 가지고 있는지를 기록하는 행위
(이 스냅샷 기준 시점을 확인하기 위해서 이더리움 네트워크 전환이 필요한건가?)
민팅이란?
특정 코인을 지불하거나 행위를 통해 NFT를 새롭게 만든다
NFT 사고파는 플랫폼에서는 NFT를 민팅한다가 아닌, 구매한다(Buy)라는 표현을 쓴다.
이미 만들어진 NFT를 내가 사는 것이지, 새로운 NFT를 만드는 것이 아니기 때문에.
어떠한 특정 자격을 갖춘 유저
가 자신의 권리를 행사하는 것
클레임은 특정 요건을 갖춘 유저만 행사할 수 있다.
대체 불가능한 토큰(Non Fungible Token)
이러한 토큰들은 고유성을 지니며, 동일품이 존재하지 않는다.
가장 중요한 주춧돌.
이 스마트 컨트랙트 덕분에 NFT, token, ICO(Initial Coin Offering), DEX(Decentralized exchanges)와 같은 것들이 가능하다.
공개된 블록체인 네트워크상에서 모든 계약에 대한 합의를 소스 코드를 통해 수행하고,
특정 조건이 충족되었을 때 해당 계약이 이행되게 하는 스크립트.
따라서 위/변조가 불가능
하고, 상대방에 대한 신뢰와 상관 없이 투명한 거래가 가능
하다.
관측 가능성(Observability)
검증 가능성(Verifiablity)
프라이버시(Privacy)
강제 가능성(Enforceablilty)
반의어: 대체가능한 토큰 = 서로 교환이 가능함.
요약
: 서면으로 이루어지던 계약을 코드로 구현 하고,특정 조건이 충족
되었을 때 해당 계약이 이행되게 하는 script
스마트 컨트랙트를 활용하면 두 당사자가 서로를 모르더라도 계약을 체결할 수 있다.
특정 조건이 충족되지 않으면, 해당 계약은 실행되지 않기 때문에
중개인 없이도 계약을 이행할 수 있다는 것이 스마트 컨트랙트의 가장 큰 특징.
스마트 컨트랙트는 현재 이더리움 뿐 아니라, 많은 블록체인 플랫폼 위에서 구현되어 있다.
블록체인은 많은 감시자(witness) 를 가지고 있고, 입력을 기반한 결과를 도출하는 플랫폼 이기 때문에 스마트 컨트랙트 개념을 도입하기에 최적.
스마트 컨트랙을 지원하는 블록체인은 매우 많다.
가장 유명한 이더리움, Kusama, Polkadot, Cardano, Cosmos 등등...
Smart Contract에 대한 자세한 내용은 Smart contract 에서
DeFi 생태계에서 가상자산을 관리하기 위해 필요한 개인지갑
.
블록체인에서 사용되는 암호화폐를 보관하기 위해 사용.
거래소에서 거래할 때 자동 생성되는 거래소 지갑
과,
메타마스크,팬텀월렛처럼 개인이 관리하는 개인 지갑
이 있다.
각 지갑은 메인으로 취급하는 코인이 다르다.
예를 들어 메타마스크는 이더리움 기반, 팬텀은 솔라나 코인을 기반으로 한다.
하지만 기술의 발전으로 서로 다른 코인을 지갑에 담을 수 있다.
거래소에서 구매한 코인을 개인 지갑으로 보낼 때에는,
지갑에서 내가 보낼 코인과 네트워크를 정확히 설정한 주소를 받는 지갑에 만들어야한다.
Wallet에 대한 자세한 내용은 지갑(Wallet)에서
"독립적인 플랫폼을 구축했다"로 이해하면 된다.
메인네트워크(Main Network)
블록체인을 구현한 자체 플랫폼
을 의미한다.
(구체적으로는 노드
를 독자적으로 보유하고 운영하는 것을 뜻함)
기존에 다른 플랫폼으로 구현된 토큰이 자체적으로 독립된 플랫폼을 구축하고 새로운 생태계를 구성한, 즉 독립적 플랫폼
을 구축한 것.
ICO
를 통해 공모하는 코인들은 일반적으로 이더리움 기반 토큰.
이 중 메인넷에 성공한 코인은 토큰에서 코인으로 불리고, 독자적 플랫폼을 가진다.
ICO(Initial Coin Offering)
란?
: 새로운 암호화폐를 만들기 위해 불특정 다수의 투자자들로부터 초기 개발 자금을 모집하고 그 대가로 코인을 나눠주는 행위.
코인(Coin)
형태의 가상자산 발행토큰(Token)
형태의 가상자산 발행메인넷 보유 여부가 토큰이냐, 코인이나의 분류 기준.
메인넷의 베타 버전
인 셈.
블록체인의 메인 체인 옆에 나란히 붙어서 작동하는 하위 체인을 말한다.
금융활동을 은행이 아닌, 블록체인 상의 스마트 컨트랙
이라는 코드가 제공하는 것을 뜻한다.
블록체인 자체에 거래내역이 저장되기 때문에 중개자가 필요없다.
블록체인 상의 거래내역을 위변조할 수 없기 때문에 복잡한 신원확인이 필요없고, 전세계에서 시간 구애없이 이용할 수 있다.
CeFi(Centralized Finance)
: 중앙 집중식 금융DeFi(Decentralized Finance)
: 탈중앙화 금융DeFi에 대한 자세한 설명은 디파이(DeFi) 포스팅에서
탈중앙화 거래소.
거래자가 서로 직접 거개를 수행할 수 있다.
기존 중앙 집중식 플랫폼의 기능과 유사하지만 스마트컨트랙
실행을 기본으로 하여 직접적인 P2P 거래 매커니즘을 제공한다.
DEX(Decentralized EXchanges)
: 탈중앙화 거래소블록체인 기술과 거래자들에게만 의존
한다는 것CEX(Centralized EXchanges)
는 중앙 집중식 거래소CeFi/DeFi에 대한 자세한 설명은 디파이(DeFi) 포스팅
탈중앙화된 자율조직
으로 중앙집권 주체의 개입 없이
개인들이 모여 자율적으로 다수결로 의결하고 운영되는 조직을 뜻한다.
계층구조적인 관리 없이 완전한 기능이 가능한 회사나 조직을 설립하는 것이 DAO의 주된 아이디어.
DAO의 규칙은 스마트 컨트랙(계약)
에 의해 이루어지며, 스마트 컨트랙은 이미 코드화되어 구현되어있기 때문에 수정할 수 없다.
수정을 원한다면 회원들의 투표로 결정이 이루어진다.
(시총 상위 다오 토큰: 유니스왑, 에이브, 메이커, 컴파운드, 스시스왑)
탈중앙화 어플리케이션으로, 블록체인으로 실행되는 소프트웨어 어플리케이션을 뜻한다.
NFT에 대한 자세한 설명은 NFT 포스팅
https://medium.com/haechi-audit-kr/smart-contract-a-to-z-79ebc04d6c86
https://steemit.com/coinkorea/@whitecat97/coinbase-transaction
역시 멋있다!! 👍👍