BlockChain

암호화폐 101 시리즈 with 노마드코더 | #2. 개발자가 설명해주는 비트코인 채굴 방법, #3. 블록체인 개발자가 은행을 대체할 수 있을까?

IT's 잇츠 2021. 6. 7. 15:26

저는 블록체인에 굉장한 관심이 많습니다.

그 이유는 적어도 10년 이후에는

이 기술로 인해 세상이 크게 변할 것이라는 확신 때문입니다.

.

일단,

노마드코더님의 암호화폐 관련한 시리즈 영상들을 하나씩 보며

기본적인 지식을 쌓도록 하겠습니다.


#2. 개발자가 설명해주는 비트코인 채굴 방법 (ft 시뮬레이터)


 

https://youtu.be/ElGBP90XZWE

  • 아무나 블록 추가? 어떤 데이터가 블록체인에 추가?
  • 우리가 원하는 데이터는 ‘진실’ 뿐이다. 이를 위해 ‘작업증명(Proof of Work)’ 필요.
  • 채굴자는 블록체인에 들어오는 데이터를 확인하는 일을 한다. 데이터를 블록 안에 넣어서 블록체인에 보내는 역할을 한다.
  • 누구나 원한다면 채굴자가 될 수 있고 이를 통해 탈중앙화를 할 수 있다. 즉, 누구나 데이터를 검증할 수 있다.
  • 채굴자들이 트랜잭션 컨펌을 하면 돈을 받는다. 덕분에 검증 작업이 활발하게 이루어져서 사기꾼으로부터 네트워크를 보호할 수 있다.
  • 블록체인에 블록 올리는 게 엄청 어렵다. 작업 증명이라는 게 채굴자에게 질문을 하는데 이것은 전체 네트워크가 다 아는 질문이다. 이 질문에 대한 답을 찾으면 그때서야 블록을 올릴 수 있다.
  • 결국 채굴자는 보상을 2번 받는 셈인데 첫 번째는 거래내역을 컨펌하면서,  두번째는 질문의 답을 찾아서 = 블록을 체인에 올리면서. 그때 비트코인이 생성된다.
  • 비트코인은 사람들이 블록을 블록체인에 올리는 순간 생성됩니다. 처음에는 올릴 때마다 50개 코인이 생성됐었는데 4년마다 반감기가 와서 그 생산량이 반으로 줄어든다.
  • 현재는 50 -> 25 -> 12.5 -> 6.25로 6.25개 코인이 생성된다. 비트코인은 생산량이 한정되어있다. 2100만 개!!
  • 채굴자들이 답해야 하는 그 질문이란 게 뭘까? 일단, 채굴자는 데이터를 바꿀 수 없고 오직 검증만 할 수 있다.
  • Nonce = 한 번만 쓰인 숫자를 뜻함, 채굴자가 바꿀 수 있는 유일한 값이다. 이것 빼고 나머지 하나도 못 바꾼다.
  • 채굴자는 그럼 숫자 맞추기 게임을 해야 한다. Nonce를 바꿔가며 네트워크가 원하는 질문에 맞는 Hash를 찾아야 블록이 생성된다.
  • 비트코인은 매 10분마다 블록을 새롭게 생성한다. 블록이 너무 빨리 생성이 되면 난이도를 올리기도 한다.
  • 현재 비트코인은 19개의 0으로 시작해야한다고 한다. 그만큼 난이도가 올라갔다고 보면 된다. 하지만 실질적으로 난이도 자체는 단순한 0 개수가 아니라 bits라는 통해서 계산한다.

 

#3. 블록체인 개발자가 은행을 대체할 수 있을까?


 

https://youtu.be/3I5_D-deQT0

  • 스마트 컨트랙을 이해하는 순간 그때 블록체인 개발자가 되고 싶다고 생각했다.
  • 스마트 컨트랙은 이때까지 들어본 모든 엄청난 프로젝트들의 주춧돌 같은 것이다.
  • 덕분에 NFT, ICO(Initial Coin Offering), DEX(Decentralized exchanges)까지 모두가 가능하다.
  • 비트코인이 지루한 이유는 바로 다른 사람들과 교류할 수 없기 때문이다. 주고받는 것 외에는 할 수 있는 게 없다.
  • 스마트 컨트랙을 통하면 다른 사람과 교류할 수 있고, 코드로 소통할 수 있다.
  • 소통하는 방법 중 하나는 탈중앙화 앱(dApp)을 만들 수 있다는 것이다.
  • 개발자로서 코딩을 해서 이걸 공유 네트워크에 올릴 수 있다는 것이다. 
  • 보통은 코딩해서 AWS 같은 곳에 올리잖아? 그 AWS가 혹시나 터지면 내 App도 사라지는 것이다.
  • 하지만 내 코드를 Smart Contract Platform에 올리면? 그곳에 영원히 있는 것이다.
  • 정리하면, 내가 코딩을 해서 그 코드를 주인이 없는 백엔드에 올리는 것이다. 전 세계 사람들이 쓰는 어마어마한 공유 네트워크에 말이다.
  • 이 어마어마한 것이 나의 코드를 검증하고 실행하고 블록체인의 안정성을 구축한 채 말이다. 이것이 대단한 점이다.

 예시를 들어보면,

  • 은행) 1) 돈을 저축하고 거기에 보관한다. 2) 시간이 흐른… 30년 후에 나에게 돌려준다.
  • 에어비앤비) 결국 방 주인과 나의 거래이다. 중개하는 에어비앤비 대신에 스마트 컨트랙(IoT 기술을 활용해서 아두이노 같은 것으로)에 돈을 보내고 대문 이라든가 TV 같은 거랑 연결이 되며 스마트 컨트랙은 TV를 켜고 문을 열어준다.
  • 테슬라) 빌리주기 가능! 자율주행이 가능한 테슬라를 스마트 컨트랙과 연결해서 여기에 렌트비를 내면 테슬라는 해당 유저가 있는 곳을 이동을 하게 된다.
  • 와이파이) 빌려주기 가능! 내가 집에 없는데 이웃이 와이파이가 필요하다면? 스마트 컨트랙으로 돈을 내고 해당 와이파이를 사용할 수 있게 되는 것이다.
  • 스마트 컨트랙의 가장 큰 단점은… 원하는 소스를 다 활용할 수 없다는 것이다!!! 결국 해당 블록체인 네트워크 위에서만 실행 가능하다.
  • 네트워크 외부의 무언가에 의존 혹은 신뢰해야 하는 문제가 생긴다. 이걸 누군가 조작할 수가 있다. 신뢰 기반이 아닌 특수한 네트워크 환경을 요구한다는 것이다.
  • 이걸 보완하기 위한 ‘oracle’이라는 것이 있다. 이는 스마트 컨트랙에게 인풋을 제공하는데 신뢰 기반의 데이터를 이러한 특수 네트워크에 가져온다는 점에서 굉장히 흥미롭다. 

 

비트코인과 스마트 컨트랙의 차이점에 대해 알게 되었습니다.

 

개발자로서 스마트 컨트랙은 향후 10년 후

세상을 바꾸는 데 큰 기여를 하지 않을까 생각이 듭니다.

 

긴 글 읽어주셔서 감사합니다.

오늘도 좋은 하루 보내세요~