중첩은 병렬 계산이라는 흔한 오해를 큐비트를 중심으로 알아보겠습니다.

중첩은 '동시에 다 계산해 다 읽는 것'이 아니다
양자컴퓨터를 소개하는 글에서 가장 자주 등장하는 문장이 있습니다. 큐비트는 영과 일을 동시에 가질 수 있으니, 수많은 경우의 수를 한꺼번에 병렬로 계산해 답을 순식간에 얻는다는 설명입니다. 듣기에는 매력적이지만, 이 그림은 중첩이라는 상태를 심각하게 오해하게 만듭니다. 중첩은 여러 계산을 각기 다른 방에서 동시에 돌리는 상황이 아닙니다. 그것은 여러 가능한 상태가 각자의 진폭이라는 값을 지닌 채 하나의 상태로 겹쳐 있는 것입니다. 이 진폭은 크기만 있는 확률이 아니라 방향까지 지닌 복소수 값이어서, 단순한 확률 분포와는 성격이 다릅니다. 확률이라면 각 경우가 얼마나 자주 나오는지를 나타내는 양수 하나로 끝나지만, 진폭은 서로 더해질 때 방향에 따라 커지기도 하고 지워지기도 하므로 훨씬 풍부한 셈법을 허용합니다. 중요한 것은 이렇게 겹쳐 있는 정보를 우리가 직접 들여다볼 수 없다는 점입니다. 상태를 관측하는 순간, 즉 측정하는 순간 중첩은 하나의 결과로 붕괴하고, 어떤 결과가 나올지는 각 상태의 진폭 크기에 따라 확률적으로 결정됩니다. 그러니 여러 답을 한꺼번에 품고 있다가 그 모두를 한 번에 읽어 낸다는 그림은 성립하지 않습니다. 겹쳐 있던 수많은 가능성 가운데 결국 손에 쥐는 것은 단 하나의 값뿐이며, 나머지는 그 순간 흔적도 없이 사라집니다. 같은 계산을 다시 돌려 또 한 번 측정해도 이번에는 다른 값이 나올 수 있으니, 한 번의 측정으로 모든 가능성을 회수한다는 상상은 애초에 물리와 맞지 않습니다.
그렇다면 여러 상태를 품는 일이 대체 무슨 소용이냐는 물음이 자연스럽게 떠오릅니다. 답은 측정 이전에 있습니다. 측정하기 전까지, 겹쳐 있는 진폭들끼리 서로 더해지고 깎이는 과정을 정교하게 설계할 수 있다는 데에 진짜 힘이 있습니다. 우리가 손댈 수 있는 것은 읽어 내는 결과가 아니라 읽기 직전까지의 진폭 배치이며, 그 배치를 어떻게 빚느냐가 성패를 가릅니다. 다시 말해 양자컴퓨터가 다루는 자원은 답 그 자체가 아니라, 답이 될 후보들이 서로 얼마나 세게 혹은 약하게 얽혀 나타나도록 짜인 겹침의 무늬입니다. 중첩은 결과를 한꺼번에 읽어 내는 장치가 아니라, 읽어 내기 직전까지 가능성들을 다룰 수 있게 해 주는 재료인 셈입니다. 흔히 쓰이는 병렬이라는 말이 위험한 까닭도 여기에 있는데, 그 말은 각 계산 결과를 따로따로 꺼내 볼 수 있다는 인상을 주지만 실제로는 그중 하나만 겨우 엿볼 수 있을 뿐이기 때문입니다. 이 구분을 놓치면 이후의 모든 이야기가 어긋납니다.
얽힘은 관계에만 정보가 담긴 상태이고, 그것만으로 소식을 보내지는 못한다
중첩 다음으로 오해가 잦은 개념이 얽힘입니다. 두 큐비트가 얽혀 있다는 말은, 두 큐비트를 각각 따로 떼어 완전하게 기술하는 일이 원리적으로 불가능하다는 뜻입니다. 각각의 상태를 아무리 정밀하게 적어도 전체를 담을 수 없고, 오직 둘 사이의 관계 안에만 온전한 정보가 들어 있습니다. 낱개로 나눠 적으면 반드시 무언가가 빠져나가며, 그 빠져나간 부분이 바로 얽힘의 본질입니다. 그래서 얽힌 상태에서는 한쪽만 떼어 놓고 보면 그저 무작위처럼 보일 뿐, 어떤 규칙도 드러나지 않습니다. 그런데 한쪽을 측정하면 다른 쪽의 측정 결과와 사이에 뚜렷한 상관관계가 나타납니다. 한쪽이 어떤 값으로 정해지는 순간 다른 쪽이 나올 결과의 양상이 함께 정해지는 것입니다. 이를테면 둘이 늘 같은 값으로 나오도록 얽혀 있다면, 이쪽에서 어떤 값을 얻는 순간 저쪽도 같은 값이 되도록 이미 맞물려 있는 식입니다. 바로 이 상관관계가 양자 계산에서 대단히 강력한 자원이 됩니다. 여러 큐비트를 얽어 두면 그들 사이의 관계망을 통해, 낱개의 큐비트로는 다룰 수 없는 복잡한 구조를 함께 조율할 수 있기 때문입니다. 다만 여기서 반드시 선을 그어야 할 지점이 있습니다. 얽힘이 아무리 멀리 떨어진 두 큐비트를 이어 준다 해도, 그것만으로 소식을 빛보다 빠르게 보내거나 무언가를 순간이동시키는 일은 할 수 없습니다.
이유는 앞서 말한 무작위성에 있습니다. 한쪽을 측정해 얻는 값 자체는 내가 마음대로 고를 수 있는 것이 아니라 무작위로 정해지므로, 그 값에 내가 전하고 싶은 뜻을 실을 방법이 없습니다. 멀리 있는 상대가 자기 쪽 큐비트를 아무리 여러 번 측정해도, 그가 보는 것은 규칙 없는 무작위 값들의 나열일 뿐이어서 내 쪽에서 무슨 일이 일어났는지 알아챌 수 없습니다. 상관관계는 나중에 두 결과를 맞대어 볼 때에야 비로소 드러나는데, 그러려면 한쪽의 측정 결과를 전화나 통신망 같은 평범한 수단으로 상대에게 알려 주어야 합니다. 결국 얽힘을 활용하는 모든 절차에는 고전적인 연락이 반드시 곁들여져야 하며, 빛의 속도를 넘지 못하는 이 연락의 속도가 전체를 제한합니다. 그러니 얽힘을 두고 순간이동이니 초광속 통신이니 하는 표현을 붙이는 것은 편리한 비유일지언정 실제 물리와는 어긋나며, 오히려 개념을 흐리게 만듭니다. 얽힘은 관계의 자원이지, 그 자체가 소식을 나르는 전령은 아닙니다.
진짜 핵심은 위상과 간섭이다 — 그래서 아무 문제나 빨라지지 않는다
그렇다면 중첩도 병렬 계산이 아니고 얽힘도 소식을 나르지 못한다면, 양자컴퓨터의 빠름은 대체 어디에서 나오는 것일까요. 열쇠는 진폭이 지닌 방향, 곧 위상과 그 위상들이 서로 만나 빚어내는 간섭에 있습니다. 앞서 진폭은 크기만이 아니라 방향까지 지닌 값이라고 했습니다. 방향이 같은 진폭들은 만나면 서로를 키우고, 방향이 반대인 진폭들은 만나면 서로를 깎아 없앱니다. 물결이 겹칠 때 마루끼리 만나면 더 높아지고 마루와 골이 만나면 잦아드는 것과 같은 이치이며, 이 보강과 상쇄가 곧 간섭입니다. 양자 알고리즘의 설계란 바로 이 위상을 솜씨 있게 조절하는 일입니다. 오답에 해당하는 상태들의 진폭은 서로 반대 방향으로 놓이게 만들어 상쇄시켜 지워 버리고, 정답에 해당하는 상태의 진폭은 같은 방향으로 모아 크게 키우는 것입니다. 그러면 마지막에 측정할 때 정답이 나올 확률이 압도적으로 높아집니다. 여러 갈래를 한꺼번에 계산해서 빠른 것이 아니라, 겹쳐 있는 가능성들의 위상을 조율해 원하는 답만 도드라지게 만드는 이 간섭의 설계가 속도의 진짜 원천입니다. 앞서 이야기한 중첩과 얽힘은 이 간섭이 펼쳐질 무대와 재료를 마련해 줄 뿐이며, 무대만 있고 위상을 다루는 솜씨가 없다면 아무 이득도 생기지 않습니다. 이 점을 이해하면 왜 양자컴퓨터가 만능이 아닌지도 분명해집니다. 정답의 진폭을 키우고 오답의 진폭을 지우는 간섭을 만들려면, 문제 자체에 그런 조율이 가능한 구조, 이를테면 숨은 주기나 특정한 대칭 같은 결이 있어야 합니다. 그런 결이 있어야만 오답들이 서로 짝을 이뤄 상쇄되도록 위상을 배치할 실마리를 찾을 수 있기 때문입니다. 큰 수를 소인수로 나누는 쇼어의 절차나 뒤죽박죽 속에서 답을 찾는 그로버의 절차가 이득을 보는 까닭도 그 문제들이 마침 그런 결을 지녔기 때문입니다. 반대로 그런 구조가 없는 흔한 문제에서는 진폭을 아무리 겹쳐 놓아도 상쇄와 보강을 겨냥할 실마리가 없어 별다른 이점이 생기지 않으며, 오히려 잡음과 오류가 쌓여 평범한 컴퓨터가 더 나을 수도 있습니다. 결국 중첩과 얽힘이라는 낯선 이름에 앞서 위상과 간섭이라는 열쇠를 손에 쥐어야, 이 기술이 어디에서 빛나고 어디에서는 무력한지를 과장 없이 가늠할 수 있습니다. 그래서 양자컴퓨터는 아무 계산이나 빠르게 해치우는 요술 상자가 아니라, 구조가 들어맞는 특정한 문제에서만 힘을 발휘하는 도구입니다.