BIP9은 채굴자 95%가 준비 완료해야 활성화, BIP8은 준비 상황 관계없이 변경사항 곧바로 적용
비트코인 개발자 커뮤니티에서 탈중앙화 시스템의 핵심적인 문제에 관한 오랜 난제가 다시 화두로 떠올랐다. 표면적으로 아무도 책임지는 사람이 없을 때 전체 소프트웨어를 어떻게 업데이트할지에 관한 문제다.
이번 논의에 불을 지핀 것은 탭루트/슈노르(Taproot/Schnorr)라는 이름의 수년간에 걸친 프라이버시 및 확장성 업그레이드다. 해당 업그레이드는 최근 들어 많은 진전을 거뒀는데, 특히 “풀 리퀘스트(개발자의 로컬 스토리지에서의 변경사항을 다른 개발자에게 통지하는 기능)” 형태의 코드가 검토와 테스트를 거치면서 수년간 논의만 되었던 일들을 현실에 접목하고 있다.
코드 변경이 필요하다는 점 자체에 대해서는 지금까지 개발자들 사이에 논란이 많지 않다. 지금 논의되는 내용은 변경사항을 활성화해서 새로운 방식으로 비트코인 거래를 가능하게 하는 최선의 방식이 무엇인지다.
논의가 생겨난 이유는 비트코인이 특정 주체가 이끌어가는 네트워크가 아니라, 전 세계에 분산된 네트워크이기 때문이다. 어떻게 하면 전체 네트워크를 호환 가능한 방식으로 매끄럽게 업그레이드해서 구버전 소프트웨어를 가진 사람들이 계속해서 참여할 수 있도록 할 수 있을까? 네트워크 중단 없이 변경사항을 적용할 수 있는 가장 좋은 방법은 무엇일까?
한 가지 유념할 것은 세계 각지의 개발자들이 이미 비트코인 코드를 거의 매일 업데이트한다는 점이다. 비트코인 코드는 날마다 변경되고 있다. 그러나 비트코인 심층부에 영향을 미치는 ‘합의(consensus)’ 코드 변경을 매끄럽게 진행하려면, 어느 정도 조율이 필요한 “소프트포크(soft fork)”를 해야 한다.
“이행이나 채택과 관련해 최근 많은 진전을 이룩한 소프트포크 설계안이 여러 개 나왔다. 그러나 여러 이유로 활성화 방식에 관한 논의는 제한되어 있다.” - 매트 코랄로, 비트코인 코어 개발자
소프트 포크를 시행하기 위한 두 개의 선택지가 있다. 한 가지는 비트코인 개선제안서(BIP, Bitcoin Improvement Proposal) 9로 몇 차례 소프트포크에 쓰였다. BIP 9는 소프트포크 전에 채굴자들이 준비할 수 있도록 하고, 네트워크 전반으로 변경사항이 매끄럽게 퍼져나가도록 한다. 그러나 채굴자들에게 지나치게 많은 권한을 준다는 데 이의를 제기하는 사람들도 있다.
사용자 활성화 소프트 포크(UASF, user-activated soft fork)라고 알려진 BIP 8도 있다. BIP 8은 채굴자들의 준비와 관계없이 활성화된다. 코랄로는 이 방식이 실행 방법에 따라 다른 문제를 야기할 수 있다고 경고했다.
■과거의 교훈
비트코인의 확장성 논의에서 핵심적인 변화인 세그윗(SegWit)을 활성화하는 데 BIP 9가 사용된 2017년에도 비슷한 논의가 있었다. 세그윗은 채굴자가 효력이 없는 블록을 채굴해 손해를 보는 상황이 발생하지 않도록 95%의 채굴자가 준비 플래그를 올릴 때까지 변경사항을 활성화하지 않았다.
채굴풀의 대부분(네트워크상의 연산력을 결합하는 채굴자 그룹)은 세그윗이 블록 크기 한도를 함께 증가시키지 않는 한 세그윗을 지지하지 않겠다고 공표했다. (사토시 나카모토는 블록 크기 한도를 1MB로 제한해 블록에 들어갈 수 있는 거래의 수를 제한했다. 블록은 10분에 하나씩 생성된다.)
당시 적잖은 논란이 일었다. 많은 사람이 네트워크가 중앙화될 수 있다고 우려했다. 이 사건으로 인해 채굴풀이 의도된 목적 외의 변경사항에도 95% 기준을 적용할 수 있다는 것이 드러났다. 여러 비트코인 참여자가 여기에 반대했다. 채굴자들이 사용자들은 원치 않는 변경사항을 관철하기 위해 권한을 사용한다고 생각했기 때문이다.
논의가 지속되던 와중에 샤오린프라이라는 이름을 쓰는 개발자가 비트코인 참여자들이 그래도 업그레이드할 수 있다고 지적했다. 비트코인 사용자와 거래소가 변경사항을 이행할지 결정해야 하고, 채굴자들은 자신이 원하는 바를 추구할 수 있다는 것이다. 이 방식은 다른 변경사항을 활성화하는 데 사용되었다. 샤오린프라이는 BIP 8를 통해 이 아이디어를 공식화했다.
많은 참여자가 소셜미디어를 통해 세그윗 UASF를 지지한다고 공표하고 소프트웨어를 운영하기 시작했다. 이는 의도한 효과를 내는 듯 보였다. UASF가 활성화되기 전날 채굴자들은 세그윗을 지지하는 플래그를 올리기 시작했다.
UASF에는 두 가지 종류가 있었다. 하나는 더 보수적으로 시기를 결정하는 방식으로 다른 방식보다 논란이 적었다. 몇몇 비트코인 개발자들은 UASF가 변경을 시행하기 위한 더 나은 방식이라는 것을 깨닫게 되었다.
당시 비트코인 스타트업 블록스트림(Blockstream)의 개발자였던 러스티 러셀은 BIP 9를 구성하는 데 참여한 사실을 사과하기까지 했다.
“나는 BIP 9가 네트워크를 인질로 잡을 것이라고는 생각하지 못했다. BIP 9는 리스크 모델을 뒤바꿔 놓는다. BIP 8은 채굴자들이 프로세스를 막을 수 없고 가속화만 할 수 있는 더 나은 네트워크 업그레이드 방식이다.” - 러스티 러셀, 블록스트림 개발자
■오랜 기억
이 모든 것을 기억하는 일부 개발자들은 BIP 9를 사용해 탭루트/슈노르나 기타 변경사항을 이행하는 것을 우려하고 있다.
“BIP 9는 이미 실패로 판명되었다고 생각한다.” - 루스 다시르, 비트코인 코어 개발자
다시르는 확장성 논의에서 세그윗을 관철하기 위해 UASF를 사용해야 한다고 강력하게 주장한 사람 중 하나였다.
라이트닝 랩스(Lightning Labs)의 개발자 알렉스 보즈워스도 2017년 비트코인에서 갈라져 나온 비트코인캐시를 둘러싼 최근 논란을 예로 들며 비슷한 의견을 내놨다.
비트코인캐시 채굴풀 내의 한 그룹은 최근 각각 새로운 블록에서 일부 비트코인캐시를 개발 자금으로 할당할 것을 제안했다. 보즈워스는 이를 채굴풀이 암호화폐 탈중앙화 원칙을 훼손하며 자신의 권한을 사용하는 사례로 보고 있다.
“소프트포크 배포에 관한 공통적인 생각은 전통적인 채굴자 방식이다. 그러나 현재 해시레이트의 3분의 1이 코인 보조금을 훔치기 위해 검열하려는 목적으로 카르텔로 들어갔다.” - 알렉스 보즈워스, 라이트닝 네트워크 인프라 작업자
이것이 보즈워스가 더 오래된 방식 대신 UASF 방식을 지지하는 이유이다.
“서서히 타오르는 UASF가 가장 적절해 보인다.” - 알렉스 보즈워스
■하이브리드 방식
그러나 사용자 활성화 소프트포크를 유일한 활성화 방식으로 삼으면 비트코인에 해가 되는 변화가 관철될 가능성이 있다며 우려하는 이들도 있다.
예를 들어 개발자들이 처음에 BIP 9를 선호했던 이유는 95% 한계치가 일종의 안전망 역할을 해줄 수 있기 때문이었다. 채굴풀이 소프트웨어 업그레이드 작업을 하는 동안 문제가 밝혀지면 풀은 변경 이행을 멈출 수 있다. UASF는 그러나 활성화가 일단 시작되면 멈추기가 무척 어렵다.
코랄로는 이를 위해 BIP 8과 BIP 9를 혼합한 형식을 제안했다. 소프트 포크는 BIP 9로 시작한다. 그 후 “비합리적인 반대”로 소프트 포크가 실패한다면 사용자들은 6개월간 토의를 거쳐 그룹을 다시 결성할 수 있다. 그 후 커뮤니티가 여전히 변경 이행을 원한다면 1년에 걸쳐 BIP 8을 시도한다.
몇몇 개발자들은 변경 이행 기간이 너무 길다고 이야기할 수도 있다. 그러나 코랄로는 인내심이 필요하다고 말했다. 변경에 대한 반대가 정말 ‘비합리적’인지 알아내려면 시간이 필요하기 때문이다.
“BIP 9가 실패하면 그때가 오히려 커뮤니티가 얼마나 준비가 되었는지, 변경을 얼마나 원하는지 알아볼 좋은 기회가 된다. 비트코인 개발은 누가 먼저 업데이트를 완료하느냐를 겨루는 경주가 아니다. 만약 우리가 42개월을 기다려야 한다면 그 기간은 우리가 후회할 만한 선례를 남기지 않고 비트코인이 성장하게 해줄 것이다.” - 매트 코랄로
2017년에 BIP 9에 반대했던 러셀도 하이브리드 접근방식을 지지한다고 말했다. 러셀은 “채굴자들이 변경을 막으려고 했던 시도가 효과가 없었고, 변경이 연기되어서 큰 피해를 본 적도 없었기 때문에 BIP 9 활성화에 더 이상 반대하지 않는다”고 말했다.
다만, 러셀은 코랄로보다 짧은 기간을 제안하면서, “BIP 9에 1년의 기간을 두는 것은 너무 길다고 생각한다. 6개월이 적당하다고 본다"고 말했다. 그는 "만약 BIP 9 활성화가 실패하고 그것이 채굴자의 방해로 인한 것이라고 느낀다면 사용자들이 UASF를 조직할 수 있게 하는 것이다”고 덧붙였다.
엔지니어들은 남아있는 문제를 해결하기 위해 제안된 탭루트/슈노르 코드를 검토하고 있다. 따라서 개발자들이 활성화 방식에 대해 논의할 수 있는 시간은 아직 남아있다. 그러나 커뮤니티는 비트코인에 변경사항이 추가되고 네트워크에 프라이버시가 추가되기 전에 결정을 내려야 할 것이다.
/코인데스크코리아
※ 저작권자 ⓒ 파이낸셜뉴스, 무단전재-재배포 금지