"에이식부스트"의 두 판 사이의 차이
(→같이 보기) |
잔글 (→같이 보기) |
||
64번째 줄: | 64번째 줄: | ||
*[[SHA-256]] | *[[SHA-256]] | ||
*[[세그윗]] | *[[세그윗]] | ||
+ | *[[BDPL]] | ||
{{블록체인 기술|검토 필요}} | {{블록체인 기술|검토 필요}} |
2019년 9월 20일 (금) 15:54 판
에이식부스트(AsicBoost)는 비트코인(bitcoin) 채굴 속도를 약 20% 정도 높이는 방법이다. 채굴 칩의 게이트 카운트를 대폭 줄일 수 있는 비트코인 채굴 알고리즘의 높은 수준의 최적화를 통해 성능 향상을 달성한다. 아식부스트라고도 읽는다.
목차
개요
에이식부스트는 에이식(ASIC) 칩의 게이트 수를 줄여 에너지 소비를 개선하고 시스템 비용을 낮추는 마이닝 최적화 방법이다. 비공개 에이식부스트와 달리, 공개 에이식부스트는 블록 헤더의 버전 필드를 수정하여 쉽게 감지할 수 있다. 이 방법은 2016년 디피니티(Dfinity)의 엔지니어링 디렉터인 티모 행크(Timo Hanke)와 RSK Labs의 수석 과학자인 세르지오 러너(Sergio Lerner)가 공동으로 발명했다. 비트메인은 처음에는 법적 불확실성으로 인해 공개 에이식부스트를 활성화하지 않기로 했다. 3월 초부터 에이식부스트는 블록체인 방어 특허 라이선스(BDPL; BLockchain Defensive Patent License)를 취득할 수 있었다.[1]
특징
- 작업 항목 충돌(Colliding work items) : 에이식부스트는 여러 작업 항목에서 스케줄링 된 메시지 1을 다시 사용함으로써 성능 향상을 달성한다. 이를 위해 에이식부스트는 공통 메시지 파트를 공유하는 많은 블록 헤더 후보를 생성한다. 블록 헤더 후보 간의 충돌에서 도출된 작업 항목은 모두 공통 메시지 구성 요소를 공유하며, 미드 스테이트(Mid State) 구성 요소에서만 다르다. 우리는 작업 항목이 메시지 구성 요소에서 충돌할 경우 충돌하는 것으로 말한다.
- 에이식부스트 루프(AsicBoost Loop) : 충돌 블록 헤더 세트를 통해 에이식부스트는 내측 및 외측 채굴 루프를 교환할 수 있다. 메시지는 충돌 블록 헤더의 전체 세트를 처리하는 동안 일정하게 유지된다. 에이식부스트의 내부 루프는 충돌 블록 헤더의 중간 상태를 반복한다. 논스(Nonce)는 이제 내측 루프보다 외측 루프에서 업데이트된다. 메시지 스케줄 1은 덜 자주 업데이트되고 그 정보는 여러 중간 상태에 걸쳐 재사용된다.
- 에이식부스트 이득(AsicBoost Gain) : 에이식부스트 방법은 내측 루프에서 익스펜더(Expander) 1 기능을 제거하여 압축기 1, 익스펜더 2 및 압축기 2만 고주파수로 처리한다. 네 가지 함수 각각은 유사한 복잡성을 가지고 있기 때문에, 이 접근법으로 총 계산 작업의 4분의 1까지 절약할 수 있다. 정확한 이득은 충돌 작업 항목의 크기에 따라 달라진다. 익스펜더 1이 네 가지 함수를 결합 간 계산 작업의 x%를 차지한다고 가정하면, 작업 항목을 N개 충돌하면 총 이득이 % 가 된다. 일부 형태의 에이식 구현은 n의 특정 가치에 맞게 설계되어야 한다. 에이식부스트는 GPU와 같은 소프트웨어에서도 구현될 수 있다는 점에 유의해야 한다. 사실, 랜덤 액세스 메모리의 가용성은 많은 오버헤드 없이 구현을 매우 쉽고 직선적으로 수행할 수 있게 한다.
- 충돌 블록 헤더 후보 작성(Building colliding block header candidates)
- 머클루트 충돌(Merkle root collisions) : 블록 헤더 후보를 만드는 방법에는 청크 1에서만 다른 몇 가지가 있다. 한 가지 방법은 많은 머클루트를 무작위로 계산하여 마지막 4바이트에서 충돌하는 많은 머클루트가 발견될 때까지 마지막 4바이트를 기준으로 필터링하는 것이다. 충돌을 위해 필터링할 때 고려해야 할 많은 트레이드오프(tradeoffs)가 있다. 최적 프로세스는 n의 목푯값과 제공할 해싱 코어의 수와 속도에 따라 달라진다. 코인베이스(coinbase) 필드를 바꾸는 것보다 더 효율적인 머클트리 루트를 계산하는 방법에는 여러 가지가 있다. 한 가지 방법은 블록 내부의 거래 순서를 변경하는 것, 다시 말해서 머클트리의 잎을 변경하는 것에 기초한다.
- 대안(Alternatives) : 충돌 블록 헤더를 만드는 또 다른 더 효율적인 방법은 청크 1 내부의 비트를 사용하되 광부가 선택할 수 있는 머클루트 바깥쪽을 사용하는 것이다. 이것은 어떤 머클루트 충돌도 찾을 필요가 없다. 대신, 한 개의 머클루트를 선택하고 고정한다. 그런 다음 자유 비트는 루프에서 업데이트되고 각 중간 상태는 청크 1에서 계산된다. 이러한 방법으로 얻은 각 중간 상태는 새로운 충돌 작업 항목을 제공하므로 매우 효율적이다.
- 에이식부스트 칩 설계(AsicBoost chip design) : 비트코인 채굴 에이식은 동일한 작업 항목에서 동시에 작동하거나 각각의 작업 항목에서 동시에 작동하는 여러 해싱 코어로 구성된다.
- 멀티코어 디자인(MultiCore Design) : 에이식부스트를 채택하는 가장 쉬운 방법은 두 개 이상의 해싱 코어 사이에 익스펜더 1블록을 공유하는 것이다. 이 설계에서 중주 세대는 에이식 외부에 보관되며 칩의 작업 분포는 기존 칩의 작업 분포와 동일하다. 멀티코어를 설계할 때 고려해야 할 많은 트레이드오프가 있다. n에 대한 최적 구현과 최적값은 원래 해싱 코어 설계의 많은 낮은 수준의 요인에 따라 달라진다.
- 로우토글 디자인(LowToggle Design) : 또 다른 구현에서 각 코어는 자체 익스펜더 1 로직을 가지고 있지만, 이 로직은 더 낮은 빈도로 전환되고 있다. 여러 개의 중간 상태는 핵심으로 공급되며, 비스(Nonce) 업데이트 전에 완전히 처리된다. 논스가 업데이트되면 동일한 미드 스테이트 세트를 다시 처리할 수 있다. 익스펜더 1 로직은 논스 또는 메시지가 업데이트될 때만 토글되어 익스펜더 1이 소비하는 대부분의 에너지를 절약한다. 고속으로 코어에 여러 미드(Mid) 상태의 분포와 관련하여 고려해야 할 많은 트레이드오프가 있다. 최적 구현은 원래 해싱 코어 설계의 많은 낮은 수준의 요인에 좌우될 것이다.
방식
에이식부스터는 SHA-256 해시 알고리즘의 취약점을 이용한 방법이다. 비트코인의 작업증명방식(PoW)은 80Byte의 블록 헤더에서 이루어진다. SHA-256은 해싱할 때 항상 64Byte 씩 나누게 되는 특징이 있다. 그러면 비트코인 헤더 80byte를 쪼개면 64 +16byte가 된다. 이걸 다시 나눠보면 64byte = 이전 블록 해시(32byte) + 트랜잭션 지문 버전(4byte) + 머클루트(32byte 중 28byte)로 구성돼있다. 나머지 16byte는 64byte에서 언급했던 머클루트(4byte)와 타임스탬프(4byte), 비트(4byte), 논스(4byte)로 구성돼있다. 여기서 주목할 점은 나머지 16byte에서 12byte는 마이너가 미리 계산할 수 있다. 그러므로 머클루트의 4byte만 계산하면 되는데, 이 머클루트의 4byte를 미리 계산해두고 그걸 계속 대입해서 일치되는지 확인하게 되면 나머지 64byte의 해싱만 진행하면 되는 이전방식보다 좀 더 빠른 방식으로 채굴이 가능하다.[2]
유형
공개 에이식부스트
공개 에이식부스트(Overt AsicBoost)는 블록 헤더의 nVersion 필드를 변경하는 것으로 공개 에이식부스트를 사용하면 nVersion 필드를 검사할 수 있다. nVersion 필드를 굴림으로써 여러 개의 랜덤 비트가 활성화되며, BIP9 기본 의미론과는 다르기 때문에 비트코인 코어 노드에 의해 존재하지 않는 소프트포크 제안의 신호로 해석된다.[3] 비트메인에서 배포한 펌웨어로, 기존 마이닝보다 효율성이 더 뛰어나게 설계되었다. 공개 에이식부스트 사용은 프로토콜이나 사용자에게 부정적인 영향을 미칠 수 있는 나쁘거나 엉성한 행동을 유도하지 않는다.[4]
문제점
비트코인 코어(Bitcoin Core) 내의 버전 시그널 및 경고 메시지를 통해 소프트포크 업그레이드 실행 능력이 감소할 수 있다.
- 공개 에이식부스트의 실행은 4byte 전부가 필요하지 않을 수도 있으며, 일부 byte는 소프트포크의 신호 용도로 남겨질 수 있다. 이 방식은 동시다발적으로 실행되는 소프트포크의 수를 감소시킨다.
- 다수의 사람은 소프트포크 신호 시스템(softfork slgnalling system)을 실패한 시스템으로 생각하고 있다. 마이너들은 종종 소프트포크 신호와 상충하는 신호를 내보내서 소프트포크 신호 방법론을 신뢰할 수 없게 만든다.
공개 에이식부스트의 또 다른 단점은 비트코인 코어(Bitcoin Core) 소프트웨어가 특이하거나 흔하지 않지만, 정상적인 버전 필드를 발견하면 이를 네트워크가 알 수 없는 방식(unknown manner)으로 업그레이드 중이라고 인식하여 사용자에게 경고 메시지를 보낸다.
비공개 에이식부스트
비공개 에이식부스트(Covert AsicBoost)는 블록 헤더에서 트랜잭션 머클루트의 28byte를 변경하는 것으로 비공개 에이식부스터를 사용하면, 정확하게는 머클트리가 롤링된 블록을 구별하기가 매우 어렵기 때문에, 그것을 사용하는 광부들을 식별하기는 쉽지 않다. 게다가 비공개 에이식부스터는 광부들에게 헤더 대신 블록 헤더의 꼬리에 저장된마지막 4byte의 머클루트 필드의 균열을 찾도록 요구한다.[3] 비공개 에이식부스터는 익명성이 내장된 버전의 에이식부스트로 종종 비트코인 프로토콜이나 블록체인을 희생하여 이익을 창출하는 데 사용된다. 비공개 에이식부스트를 사용하는 광부들은 너무 작거나, 심지어 빈 블록을 생산하고 비트코인 전체의 블록체인들을 손상시킨 혐의를 받고 있다.[4]
문제점
- 더 작은 거래처리 용량 : 비공개 에이식부스트는 비공개 에이식부스트의 실행을 더 효율적으로 만드는 작은 사이즈의 블록 혹은 빈 블록을 생성할 수 있다. 비공개 에이식부스트는 거래 수수료를 증가시키고 네트워크의 거래처리 용량을 감소시킬 수 있다.
- 더 작은 블록사이즈 : 작은 사이즈의 블록 혹은 빈 블록은 거래 처리 용량에 부정적인 영향을 준다. 그 이유는 이들이 네트워크상의 문제점으로 여전히 남아있고, 거래 지연 현상에 대해 긍정적인 영향을 전혀 주지 않기 때문이다.
- 세그윗으로의 업그레이드 : 에이식부스트의 가장 치명적인 단점은 일부 마이너들이 세그윗으로의 업그레이드를 꺼리게 만들 수 있다는 점이다. 이것 자체로는 아주 부정적이지 않을 수 있지만, 사실과 다른 분열을 야기하는 세그윗 정보 캠페인은 생태계에 심각한 악영향을 주었을 가능성이 있다. 그러나 위 내용이 불확실하고 근거 없는 비난에 불과하다는 것과 이 점이 세그윗 반대에 대한 동기를 유발했다는 것은 확실하지 않다는 것을 지적한다.
- 머클트리 또는 거래 조정을 위한 인센티브 : 비공개 에이식부스트의 성패는 마이너의 머클트리 혹은 거래 조정 능력에 따라 좌우된다. 이 점은 작은 사이즈의 블록과 함께 네트워크상에 해로운 영향을 줄 수 있다. 블록 헤더 내의 필드를 변경하는 것만으로도 공개 에이식부스트는 훨씬 명확한 해결책이 될 수 있다.
- 경쟁 우위를 점할 수 있는 비밀스러운 이점 : 비공개 에이식부스트의 샐행 여부는 쉽게 알아내기 어려우므로 일부 마이너들에겐 경쟁 우위를 점할 수 있는 그들만의 비밀스러운 이점을 제공할 수 있다. 일반적으로 투명성을 좋고 긍정적인 요소로 생각하지만, 비공개 에이식부스트 네트워크가 기밀성으로부터 기인한 직접적인 단점을 야기했는지의 여부는 명확하지 않다.
특허 무료 공유
에이식부스트의 특허를 소유한 회사인 리틀드래곤테크놀로지(Little Dragon Technology)가 해당 특허를 무료로 공유하겠다고 밝혔다. 리틀드래곤이 비트코인 채굴 효율성을 약 20% 높인다고 주장하는 에이식부스트는 비트코인 생태계 내에서 꾸준히 논란이 되어 왔다. 해당 기술이 특허로 등록되어있기 때문에 채굴 중앙화로 이어질 수 있다는 주장이 꾸준히 제기되었다. 실제로 몇 생태계 내부자들은 채굴기 제조사 비트메인이 에이식부스트 특허를 독점해 채굴 경쟁에서 우위를 차지하고 있다는 의혹을 제기했었다. 하지만 리틀드래곤은 이번 기회로 에이식부스트 기술을 모두가 이용할 수 있게 블록체인 방어 특허 라이선스(BDPL; Blockchain Defense Patent License)를 통해 공유하겠다고 밝힌 것이다. BDPL은 특허된 기술을 이용해 탈중앙성을 유지해야 하는 블록체인 시스템을 독점하는 것을 막기 위해 만들어진 제도다. BDPL 연합에 가입한 기관은 다른 BDPL 멤버들의 특허를 무료로 이용할 권리를 부여받는다. 다만, 가입을 위해서는 회사가 소유한 특허 또한 다른 멤버들에게 공유해야 한다.[5]
중국 채굴업체들의 불만
대부분 중국에 본사를 둔 비트코인 채굴자 그룹, 특히 우지한 대표가 이끄는 비트메인은 비트코인 코어가 제안한 세그윗 계획에 불만을 느끼고 있었다. 세그윗은 확장성이라는 근본적인 문제를 의미있는 방식으로 다루지 않았고, 사토시 나카모토(Satoshi Nakamoto)가 설명한 로드맵을 따르지도 않았기 때문이다. 또한, 아래와 같은 몇 가지 이유로 받아들여질 수 없었다. 첫째, 거래에 사용할 수 있는 크기는 최대 1.7MB 블록이다. 기하급수적인 성장 및 전 세계적인 사용량을 고려할 때 여전히 턱없이 감당하지 못할 용량이다. 둘째, 소프트포크 구현 결과는 비트코인의 보안 모델이라 하기에는 미약한, 폐기할 수 있는 시그니처이다. 셋째, 대역폭의 비효율성과 세그윗이 아직 해결하지 못한 이차적인 공격으로 인해 미래의 능력 향상을 더욱더 어렵게 만든다. 무엇보다 세그윗이 이루어질 경우, 채굴자들은 채굴량을 늘리는 편법 채굴 프로그램인 에이식부스트라는 기술을 사용할 수 없을 것이기 때문에 수익성에 대한 부분에서 큰 피해를 볼 수 있어서 세그윗 제안에 대해 강한 불만을 느끼게 되었다. 중국의 우지한 대표가 이끄는 비트메인 등 여러 비트코인 채굴업체들은 세그윗을 하지 말고 비트코인의 블록사이즈를 늘리자는 입장을 내놓았다. 블록을 모든 이들의 거래를 위해 충분한 용량인 8MB로 늘리면 처리속도가 빨라진다는 것이다. 결국 비트코인 코어 팀 개발자 측과 중국 채굴자 측은 입장 차이를 좁히지 못하고 서로 갈라서게 되었다.[6]
각주
- ↑ 〈AsicBoost〉, 《더 블록》, 2018-10-22
- ↑ 비트맨작전병, 〈"비트메인(Bitmain)"과 "ASICBOOST" 간단 정리〉, 《네이버 카페》, 2017-07-17
- ↑ 3.0 3.1 NovaMining, 〈First-ever block mined using Overt-AsicBoost: Slush Pool plans Stratum Protocol Extensions as a BIP〉, 《미디엄》, 2018-03-30
- ↑ 4.0 4.1 miningadmin, 〈CRYPTOCURRENCY NEWS: BITMAIN RELEASES OVERT ASICBOOST FOR ANTMINER S9〉, 《마이닝스토어》
- ↑ 블록인프레스, 〈ASICBoost, "비트코인 네트워크 안전을 위해 특허 무료로 공유"〉, 《블록인프레스》, 2018-03-05
- ↑ 해시넷, 〈비트코인캐시의 모든 것 (우지한, 로저버)〉, 《네이버 블로그》, 2018-08-10
참고자료
- Dr. Timo Hanke, 〈AsicBoost A Speedup for Bitcoin Mining〉, 《에이식부스트 백서》, 2016-03-31
- 〈AsicBoost〉, 《더 블록》, 2018-10-22
- miningadmin, 〈CRYPTOCURRENCY NEWS: BITMAIN RELEASES OVERT ASICBOOST FOR ANTMINER S9〉, 《마이닝스토어》
- GRANT KIM, 〈비트코인 블록 다이어그램: 공개 에이식부스트 (Overt AsicBoost) vs 비공개 에이식부스트 (Covert AsicBoost)〉, 《비트맥스》, 2018-03-01
- 비트맨작전병, 〈"비트메인(Bitmain)"과 "ASICBOOST" 간단 정리〉, 《네이버 카페》, 2017-07-17
- 해시넷, 〈비트코인캐시의 모든 것 (우지한, 로저버)〉, 《네이버 블로그》, 2018-08-10
- 블록인프레스, 〈ASICBoost, "비트코인 네트워크 안전을 위해 특허 무료로 공유"〉, 《블록인프레스》, 2018-03-05
- NovaMining, 〈First-ever block mined using Overt-AsicBoost: Slush Pool plans Stratum Protocol Extensions as a BIP〉, 《미디엄》, 2018-03-30