반응형

지난번 포스팅에서 다뤘었다. 

대체 PoW가 무엇인가!!! 작업증명이 그래서 뭔데!!!

자. 지금부터 한번 시작해보도록 하자. 라는 말을 쓰는 지금 시점에서, 나는 작업증명이 뭔지 모른다.

따라서, 이 글을 읽는 사람들에게 누구보다 모르는 사람의 관점에서 잘 설명할 수 있지 않을까? (라는 희망.)

 

1. 서론

블록체인 네트워크에서 비트코인은 블록체인에 새로운 블록을 추가하는 방식으로 조폐(화폐를 제조) 및 송금을 한다.

작업증명은 이 조폐 및 송금에서 사용되는 트랜잭션(Transaction: 거래)시에 이를 거래하는 방법이다. 

나카모토 사토시의 비트코인 백서에는 이런 말이 있었다(비트코인 백서 서론)

필요한 것은 신뢰 대신 암호학적 증명(cryptographic proof)에 기반해, 거래 의사가 있는 두 당사자가 신뢰받는 제삼 자를 찾지 않고 서로 직접 거래하게 하는 전자 결제 시스템이다.

 

즉, 거래를 중개하는 중개 플랫폼(은행 등)을 신뢰해야만 개인 간의 거래가 가능했던 이전의 방식이 아닌, 암호학적 증명에 기반하겠다는 말이다. 이는 곧, 사람, 시스템을 신뢰하는 데에는 어떻게든 오류가 생길 수 있으니, 절대적인 수학을 믿겠다는 말로 들린다. 

 

2008년 글로벌 금융위기 사태 직후, 금융위기 조사위원회(FCIC)는 525페이지 분량의 보고서에 이런 말이 있다.

"당시의 위기는 인간의 행동과 무대책의 결광지, 천재지변이나 컴퓨터 모델 문제가 아니다. 셰익스피어를 인용하자면 잘못은 저 별들이 아니라 우리에게 있다." 즉, 2009년의 나카모토 사토시는 인간에 의해 만들어진 금융시스템을 신뢰하기보다는, 보다 믿을 수 있는 수학적(암호학적 증명) 방법에 기댔다고 볼 수 있겠다.

 

그렇다면, PoW는 대체 뭘까?

 

 1. PoW(Proof of Work: 작업증명)

비트코인의 전체적인 구조를 살펴보자.

자, 시장이 처음 생기면 일단 어떻게 해야하는가?

1. 화폐를 만든다(찍는다)

2. 화폐를 시장에 공급한다.

3. 시장 구성원들이 화폐와 재화를 거래하며 화폐를 거래한다.

전체적으로 보면 이러한 구조가 될 것이다. 그런데, 각각의 단계를 어떠한 주체가 담당하는지 살펴보자.

 

1. 중앙은행에서 화폐를 발행한다.

2. 은행이 시장에 화폐를 공급한다.

3. 구성원들이 화폐를 거래한다(전자화폐의 경우, 이중지불문제와 보안을 위해 은행의 중개가 필요)

결국, 모든 과정에서 은행은 필수불가결의 요소이다.

하지만, 비트코인은 무엇인가?

바로 은행이 존재하지 않는, 은행을 신뢰하지 않는, 수학을 믿는 전자화폐이다. 이러한 과정들에서, 은행을 대신할 수 있는 요소로 등장하는 것이 바로 PoW, 작업증명이다.

 

작업증명이 비트코인에서 어떠한 기능을 하는지 가볍게 일단 한번 보자.

1. 채굴자는 화폐를 발행하고 이를 시장에 공급한다.(물론 바로 공급을 하지 않을 수 있겠지만.. 이들도 돈을 벌어야지)

2. 구성원들이 화폐를 거래한다.

 

해당 두 과정이 위의 세 과정을 압축했다고 볼 수 있다. 작업증명(PoW)는 이 두 과정 모두에서 작동한다.

 

우선, 조폐(1번)의 과정에서는, 화폐 발행인(채굴자)에게 일(채굴)을 했다는 것을 증명하도록 하여 화폐를 발행한다.

중앙집권화되지 않은 탈중앙화된 블록체인의 조폐 과정에서는 처음 만들어진 알고리즘 이외에는 누가 얼마의 화폐를 받을 지 결정할 수 있는 중앙 권력이 없기 때문에 모든 참여자들이 자동으로 동의할 수 있는 방법이 필요하다.

 

그렇다면, 채굴자는 어떤 문제를, 어떤 해시함수를 계산한다는 것일까? 간단하게 그림으로 한 번 알아보자.

