금융 트레이딩 기업 제인 스트리트(Jane Street)가 주기적으로 내놓는 기술 챌린지 중 하나인 ASIC(Application-Specific Integrated Circuit, 주문형 반도체) 역설계 챌린지를 한 엔지니어가 성공적으로 해결하며 그 과정을 상세히 공개했습니다. 이 챌린지는 칩의 설계 파일인 GDS(Graphic Database System) 파일을 분석하여 해당 칩이 어떤 기능을 하는지 알아내는 것이 핵심입니다.
챌린지는 크게 두 부분으로 나뉘는데, 하나는 실제 칩 설계 정보가 더 많이 주어지는 워밍업 퍼즐이고, 다른 하나는 정보가 제한적인 본 퍼즐입니다. 필자는 초기에는 GDS 파일의 의미나 VCD(Value Change Dump) 파일의 용도를 모른 채 무작정 파일을 탐색하며 'clk'(클럭), 'rst'(리셋) 같은 익숙한 용어들을 발견했습니다. 특히 VCD 파일에서 'TRY AGAIN'이라는 메시지를 추출하며 칩이 특정 메시지를 담고 있음을 확인했습니다. 이 과정에서 필자는 비효율적인 방식으로 자체 회로 시뮬레이터와 GDS 뷰어를 개발하는 데 시간을 낭비하기도 했지만, 결국 'gdstk' 같은 파이썬 라이브러리와 공식 'sky130-unofficial' 문서의 도움을 받아 칩의 논리 요소와 입출력을 파악할 수 있었습니다.
이 사례는 복잡한 하드웨어의 내부를 이해하고 역설계하는 과정이 얼마나 많은 시행착오와 끈기를 필요로 하는지 잘 보여줍니다. 특히, 처음에는 무작정 뛰어들었지만 결국에는 적절한 도구와 문서를 활용하는 것이 문제 해결의 핵심이었다는 점은 시사하는 바가 큽니다. 이러한 역설계 기술은 보안 취약점 분석, 지적 재산권 침해 여부 확인, 또는 특정 하드웨어의 기능을 개선하는 등 다양한 분야에서 중요한 역할을 할 수 있습니다.