KTN 칼럼
[과/학/칼/럼] 양자 컴퓨터 2부
페이지 정보
본문
공학박사 박우람
서울대 기계공학 학사, 석사
미국 Johns Hopkins 대학 기계공학 박사
UT Dallas 기계공학과 교수
재미한인과학기술다 협회 북텍사스 지부장
지난 칼럼에서 양자 컴퓨터의 배경 원리가 되는 양자 중첩과 양자 얽힘을 간략히 알아보았다. 원자처럼 매우 미세한 양자는 스핀이라는 특징을 가지는데, 양자 컴퓨터에서는 그 방향을 0과 1에 대응시켜 큐비트를 만든다. 큐비트의 0과 1은 양자 중첩 상태로, 두 가지 상태가 동시에 존재한다. 그렇다면 기존의 비트를 이용한 경우와 큐비트를 이용한 경우는 어떻게, 얼마나 다를까?
비트를 이용한 기존 컴퓨터가 어떻게 작동하는지 간단하게 알아보자. 두 개의 비트 정보를 더하는 과정은 다음과 같다. 0과 0을 더하면 0이 되고, 0과 1을 더하면 1이 된다. 다만 비트는 2진법으로 작동하므로, 1 더하기 1은 2로 표시하지 않고 한 자리를 올려서 10으로 표시한다. 모든 결과 값을 두 자리 2진수로 표시하면 아래처럼 정리할 수 있다.
그런데, 컴퓨터는 이러한 작업을 신속하게 수행하기 위해 논리 게이트를 이용한다. 위 네 개의 덧셈을 다시 한 번 들여다보자. 결과 값의 둘째 자리와 왼쪽 두 숫자 사이의 관계는 아래처럼 정리할 수 있다.

즉 앞의 두 숫자가 모두 1인 경우는 1이라는 결과를 얻고, 나머지 경우는 모두 0이다. 이를 논리곱(AND)이라고 부르고 이 논리 연산을 하는 트랜지스터 구성을 AND 게이트라고 부른다. 같은 방식으로 결과 값의 첫째 자리도 아래처럼 정리된다.
두 숫자 같으면 0을, 두 숫자가 다르면 1을 보여주는 논리 연산이다. 이를 XOR 논리 연산이라 부르며 이것도 트랜지스터로 구현할 수 있다.
비슷한 방식의 논리 게이트는 여러 개가 더 있는데, 반도체 제조의 효율을 위해 범용 게이트(universal gate)를 만들어 사용한다. NAND라고 불리는 이 논리 게이트는 두 비트가 모두 1일 때는 0을 출력하고 나머지는 1을 출력한다. 앞에서 이야기한 AND 게이트 출력의 0과 1을 서로 뒤바꾼 것에 불과하다. 하지만 신기하게도 컴퓨터의 다양한 논리 게이트를 범용 게이트의 조합으로 모두 만들 수 있다는 것이 증명되어 있다. 반도체를 만들 때 범용 게이트를 계속 카피해서 넣어주고 그 연결을 조절하면 우리가 원하는 계산을 하는 반도체를 만들 수 있다.
양자 컴퓨터의 작동 원리에도 이와 비슷한 요소들이 핵심적인 역할을 한다. 기존 컴퓨터가 트랜지스터 속을 흐르는 전기의 전압으로 2진수를 표현하는 것처럼, 양자 컴퓨터에서는 양자의 스핀(업과 다운)으로 2진수를 표현한다. 하지만 양자의 스핀은 중첩의 원리에 따라 업과 다운이 동시에 섞여 있다. 이 상태에서 전기장을 걸어주면 스핀의 방향이 바뀐다. 더 정확히 표현하자면, 스핀의 방향이 바뀌도록 자기장을 잘 조절하여 양자에 걸어준다.
스핀이 처음부터 중첩되어 있기 때문에 자기장을 걸어도 중첩된 결과를 얻는다. 여기에 양자 컴퓨터의 강점이 나타난다. 잘 조절된 자기장을 두 개의 큐비트에 걸어주면 두 큐비트 스핀 정보에 따른 연산 결과 값을 얻을 수 있는데, 그 결과 값이 하나가 아니라 중첩된 상태로 나온다. 말하자면 위에서 이야기한 네 가지 덧셈을 한 번의 연산으로 완료할 수 있다는 뜻이다.
양자 컴퓨터에는독특한 특징이 하나 더 있다. 가역적 연산이 바로 그것인데, 연산을 뒤로 되돌릴 수 있다는 뜻이다. 앞에서 이야기한 비트 연산의 경우, NAND 범용 게이트를 적용하고 나온 결과 값이 0이라면 원래의 두 비트가 모두 1이었다는 것을 알지만, 결과 값이 1이라면 그것이 0과 0을 적용해서 나온 것인지 1과 0 혹은 0과 1을 적용한 결과인지 알 수 없다. 즉 연산을 되돌릴 수 없다.
하지만 양자 컴퓨터용 범용 게이트는 결과 값이 어떤 두 값의 연산 결과인지 알 수 있게 만들어져 있다. 비트 기반 연산에서는 정보량이 연산할 때마다 줄어들지만, 큐비트 연산에서는 줄어들지 않기 때문에 가능한 일이다.
0+1과 1+0이 같은 결과를 가지므로 정보량이 연산 과정에서 자연스럽게 줄어든다. 이렇게 반도체에서 연산 중에 정보가 사라지면 에너지가 소모된다는 것이 증명되어 있다. 마치 기계가 돌아가면 마찰이 반드시 존재하고, 결과적으로 에너지가 손실되는 것과 유사하다.
전통적인 반도체 업계 내에서도 설계와 알고리즘을 바꾸어, 가역적 연산을 기반으로 하는 반도체를 만들려는 신생 기업들이 있다. 그들의 목표는 에너지 효율이 비약적으로 높은 반도체를 생산하는 것이다.
양자 컴퓨터에서도 가역적 연산의 이점은 에너지 효율에 있다. 양자 컴퓨터는 큐비트를 구현하는 소자가 양자적 성질을 가지도록 온도를 낮춰야 하는 경우가 많은데, 비가역적 연산을 한다면 계속 에너지가 열에너지 형태로 소모되어 낮은 온도를 유지하기 힘들어진다. 또한, 양자 컴퓨터를 위한 다양한 가역적 연산 기반의 알고리즘도 많이 개발되어 있다.
비트코인의 암호 체계를 양자 컴퓨터가 풀면 비트코인 가격이 폭락할 거라는 뉴스가 최근에 나온 적이 있다. 하지만 그 정도의 성공적인 양자 컴퓨터가 개발된다면 그 전에 신용카드, 전자 상거래, 인터넷 등 모든 것이 무너진다. 그런 사태가 오기 전에 대책을 마련할 것이니 큰 걱정은 말자. 오히려 그런 양자 컴퓨터가 가져올 발전과 발견이 우리를 더 설레게 한다.
댓글목록
등록된 댓글이 없습니다.