비트코인의 작업증명 방식을 간단하게 그림으로 나타내보았다.

우선, 작업증명은 SHA-256과 같은 해시연산을 거쳐 이루어지는데, 

과정은 이러하다.

Hash(이전 블록의 해시값 || 생성할 블록의 트랜잭션 data || 임의의 Random한 Nonce) < 목표값

을 달성할 경우, 작업증명에 성공했다고 보는 것이다.

이와 관련하여 백서에서는 어떻게 이야기하는지 살펴보자.

우리는 타임스탬프 네트워크용으로 블록의 해시에 주어진 0 비트들을 모두 발견할 때까지 블록 안에 임시값을 증가시키는(incrementing a nonce) 것으로 작업증명을 구현했다.

 

이 말이 위에서 한 말과 같은 말로 받아들이면 될 것이다.

이게 대체 뭔 과정이길래 이정도만으로도 작업증명이 된다는 것일까?

답은 바로 Hash함수의 일방향적 특성에 있다.

 

수학적(암호학적)으로, 해시(Hash)함수는 일방향함수이기 때문에, 이를 역산하는 것이 무차별 대입(Brute Force)이외에는 방법이 없다는 점에 착안하여, 모든 채굴자가 해시함수를 계산해 가장 먼저 계산한 사람이 새로 발행되는 비트코인을 받아가는 구조이다.

 

또한 작업증명(PoW)는, 다수결의 체인의 대표성을 결정하는 문제도 해결한다. 만약, 1 IP당, 1표에 기반한 다수결로 검증을 진행하게 된다면, 한번에 수많은 IP를 할당할 수 있는 누군가(악의적인 공격자)에 의해 해당 네트워크 전체가 장악될 수 있다. 위에서 소개한 다수결은 기본적으로 CPU당 1표이다. 다수결의 결과는 가장 많은 자원이 사용된 작업증명들의 가장 긴 체인이 된다(즉, Hash Rate가 가장 높은 체인이 가장 긴 체인이 된다.) 정직한 노드들에 의해 다수의 CPU파워가 통제된다면, 가장 정직한 체인이 가장 빠르게 늘어나 다른 경쟁 체인들을 압도할 것이다.

 

또한, 과거 블록을 수정하려면 공격자는 해당 과거 블록의 값에 대한 작업증명을 재수행해야하고, ( Hash(해당 블록의 이전 블록 해시 값 + 변경하고자 하는 데이터 + Nonce) 를 다시 해야함.) 또한, 해당 블록 이후의 모든 타임스탬프의 블록에 대하여 모든 연산을 재수행해야 하는 문제가 생긴다. 또한, 이러한 작업을 가장 정직한 노드들의 작업 속도를 따라잡아야 그것이 가장 무결한 노드라는 것을 인정받을 수 있다. 

따라서, 비트코인은 그 구조상 블록의 수가 늘어날수록 블록의 위/변조가능성은 거의 0에 수렴하게 된다는 것을 알 수 있다.

 

또한, 실제로 발생한 문제이기도 하지만, 채굴자들은 자원을 아끼기 위해 기존 CPU의 수만배 파워를 내는 채굴기를 개발해내었다. 이러한 상황에서 채굴의 난이도는 상대적으로 쉬워질 수 밖에 없기 떄문에, 초기 알고리즘은 채굴의 난이도 (위 그림에서는 목표 값)를 시간당 평균 블록 수에 따른 평균 목표값을 조정하여 결정하도록 하였다.

즉, 블록들이 너무 빠르게 생성된다면 채굴 난이도는 높아진다는 것이다(목표값이 낮아진다는 것이다.)

 

3. 마치며...

이렇게 작업증명에 대한 기본적인 개념들을 다루어보았다.

다소 수학적인 내용이 등장할 것이라고 예상했었지만, 해시함수 이외에는(이것도 별 수학적으로 접근하지는 않았지만...) 그런 내용은 없었던 것 같다.

작업증명(Proof of Work) 이외에도 지분증명(Proof of Stake)라는 개념이 존재하는데, 이는 나아아중에 다뤄보도록 하겠다.

 

글 읽어주셔서 감사하옵니다^^

 

반응형
반응형

최근 거의 네달?정도 블로그 포스팅을 안하다가 얼마전부터 갑자기 코인 관련 정보글들을 올리기 시작했는데요... 

그 기간동안 시스템해킹이나 그런거 말고 블록체인에 대한 공부, 리서칭 이런거 하고 왔습니다 ㅎㅎ

그러다보니까 자연스럽게 코인쪽에도 손을 대게 되더라구요?

 

