검수요청.png검수요청.png

뻐꾸기 사이클

해시넷
이동: 둘러보기, 검색

뻐꾸기 사이클(Cuckoo Cycle)은 네덜란드의 컴퓨터공학자인 존 트롬프(John Tromp)가 발명한 세계 최초의 작업증명(PoW) 알고리즘이다. 암호화폐 중에서는 코르텍스(Cortex)와 그린코인(Grin Coin)이 뻐꾸기 사이클 알고리즘을 이용한 작업증명 방식을 사용하고 있다.

개요[편집]

뻐꾸기 사이클은 GPU를 중심으로 하는 작업증명 방식의 합의 알고리즘이다. 뻐꾸기 사이클은 기존 에이식(ASIC) 채굴기채굴하기 어려운 알고리즘과 GPU 채굴방식의 효율성 증대로 기존 CPU 중심의 채굴기와 GPU의 간극을 좁혀 1머신 당 1표(one-machine-one-vote)를 실현할 수 있는 중요 요소로 평가받는다. 즉 기존 CPU 방식의 채굴은 에이식 칩으로 인해 기기별 연산의 격차가 극심하고, 이 때문에 에이식 전용 채굴기를 통해 채굴함으로써 값비싼 소수의 기기가 해시파워를 독점하기 쉬웠다. 뻐꾸기 사이클은 GPU 중심의 반 에이식 알고리즘으로 이를 극복할 수 있다. 뻐꾸기 사이클은 반(反) 에이식 속성을 가지고 있어 에이식을 통한 채굴 난이도와 비용이 비트코인SHA-256 방식에 비해 높다. 게다가 뻐꾸기 사이클 알고리즘은 변형을 통해 반 에이식 역량을 계속 향상시킬 수 있고, 알고리즘 수정을 통해 반 에이식 능력을 저하시켜 에이식 우호 알고리즘이 될 수 있는 등, 운용의 폭이 상대적으로 넓어 많은 프로젝트의 주목을 받고 있다. 다만 모든 프로젝트가 같은 방식으로 뻐꾸기 사이클 알고리즘을 활용하는 것은 아니다. 뻐꾸기 사이클은 작업증명을 함에 있어 에이식 방식을 어느 정도 수용할지를 수정할 수 있어 좀 더 운신의 폭이 있기에, 에이식 방식에 유리하게 하면 할수록 해시 능력의 차이로 일반적인 SHA-256 방식과 같이 높은 비용을 수반할 수밖에 없기 때문이다.[1]

특징[편집]

8개 노드, 4변으로 구성된 뻐꾸기 사이클 이분그래프

비트코인에서 사용하고 있는 SHA-256은 일종의 단순한 해시함수이다. 채굴 초기에 쓰였던 컴퓨터 CPU 채굴방식에서 그래픽카드 프로세서 GPU로 이전한 후, 설계 가능한 논리소자와 프로그래밍 가능한 내부선이 포함된 반도체 FPGA로, 마지막에는 비트코인 채굴이라는 특수한 목적으로 만들어진 에이식 칩을 사용하게 된다. 뻐꾸기 사이클은 Sipash를 사용하여 무작위로 생성된 뻐꾸기 사이클 이분그래프에서 고정길이 L의 고리를 찾을수록 그림의 규모가 커지는 그래픽 이론에 기반한 알고리즘이다. 이러한 알고리즘은 고리를 찾는 과정 자체에 비교적 큰 메모리 데이터에 대한 저장이 필요하며, 일종의 메모리-하드의 작업증명 알고리즘이기 때문에 에이식화 과정 자체에 어느 정도 어려움이 있다.

이 밖에 뻐꾸기 사이클은 다양한 방법을 통해 다양한 알고리즘을 구현할 수 있다. 예를 들어 이분그래프 노드에 이진법을 간소화하여 수행한다면, 고리를 찾는 과정의 채굴 난이도를 크게 낮추어 CuckAToo 알고리즘으로 변형할 수 있다. 또한 이분그래프 내의 모든 노드에 조를 편성하고, 해당 조 내의 노드가 상호 의존적인 관계에 있다면 조 내의 임의 노드 해시를 얻기 위해 모든 노드의 해시값을 계산하여야 한다. 이는 고리를 찾는 과정의 채굴 난이도를 크게 증가시키고, 데이터 저장에 대한 요구가 더 높으므로 CuckARoo 알고리즘으로 변형된다.

뻐꾸기 사이클 알고리즘은 반 에이식 속성을 가지고 있어 에이식(ASIC)의 채굴 난이도와 비용은 비트코인SHA-256에 비해 높다. 게다가 뻐꾸기 사이클은 변형을 통해 반 에이식 능력을 계속 향상시킬 수 있고, 반대로 변형을 통해 반 에이식 능력을 저하시켜 에이식의 우호 알고리즘이 될 수도 있는 등, 작업증명 방식에 응용할 수 있는 유연성이 높다.[2]

활용[편집]

그린코인[편집]

