양자 컴퓨터는 중첩(superposition)과 얽힘(entanglement) 같은 양자 현상을 본질적인 방식으로 활용하는 실제 또는 이론상의 컴퓨터다. 양자 컴퓨터가 일부 계산을 어떤 고전 컴퓨터보다도 지수적으로 빠르게 수행할 수 있을 것이라고 널리 믿어진다. 예를 들어, 대규모 양자 컴퓨터는 널리 사용되는 일부 암호화 체계를 깨뜨릴 수 있고 물리학자들이 물리 시뮬레이션을 수행하는 데 도움을 줄 수 있다. 그러나 현재의 양자 계산 하드웨어 구현은 대체로 실험적인 수준이며 특화된 작업에만 적합하다.

양자 컴퓨팅에서 정보의 기본 단위인 큐비트(qubit, 즉 '양자 비트')는 일반 또는 '고전' 컴퓨팅에서의 비트와 동일한 기능을 한다. 그러나 두 상태(이진값) 중 하나에 있을 수 있는 고전 비트와 달리, 큐비트는 양자 중첩이라고 알려진 두 상태의 선형 결합으로 존재할 수 있다. 큐비트를 측정한 결과는 확률적 규칙에 따라 주어지는 두 상태 중 하나다. 만약 양자 컴퓨터가 큐비트를 특정한 방식으로 조작하면, 파동 간섭 효과가 원하는 측정 결과의 확률을 증폭시킨다. 양자 알고리즘의 설계는 양자 컴퓨터가 이러한 증폭을 수행할 수 있도록 하는 절차를 만드는 일을 포함한다.

최신 D-Wave 양자 컴퓨터의 웨이퍼 출처: Wikimedia Commons, CC BY 2.0

양자 컴퓨터는 아직 실제 응용에 실용적이지 않다. 고품질 큐비트를 물리적으로 구현하는 일은 어려운 것으로 밝혀졌다. 물리적 큐비트가 주변 환경으로부터 충분히 격리되지 않으면 양자 결깨짐(quantum decoherence)을 겪게 되어 계산에 잡음이 도입된다. 각국 정부는 더 긴 결맞음 시간(coherence time)과 더 낮은 오류율을 가진 확장 가능한 큐비트를 개발하기 위한 실험 연구에 막대한 투자를 해왔다. 대표적인 구현 예로는 초전도체(전기 저항을 제거하여 전류를 격리)와 이온 트랩(전자기장을 이용해 단일 원자 입자를 가둠)이 있다. 연구자들은 특정 양자 장치가 좁게 정의된 작업에서 고전 컴퓨터를 능가할 수 있다고 주장했으며, 이는 옳다고 널리 믿어진다. 이 이정표는 양자 우위(quantum advantage) 또는 양자 패권(quantum supremacy)이라고 불린다. 이러한 작업이 반드시 실제 응용에 유용한 것은 아니다. 그 결과, 현재의 시연들은 가까운 시일 내의 광범위한 배치의 증거라기보다는 과학적 이정표로 이해하는 것이 가장 적절하다. 2024년 12월, 구글의 윌로우(Willow) 칩은 30년에 걸쳐 이루어진 이정표인 임계값 이하(below-threshold) 오류 정정을 달성했으며, 양자 컴퓨팅에 대한 전 세계 정부 투자는 2025년 4월까지 100억 달러에 이르렀다.

역사

오랜 세월 동안 양자역학과 컴퓨터 과학 분야는 서로 다른 학문 공동체를 형성했다. 현대 양자 이론은 원자 규모에서 관측되는 난해한 물리 현상을 설명하기 위해 1920년대에 개발되었고, 디지털 컴퓨터는 그 후 수십 년에 걸쳐 지루한 계산을 수행하던 인간 계산원을 대체하기 위해 등장했다. 두 분야 모두 제2차 세계대전 중 실용적인 응용을 가졌다. 컴퓨터는 전시 암호학에서 중요한 역할을 했고, 양자물리학은 맨해튼 프로젝트에 사용된 핵물리학에 필수적이었다.

물리학자들이 양자역학 모델을 계산 문제에 적용하고 디지털 비트를 큐비트로 교체하면서, 양자역학과 컴퓨터 과학 분야는 수렴하기 시작했다. 1980년에 폴 베니오프(Paul Benioff)는 양자 이론을 사용하여 단순화된 컴퓨터를 기술하는 양자 튜링 기계를 도입했다.

디지털 컴퓨터가 빨라지면서 물리학자들은 양자 동역학을 시뮬레이션할 때 오버헤드가 지수적으로 증가하는 문제에 직면했고, 이는 유리 마닌(Yuri Manin)과 리처드 파인먼(Richard Feynman)이 양자 현상에 기반한 하드웨어가 컴퓨터 시뮬레이션에 더 효율적일 수 있다고 독립적으로 제안하도록 이끌었다.

1984년 논문에서 찰스 베넷(Charles Bennett)과 질 브라사르(Gilles Brassard)는 양자 이론을 암호 프로토콜에 적용하여 양자 키 분배가 정보 보안을 강화할 수 있음을 입증했다.

