본문으로 건너뛰기

사용자 활성화 소프트포크(UASF)

소프트포크를 적용하는 방법 중에는 채굴자들이 새 규칙을 적용할 준비가 되었다는 신호를 보내고, 정해진 활성화 조건을 충족하면 새 규칙을 적용하는 방식이 있습니다. 함께 준비하기 편리하지만 채굴자들이 신호를 보내지 않으면 활성화가 멈출 수 있다는 약점이 있습니다.

사용자 활성화 소프트포크(User-Activated Soft Fork, UASF)는 이때 이용자와 노드가 직접 날짜를 정해 새 규칙을 적용하는 방식입니다. 채굴자의 신호를 무조건 기다리지 않는다는 점이 핵심입니다.

채굴자 신호를 기다리는 방식의 한계

채굴자 신호를 사용하는 활성화 절차에서는 채굴자가 블록에 준비 신호를 붙입니다. 예를 들어 BIP9는 신호가 정해진 기준을 충족한 뒤 대기 기간을 거쳐 활성화하도록 정합니다. 새 규칙을 구현한 노드들이 이 절차에 따라 규칙을 적용합니다.

이 절차는 네트워크가 함께 준비하기 쉽다는 장점이 있습니다. 그러나 채굴자들이 움직이지 않으면 이용자들은 계속 기다려야 합니다. 편의를 위해 도입된 신호 절차가 어느 순간 개정의 결정권처럼 보일 수 있는 이유입니다.

UASF는 이 관계를 다시 묻습니다. 규칙을 최종적으로 적용하는 주체가 누구인지, 채굴자의 신호가 동의의 표현인지 사실상의 거부권인지 살펴보는 방식입니다.

어떻게 작동하는가

노드 운영자들이 특정 날짜를 정해 미리 알리고, 그날부터 새 규칙을 적용한다고 선언합니다. 발동 날짜가 되면 새 규칙에 맞지 않는 블록을 받아들이지 않습니다.

채굴자가 옛 규칙에 따라 블록을 만들더라도 그 블록이 새 규칙에 맞지 않으면 해당 노드에서 거부됩니다. 채굴자 입장에서는 보상을 얻으려면 새 규칙을 따르는 편이 유리해질 수 있습니다.

이 과정은 상인들이 새 영업 규칙을 정하고, 배송 업체의 동의 여부와 관계없이 특정 날짜부터 그 규칙에 맞는 물건만 받겠다고 알리는 것과 비슷합니다. 배송 업체가 아무리 크더라도 받아 주는 곳이 없으면 물건을 내려놓을 수 없습니다. 결국 업체가 새 조건에 맞춰 올 가능성이 생깁니다.

소프트포크에서 가능한 이유

UASF는 규칙을 조이는 소프트포크에서 작동할 수 있습니다. 새 규칙을 적용하지 않은 옛 노드도 새 규칙에 맞는 블록을 받아들일 수 있기 때문입니다. 일부 노드가 먼저 새 규칙을 적용해도 체인이 하나로 남을 여지가 있습니다.

반대로 규칙을 넓히는 하드포크에서는 옛 노드가 새 규칙에 따른 블록을 거부할 수 있습니다. 모두가 함께 규칙을 바꾸지 않으면 체인이 갈라질 수 있으므로 같은 방식으로 처리하기 어렵습니다.

세그윗과 UASF

세그윗을 둘러싼 논의에서 UASF 방식이 준비되었습니다. BIP148은 정해진 시점부터 세그윗 신호가 없는 블록을 거부하는 규칙을 정의했고, BIP91은 채굴자 신호와 그에 따른 강제 규칙으로 세그윗 활성화 과정에 영향을 주었습니다.

따라서 BIP148의 규칙 적용, BIP91의 선행 적용, 세그윗 자체의 활성화는 구별해서 보아야 합니다. 당시 채굴자 신호가 맞춰졌다는 사실만으로 BIP148 규칙이 발동되지 않았다고 단정할 수는 없습니다. 결과적으로 체인이 갈라지지 않고 세그윗이 활성화되었지만, UASF 규칙의 존재 자체가 협상의 조건을 바꾸는 효과를 냈습니다.

강제로 밀어붙인 것인가

UASF를 이용자들이 다른 사람을 강제로 복종시킨 방식으로 이해하기 쉽습니다. 하지만 각 노드 운영자는 자신의 노드에서 어떤 규칙을 적용할지 선택했을 뿐입니다.

따르지 않는 채굴자나 노드 운영자를 물리적으로 명령에 따르게 만든 것은 아닙니다. 다만 각자의 선택에 따라 어떤 블록을 유효한 것으로 받아들일지가 달라지고, 그 선택이 경제 활동과 채굴 참여에 연결되면서 네트워크의 결과가 달라질 수 있습니다. 명령이 없는 환경에서 규칙이 적용되는 방식입니다.

위험과 한계

UASF는 언제나 사용할 수 있는 만능 절차가 아닙니다. 지지가 충분하지 않은 상태에서 날짜부터 정하면 체인이 갈라질 수 있습니다. 따르지 않는 쪽이 별도로 남으면 두 시장과 두 체인이 생길 위험이 있습니다.

따라서 널리 알리고 준비할 시간을 두어야 합니다. 경제적 참여와 채굴 측의 뒷받침이 부족하면 새 규칙을 선택한 쪽이 오히려 고립될 수 있습니다. 노드 수만으로 충분한 지지를 판단할 수는 없습니다.

노드 한 대의 의미

UASF 논의는 노드를 운영하는 이용자가 자신이 수용할 거래와 블록을 직접 검증한다는 점을 보여 주었습니다. 계산 능력만으로 규칙이 정해지는 것은 아닙니다.

한 대의 노드는 합의 투표의 한 표가 아닙니다. 노드 수를 세어 규칙을 결정하는 다수결 절차도 없습니다. 다만 각 노드가 어떤 블록을 받아들이지 않을지 독립적으로 선택하고, 그 선택이 실제 경제 활동과 자금 수용 여부, 채굴 참여와 연결될 때 네트워크에 영향을 줄 수 있습니다.

관련 개념은 풀노드소프트포크에서 이어서 볼 수 있습니다.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유