알렉스의 LP 보상이 완료되어 가고 있습니다. 저도 많은 손실을 입었고 이번이 2번째 익스플로잇이라는 점이 정말 아쉽지만, 한편으로는 과거 해킹과 달리 빠르게 보상 계획을 수립하고 잘 매듭지어가는 것 같다고 생각하기도 합니다.
2번째 해킹에도 불구하고 여전히 LP를 공급하던 생태계 핵심 지지자들이 다시 알렉스를 사용할 수 있을지는 모르겠지만, 그래도 대처가 빨랐음을 이해하고 싶고, 누군가는 100% 보상을 지급한 이번 일을 보고 한번 더 알렉스를 믿어볼 거라고 생각합니다.
역설적으로 다시 알렉스가 잘 되어야만 손실을 봤던 사람들이 잘되는 그림이기에 저는 알렉스 팀을 응원합니다.
참고로 이번 응원에는 또다른 맥락이 있기도 합니다. 바로 알렉스 팀이 익스플로잇당한 경로에 대한 것인데요. 이번 사태에 대해 과거 클래리티 핵심 기여자로 일했던 마빈은 이번 일에 대해 아래와 같은 입장을 밝혔습니다. 저도 개인적으로 공감합니다.
1/ 이번 일어난 일은 끔찍한 일, 알렉스는 대처할 수 있는 만큼 잘 하다고 생각한다.
2/ 핵심 문제가 어디에 있었는지 결정하는 데 어려움을 겪었다. 나는 보통은 컨트랙트 개발자들이 해당 언어와 코드가 어떻게 실행되는지 알아야한다고 생각한다. 하지만 스마트 컨트랙은 일반적으로 개발자가 노드 자체의 부분을 복잡하게 이해할 필요없이 블록체인을 개발할 수 있도록 추상화해준다. 예를 들면 스마트 컨트랙트를 사용할 때 노드가 내부적으로 어떻게 데이터를 저장하는 지 정확히 알 필요가 없다고 생각한다.
3/ 나는 이번 공격이 얼마나 스마트한지 매우 놀랐다. 많은 사람들이 놀랐을 거라고 확신한다. 사실 이번 취약점은 클래리티 코드만 보면 전혀 발견할 수 없었다. 이번에 사용된 코드 라이브러리는 내가 만들었다. 비록 감사를 받지는 않았지만, 수십 번을 클래리티만 감사받았다고 하면 이번 공격의 원인을 발견하지 못했을 것이라고 생각한다.
4/ 이번 익스플로잇은 알렉스 컨트랙트의 설계 구성 / 스택스 노드 구성 / 클래리티 컨트랙트를 인스턴스하는 방법을 모두 알아야만 가능했다. 공격자는 스택스 노드의 작동방식에서 매우 잘 알고 있었으며, 나는 이번 공격 경로를 고려한 적이 없으며, 내가 생각하는 훌륭한 개발자들도 마찬가지였다.
5/ 알렉스는 항상 새로운 기능을 출시하는 선구자였다. 알렉스는 새로운 기능을 출시한 최초의 팀이라고 생각한다. 어떤 의미에서 ALEX는 이러한 새로운 매커니즘을 개척한 대가를 치룰 수 있다. 이제 트랜잭션 증명 라이브러리 코드를 다시 사용하려는 팀은 무엇을 주의해야하는 지 알게 되었다. 이것은 많은 다른 빌더들을 무너뜨렸을 정더로 엄밀한 공격이었다.
6/ 하지만 그럼에도 불구하고 컨트랙트의 모든 행동이 철저하게 되었어야 한다는 커뮤니틔 의견에 동의한다. 만약 알렉스 컨트랙트가 어떤 조건에서든 배포에 실패하지 않는 구조였다면, 이번 공격은 일어날 수 없었을 것이다.
7/ 이제 수정된 코드는 라이브러리를 안전하게 사용할 수 있게 만들었지만, 실제 해결책은 개발언어에 해당 기능을 추가하는 것이다. 참고로 이것은 제한이나 실수가 아니다, 디자인 선택의 차이이다. 이번 공격은 컨트랙트 설계와 스택스 노드 동작의 조합으로 인해 가능했던 것이다. 기존 로직도 합의의 일부이며, 합리적인 설계이다. 만약 현재 디자인을 변경하고자하면 하드포크가 필요하다.
8/ 앞으로 나아가려면, 스택스 커뮤니티는 서로를 지원해야 한다. 알렉스 팀은 쉼없이 빌딩해왔으며, 만약 그들이 없었다면 스택스는 지금의 위치에 있지 않을 것이다. 모든 분노는 공격자에게 직접 향해야 한다.
https://x.com/MarvinJanssen/status/1933589730173858176