그래서 오늘은 한번 grass코인이라는걸 들고와봤습니다!

저는 한 30일정도 전에 시작했었는데요, 가만히 들고있었더니 어느새 18K개 이상의 grass코인을 채굴해놨더라구요??

epoch 다 합쳐서 18.72k

 

그래서 이런 정보들도 좀 공유하면 좋지 않을까~ 하는 생각에 이런 주제 들고와봤습니다!

 

1. 그래서 이게 뭔데?

grass코인은 얼마전까지 엄청 무섭게 성장했던 AI관련 코인 중 하나라고 보시면 될 것 같습니다. (요즘은 거품 좀 빠진 것 같더라구용) 

AI와 블록체인의 융합? 이라니 대체 무슨말인가 싶을 수 있겠는데요!

그게 저도 궁금해서 한번 읽어보았습니다.

 

요약하자면, grass 채굴 확장 프로그램을 통해 AI 생태계에 기여한다는 말인데요,

개인적으로 제가 알고있는 지식들과 융합해보면 이러한 것 같습니다.

 

AI의 연합학습의 개념(100% 연합학습은 아닌 듯 합니다.)을 블록체인과 융합했다는 느낌이 드는데요, 

네, 이런겁니다 즉, 사용자가 사용하지 않는 네트워크를 AI를 학습시키는 여러 회사에 제공하고, 해당 회사들은 이 네트워크를 이용해 학습데이터를 생성, 라벨링 및 개인정보 비식별화등의 과정을 거쳐 학습 데이터를 제공받습니다. 

이에 대한 보상으로 네트워크를 제공한 사용자들은 grass코인을 받는 것이지요.

 

이정도면 grass코인, AI코인에 대한 대략적인 이해가 되셨을 것이라 생각됩니다!

이제 이걸 어떻게 채굴하는지 알아볼까요?

 

2. 채굴하는법!(가입 링크 포함)

1. 링크를 클릭하여 가입 페이지로 들어갑니다..
https://app.getgrass.io/register/?referralCode=y0TgHtebJEbOqaR

(레퍼럴이 포함되어있는 링크입니다. 레퍼럴이 없으면 회원가입이 불가능한 것으로 알고있어서... 불편하시다면 죄송합니다.)

 

2. 회원가입을 합니다.

3. 화면 우측 상단에 있는 "CONNECT"를 클릭합니다.(아래 화면 캡처에 있는 connected 버튼입니다.)


4. 화면 우측 상단에 있는 "Grass Extension" (크롬 확장 프로그램)을 설치합니다.

5. 이메일과 비밀번호를 입력하여 로그인합니다.

6. 화면 우측 상단에 확장 프로그램 버튼이 생성됩니다.

7. "Grass Extension"을 찾아 클릭하고 핀을 고정합니다.


8. 화면 우측 상단에 잎 모양이 보이며, 클릭하면 즉시 채굴이 시작됩니다.

 

이렇게 해서 자동으로, 힘 들이지 않고 grass를 채굴할 수 있겠습니다.

 

3. 채굴 현황 확인하기

내가 얼마나 채굴했는지 등을 알아보는 방법을 알아보도록 합시다!

이 글을 쓰는동안 또 어느정도 채굴이 되었네요.

바로 중앙에 보이는 Earnings 왼쪽에는 총 채굴량, 오른쪽에는 오늘의 총 채굴량이 표시되어있습니다. 

아래 있는 캔들 그래프에는 지금까지의 통계가 있네요.

 

왼쪽 메뉴의 Rewards를 들어가보시면, 진짜 총 통계를 볼 수 있습니다.

Epoch 1~3까지가 있는데요, 저는 Epoch2와 3을 통해 총 18k정도의 grass를 채굴한 것을 확인해볼 수 있었습니다.

 

마치며

Grass코인같은 코인은 아직 비상장 코인이지만 그럼에도 불구하고 거래 자체는 가능합니다.

비상장 코인을 주로 거래하는 플랫폼인 Whale Market에서 가능한데요, 아래는 해당 거래소 링크입니다.

 

https://pro.whales.market/points/Solana/Grass

현재는 개당 거래가격이 0.00315원인 것을 알 수 있습니다.

하지만 이 코인이 나중에 대형 거래소에 상장된다면 가치가 수~수십배 뛰는일이 생길 수 있겠죠.

 

정말 grass에 대한 모든 내용을 담은 것 같네요.

많은 분들에게 유익한 정보이길 바라며, 이만 글 마쳐보도록 하겠습니다.

다들 돈많이버세용 ㅎㅎ

반응형

+ Recent posts