가능성의 문을 연 기술, 그리고 인류가 마주한 미래
1. 큐비트, 겹쳐진 가능성의 단위
2. 중첩은 어떻게 병렬 처리가 되는가
3. 양자 기술이 약속하는 것들
4. 양자 알고리즘과 오라클, 그리고 ‘답정너’의 세계
5. 잘못된 오라클이 선택되었을 때
6. 지금까지 인류의 편이었던 것, 시간
7. 더 빠른 미래, 더 깊은 윤리
<가능성의 문을 연 기술, 그리고 인류가 마주한 미래>
양자 컴퓨터에 대한 짧은 동영상을 보았다.
양자 컴퓨터라는 말을 뉴스나 기사에서 가끔 접하긴 했지만, 당장은 나와 상관없는 세계의 이야기라 생각해 대수롭지 않게 지나치곤 했다. 그런데 이번 영상에서 듣게 된 한 문장은 이상하리만큼 오래 머릿속에 남았다.
> “큐비트의 중첩 상태로 인해 여러 가능성을 병렬로 처리할 수 있으며, 그로 인해 연산 속도가 극적으로 빨라진다.”
이 문장을 이해하고 싶다는 마음에서, 나는 처음으로 양자 컴퓨터를 진지하게 알아보기로 했다.
1. 큐비트, 겹쳐진 가능성의 단위
Qubit(큐비트)의 개념을 어렴풋이 알고는 있었다.
기존의 컴퓨터(digital 세계)에서는 모든 정보가 0 혹은 1로 표현되는 bit로 구현되고 처리된다. 각 비트는 어느 순간에나 0이거나 1, 둘 중 하나의 확정된 상태에만 머문다.
반면 양자 컴퓨터에서는 큐비트로 구현되고 처리된다.
큐비트는 0일 수도 있고 1일 수도 있지만, 그 중간 어딘가에서 0과 1이 동시에 겹쳐져 있는 상태, 즉 '중첩(superposition)'으로도 존재할 수 있다.
큐비트의 상태를 동전으로 비유해서 생각하면 이해가 쉽다.
책상 위에 가만히 놓인 동전은 앞면이거나 뒷면, 단 하나의 상태다.
그러나 공중에서 빙글빙글 돌고 있는 동전은 앞면이면서 동시에 뒷면이라고 말할 수 있다.
우리는 손으로 잡아 보기 전까지, 어느 쪽으로 멈출지 알 수 없다.
공중에서 빙글빙글 돌고 있는 상태, 이 상태가 중첩으로 존재하는 상태라고 이해하면 된다.
큐비트도 마찬가지다.
0인 상태,
1인 상태,
그리고 0과 1이 동시에 겹쳐진 상태,
수학적으로는 (α|0⟩ + β|1⟩)로 표현되는 상태를 모두 가질 수 있다.
양자역학적으로 말하면, 전자도 측정하기 전까지 여러 가능성이 겹쳐 있는 파동으로 존재하다가, 우리가 관측하는 순간에야 비로소 하나의 값으로 확정된다는 말과 같다.
이를 조금 더 일상적인 장면으로 옮기면, 배가 고파 점심 메뉴를 고민하는 상황과 비슷하다.
나는 짜장면을 먹기로 한 나와 짬뽕을 먹기로 한 나의 가능성이 동시에 열려 있는 상태에 놓여 있다. 그리고 주문을 넣는 순간에야 비로소 둘 중 하나가 선택되고, 나는 그 선택을 실제로 먹고 있는 사람이 된다.
이때 짜장과 짬뽕 사이에서 아직 번민하고 있는 나의 상태, 바로 그것이 큐비트와 닮아 있다.
즉, 큐비트란 배고픈 내가 여러 메뉴 사이에서 결정을 미루고 있는 그 한순간처럼, 여러 가능성이 겹쳐 존재하는 상태이며, 이 지점이 곧 중첩의 핵심이다. 우리가 관측하고 주문을 넣는 순간, 중첩되어 있던 확률들이 하나로 수렴하며 결과가 확정된다.
2. 중첩은 어떻게 병렬 처리가 되는가
그렇다면 이런 큐비트의 중첩 상태로 인해 여러 가능성을 병렬로 처리한다는 말은 구체적으로 무슨 뜻일까.
왜 중첩이 병렬 처리를 가능하게 만들고, 그것이 연산 속도를 극적으로 끌어올리는 것일까.
하나의 예를 들어보자.
눈앞에 하나의 문이 있고, 열쇠 1024개가 주어졌다.
꼭 맞는 열쇠는 1024개 중에 1개다.
기존의 컴퓨터(비트 연산)에서는 다음과 같이 문제가 처리된다.
1번 열쇠부터 하나씩 문에 꽂아 보며, 열리지는 확인.
최악의 경우, 1024개의 열쇠를 모두 시험해 봐야 꼭 맞는 열쇠를 찾을 수 있다.
하지만 큐비트로 같은 상황을 바라보면 이야기가 달라진다.
중첩이 가능하기 때문에, 1024개의 열쇠를 하나씩 순차적으로 시험하는 대신, 1024개의 가능성이 겹쳐진 하나의 ‘양자 상태’를 만들 수 있다.
이게 참 받아들이기 어려운 개념이다.
“열쇠가 1024개나 있는데, 그걸 어떻게 하나의 상태로 만든다는 것일까?”
여기서, 이 "하나의 상태"가 1024개의 열쇠를 모두 버무린 하나의 파동이라는 걸 받아들여야 한다.
--> 위에서 중첩을 강조한 이유가 여기에 있다.
이때, 겉으로 보기에는 열쇠 하나인 것처럼 보이지만, 그 안에는
열쇠 1이 정답일 확률,
열쇠 2가 정답일 확률,
…
열쇠 1024가 정답일 확률
까지 모두 포함되어 있다.
실제로 열쇠의 개수가 줄어든 것이 아니라, 1024개의 열쇠가 파동처럼 포개어져 만들어진 단일한 양자 상태라고 이해하면 된다.
쉽게 이해하기 위해, 다시 중국집으로 돌아와 보자.
중국집에 앉아 있는 나는, 짜장면을 먹고 싶은 나, 짬뽕을 먹고 싶은 나, 군만두를 먹고 싶은 나, 우동을 먹고 싶은 나, 마라탕을 먹고 싶은 나...... 가 한 번에 겹쳐져 존재할 수 있다. 이것이 위에서 말한 1024개의 열쇠가 중첩된 단일한 양자 상태다. 배가 고픈 채로 중국집에 앉아 있는 나라는 한 사람 안에, 수많은 메뉴에 대한 욕구와 선택지가 동시에 겹쳐져 있는 것이다.
그렇다면 이 중첩된 상태에서 정답, 즉 문을 실제로 열 수 있는 열쇠는 어떻게 찾아낼 수 있을까.
문을 열 수 있는 열쇠는 분명 하나 존재한다.
열쇠가 중첩될 수 있다면, 우리는 중첩된 열쇠 전체, 즉 그 양자 상태를 양자 알고리즘을 이용해
정답이 되는 열쇠의 확률은 점점 더 강화하고,
틀린 열쇠들의 확률은 점점 더 약하게 만들 수 있다.
--> 이것이 가능한 이유는 "양자 간섭(quantum interference)"이라는 원리 때문이다.
양자 간섭은 파동의 성질을 바탕으로 한다. 파동은 서로 만나면 어떤 것은 겹쳐져 커지고(보강 간섭), 어떤 것은 서로를 지워 없앤다(상쇄 간섭).
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