그린코인(Grin Coin)은 전 세계 어디에서나 거래가 가능한 밈블윔블(MimbleWimble) 프로토콜에 기반하여 개발된 암호화폐이다. 밈블윔블 프로토콜은 비트코인의 프라이버시 문제와 확장성 문제를 해결하도록 설계된 기술이다.[3] 그린코인의 장기적인 목표는 세계에서 가장 프라이버시 보호가 뛰어난 P2P 암호화폐 페이먼트 시스템을 만드는 것이다. 그린 개발팀은 매 6개월마다 하드포크를 진행하여 채굴 알고리즘을 조정하며 CPU/GPU 및 에이식 채굴의 밸런스를 유지한다. 초창기 그린코인은 에이식에 우호적인 뻐꾸기 사이클과 에이식 저항을 가지고 있는 이퀴해시 두 가지 알고리즘을 병행하고자 했지만, 마지막 테스트넷에서 이중 뻐꾸기 사이클(Dual Cuckoo Cycle)만을 채택하는 것을 결정했고, 두 번의 조정 방식에서 에이식 우호 알고리즘 및 CPU/GPU 우호 알고리즘으로 블록 난이도를 결정했다.

  • CuckAToo31 : 그린코인의 메인 알고리즘으로서, 에이식에 우호적이게 설계되었으며 향후 알고리즘 변경 가능성이 매우 적다. 이 알고리즘은 몇백 MB의 SRAM을 사용하여 GPU가 효율성을 높일 수 있도록 한다.
  • CuckARoo29 : 그린코인의 서브 알고리즘으로서, 에이식 저항을 하기 위해 설계했다. 이 알고리즘은 주로 초기 단계에서 탈중앙화된 채굴을 달성하기 위해 설계했으며, 보통 중간 및 고급 단계에 있는 그래픽 카드로 채굴한다.[4]

듀얼 뻐꾸기 사이클(Dual Cuckoo Cycle) 알고리즘을 사용하여 그린코인은 블록 생성 비율을 자동으로 설정한다. 메인넷을 출시했을 때, 90%의 블록이 CuckARoo29 알고리즘에 의해 생성되며, 나머지 10%는 CuckAToo31 알고리즘에 의해 생성되는 것으로 그 비율을 고정했다. 이 비율은 반년마다 조정되며, 점진적으로 메인넷 출시일 기준 2년 이내에 CuckARoo29 알고리즘의 블록 생성 비율은 초기 90%에서 0%로 감소하고 CuckAToo31 알고리즘의 블록 생성 비율은 10%에서 100%로 증가하여 100%의 CuckAToo31로 최적화될 예정이다. 이는 곧 2년 동안 블록 생성 비율을 조정하여 그린코인은 에이식 채굴기만 남기게 되고 GPU 채굴기는 그린코인 생태계에서 없어진다는 의미이다. 63,072,000개의 그린코인이 채굴되면 GPU 채굴기는 더이상 그린코인을 채굴할 수 없게 된다. 가기.png 그린코인에 대해 자세히 보기

코르텍스[편집]

코르텍스(Cortex)

코르텍스(Cortex)는 인공지능(AI) 기반의 블록체인 서비스를 위한 암호화폐이다. 코르텍스는 인공지능 서비스를 스마트 계약에 포함시켜 블록체인에서 인공지능 추론 합의 기능을 사용할 수 있게 한다. 최초의 암호화폐가 비트코인이고, 프로그래밍 가능한 최초의 암호화폐가 이더리움이라면, 코르텍스는 최초로 인공지능을 블록체인에 적용한 프로그래밍 암호화폐이다.[5] 인공지능 모델 호환성을 지닌 블록체인 플랫폼을 구현하게 되면 사용자들은 인공지능 계약을 통해 자신의 인공지능 모델을 블록체인에 업로드하고 작업을 게재할 수 있고 추론을 통한 합의에 도달하는 것도 가능하다. 따라서 개인의 인공지능 디앱을 구현하는 것도 가능하게 된다.

코르텍스는 뻐꾸기 사이클 합의 알고리즘을 사용하여 CPU와 GPU 속도 향상률 간의 간격을 더욱 좁히기 위해 1머신 당 1표(one-CPU-one-vote )에 더욱 우선권을 준다. 동시에 코르텍스 블록체인은 스마트폰 GPU 의 성능을 완전히 탐구하여 일반 하드웨어 플랫폼 평가 도구의 비율에 따라 휴대전화와 데스크톱 GPU의 차이를 더 벌릴 예정이다.[6] 그린코인과는 대조적으로 코르텍스의 목표는 가능한 한 AI 하드웨어 보유자, 투자자 및 일반 모든 사람들이 보유하고 있는 컴퓨팅 하드웨어를 사용하여 채굴할 수 있도록 하는 것이다. 따라서 새로운 채굴 장비를 구입할 필요가 없도록 설계해왔다. 이러한 목표로 프로젝트 초반부터 뻐꾸기 사이클 알고리즘의 반 에이식에 관한 파라미터 조정이 뻐꾸기 사이클 알고리즘 자체에서 에이식화되더라도 다른 방식을 채택해왔다. 바꿔 말하면 알고리즘이 에이식화되더라도 CPU, GPU, FPGA, ASIC이 상당한 수준의 비용을 부담해야 한다는 것이다. 코르텍스 생태계에 있는 많은 투자자들이 더 나은 컴퓨팅 능력을 갖출 수 있도록 조치를 취하고, 향후 막대한 AI 컴퓨팅 수요 시장을 미리 포석하고 기반을 마련하려는 것이 그 이유이다.[7] 가기.png 코르텍스에 대해 자세히 보기

각주[편집]

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 뻐꾸기 사이클 문서는 합의 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.