이후 1985년의 도이치 알고리즘, 1993년의 번스타인–바지라니 알고리즘, 1994년의 사이먼 알고리즘처럼 오라클 문제를 해결하기 위한 양자 알고리즘이 등장했다. 이 알고리즘들은 실용적인 문제를 해결하지는 못했지만, 중첩 상태의 양자 상태로 블랙박스를 질의함으로써 더 많은 정보를 얻을 수 있다는 것을 수학적으로 입증했으며, 이는 때때로 양자 병렬성(quantum parallelism)이라고 불린다.

2017년 디랙 메달 시상식의 피터 쇼어 출처: Wikimedia Commons, CC BY 3.0

피터 쇼어(Peter Shor)는 이러한 결과를 바탕으로 1994년에 널리 사용되는 RSA 및 디피–헬먼 암호 프로토콜을 깨뜨리는 알고리즘을 만들었고, 이는 양자 컴퓨팅 분야에 상당한 관심을 불러일으켰다. 1996년에는 그로버 알고리즘이 폭넓게 적용 가능한 비구조적 탐색 문제에 대한 양자 속도 향상을 확립했다. 같은 해, 세스 로이드(Seth Lloyd)는 양자 컴퓨터가 고전 시뮬레이션에 존재하는 지수적 오버헤드 없이 양자 시스템을 시뮬레이션할 수 있음을 증명하여, 파인먼의 1982년 추측을 입증했다.

수년에 걸쳐 실험가들은 갇힌 이온과 초전도체를 사용하여 소규모 양자 컴퓨터를 구축했다. 1998년에 2큐비트 양자 컴퓨터가 이 기술의 실현 가능성을 입증했으며, 이후의 실험들은 큐비트의 수를 늘리고 오류율을 줄였다.

2019년에 구글 AI와 NASA는 54큐비트 기계로 양자 패권을 달성했다고 발표했는데, 이는 고전 슈퍼컴퓨터가 완료하는 데 약 1만 년이 걸릴 것으로 추정되는 계산을 수행한 것이었다. 이 주장은 이후 IBM에 의해 반박되었는데, IBM은 최적화된 알고리즘을 사용하면 자사의 서밋(Summit) 슈퍼컴퓨터로 약 2.5일 만에 그 계산을 할 수 있다고 주장했고, 이는 이 이정표의 정확한 기준선을 둘러싼 논쟁을 촉발했다.

양자 컴퓨팅의 최근 이정표들은 양자 오류 정정을 통해 결깨짐을 제어하는 데 점점 더 초점을 맞추고 있다. 2024년에 연구자들은 높은 임계값과 낮은 오버헤드를 갖는 결함 허용 양자 메모리에 대한 이론적·실용적 접근법을 시연했다. 이러한 발전은 잡음 있는 중간 규모 양자(NISQ) 시대를 넘어 신뢰할 수 있고 결함을 허용하는 컴퓨팅 아키텍처로 시스템을 확장하는 데 있어 중요한 단계를 나타내지만, 대규모 물리적 구현은 여전히 진행 중인 공학적 과제로 남아 있다.

양자 정보 처리

컴퓨터 공학자들은 일반적으로 현대 컴퓨터의 동작을 고전 전기역학의 관점에서 기술한다. 이러한 '고전' 컴퓨터에서 일부 구성 요소(반도체나 난수 생성기 등)는 양자 거동에 의존할 수 있다. 그러나 이들은 환경으로부터 격리되어 있지 않기 때문에 어떠한 양자 정보도 결국 빠르게 결깨짐을 겪는다. 프로그래머들이 무작위화 알고리즘을 설계할 때 확률 이론에 의존할 수는 있지만, 중첩과 파동 간섭 같은 양자역학적 개념은 프로그램 분석에서 대체로 무관하다.

독일 에닝겐의 IBM 양자 시스템 원 출처: Wikimedia Commons, CC BY 2.0

따라서 고전 계산에서의 '고전'은 하드웨어의 미시적 물리가 궁극적으로 양자역학적인지 여부가 아니라 계산 모델을 가리킨다. 전통적인 디지털 컴퓨터는 고전 상태와 전이 규칙으로 기술될 수 있다. 메모리는 비트를 저장하고, 논리 소자는 비트의 한 구성을 다른 구성으로 변환한다. 이러한 계산 거동은 전자공학에 얽매여 있지 않으며, 유한한 상태에 대해 결정론적 변환을 수행하는 기계 장치인 튜링 기계라는 개념을 통해 추상화될 수 있다. 원리적으로 동일한 고전 전이 규칙은 물리적 시간에서 고정된 속도 저하를 동반할지언정 완전히 고전적인 기계 장치로 구현될 수 있다. 만약 고전 계산이 무작위성을 사용한다면, 이는 결맞은 양자 정보가 아니라 무작위 고전 비트에 대한 접근으로 모델링될 수 있다. 반면 양자 컴퓨터는 결맞은 양자 상태를 사용하여, 중첩, 상대 위상, 간섭이 계산 그 자체의 일부가 되며 고전적인 대응물이 존재하지 않는다.

양자 프로그램은 대신 결맞은 양자 시스템의 정밀한 제어에 의존한다. 물리학자들은 이러한 시스템을 선형대수학을 사용하여 수학적으로 기술한다. 복소수는 확률 진폭을 모델링하고, 벡터는 양자 상태를 모델링하며, 행렬은 이러한 상태에 대해 수행할 수 있는 연산을 모델링한다. 그러면 양자 컴퓨터를 프로그래밍하는 일은 이러한 요소들을 다루는 문제가 된다.