필자가 양자정보이론을 공부하던 대학원생일 때만 하더라도, 양자컴퓨터는 사람들에게 전혀 익숙한 단어가 아니었다. 그러나 최근 몇 년 사이, 뉴스와 다양한 미디어에서 양자컴퓨터에 대한 내용이 자주 등장하고, 유튜브에서도 양자컴퓨터의 원리를 설명하는 채널을 쉽게 찾아볼 수 있을 정도로, 이제 양자컴퓨터는 과학과 기술에 관심이 있는 사람이라면 한 번쯤은 접해 보았을 용어가 되었다 [1]. 조금 더 양자정보과학에 관심이 있는 사람이라면, 양자컴퓨터가 양자중첩을 활용한 양자 알고리즘을 통해 고전 컴퓨터보다 빠른 연산이 가능하다는 이야기를 들어보았을 것이다. 특히, 쇼어 알고리즘(Shor's algorithm)이 소인수 분해 문제를 빠르게 해결함으로써 현재 가장 널리 쓰이고 있는 RSA 방식의 고전 암호 체계를 깨뜨릴 수 있다는 사실도 들어본 적이 있을 것이다. 그렇다면, 이러한 양자 알고리즘이 실제 양자컴퓨터에서 구현되는 날이 머지않은 것일까? 현재 양자정보기술이 그 어느 때보다 빠르게 발전하고 있음에도 불구하고, 아쉽게도 많은 연구자들은 쇼어 알고리즘과 같은 양자 알고리즘을 구현하려면 아직 상당한 시간이 더 필요할 것으로 예상하고 있다. 그중 가장 큰 이유는 바로 양자 상태가 오류에 매우 취약하다는 점이다.
양자 알고리즘을 작동시키기 위해서는 적게는 수천 번부터 많게는 수십만 번, 혹은 그 이상의 연산이 필요하다. 그러나 현재 구현 가능한 양자컴퓨터의 오류율은 아무리 낮게 잡아도 0.1%를 넘기기 어려운 것이 현실이다. 이 숫자가 충분히 작아 보일 수도 있지만, 다시 말하면 천 번의 연산 중 한 번은 오류가 발생한다는 뜻이다. 이는 전체 연산 과정에서 평균적으로 한 번 이상의 오류가 발생함을 의미하며, 대부분의 경우 올바르지 못한 계산 결과로 이어진다 [2]. 현재 우리가 보편적으로 사용하는 고전적 컴퓨터의 오류율이 약 10-18에 불과하다는 점 [3] 과 비교하면, 이 격차는 더욱 크게 느껴진다. 이러한 양자컴퓨터의 오류를 줄이기 위해서는 양자 상태에서 오류를 유발할 수 있는 요소들을 제거하려는 다양한 하드웨어적 접근이 우선적으로 고려될 수 있다. 그러나 우주에서 날아오는 우주선(cosmic ray)조차도 양자 상태에 중대한 오류를 일으킬 수 있다는 점(이는 단순한 비유가 아니라 실제로 밝혀진 사실이다!)을 감안하면, 양자 상태를 오류 없이 완벽하게 제어하는 것은 현실적으로 불가능에 가까운 일이라고 할 수 있다.
이러한 원천적으로 차단할 수 없는 오류 문제를 해결하기 위한 소프트웨어적 접근 방식은 바로 오류정정 프로토콜을 활용하는 것이다. 이를 더 쉽게 이해하기 위해, ‘고요 속의 외침 [4] ’이라는 게임을 예로 들어 보자. 이 게임의 재미는 처음 제시된 단어가 ‘앞사람의 입모양만 보고 뒷사람이 단어를 추측하며 전달하는’ 과정을 여러 번 반복한 끝에, 마지막에 이르러 완전히 다른 말로 변질되는 것을 지켜보는 데 있다. 이는 정보 전달 과정(혹은 연산 과정)에서 오류가 발생해 원하는 결과가 제대로 전달되지 않는 상황을 잘 보여준다. 그렇다면 이 게임을 더 잘하기 위해 어떤 방법을 사용할 수 있을까? 한 가지 방법은 각 단계에 여러 명이 참여하도록 하는 것이다. 예를 들어, 같은 제시어인 “가위”를 한 사람이 아닌 세 사람이 듣고, 다음 단계로 세 사람이 동시에 전달하는 상황을 생각해 보자 [5] . 이 경우, 한 단계가 끝난 후에는 정확히 맞춘 사람과 잘못 들은 사람(예: “거위”라고 들은 사람)이 섞여 있을 것이다. 하지만 세 사람이 모여 자신이 들은 단어를 토의한 뒤 다음 단계로 전달한다면, 잘못된 단어를 수정할 기회가 생긴다. 이를 반복하면 마지막에 처음 제시어를 맞출 확률이 높아질 것으로 기대할 수 있다(물론, 게임의 재미는 줄어들 수 있겠지만). 이를 오류정정의 원리로 빗대어 보면, 정보를 여러 벌로 중복 저장(처음의 세 사람이 같은 제시어를 공유)하고, 중간중간 오류를 수정(각 단계에서 잘못 들은 “거위”를 “가위”로 고치는 과정)하는 작업을 통해 전달(혹은 연산) 과정에서 발생하는 오류를 줄이는 방식이다. 고전적 오류정정은 정확히 이와 같은 이러한 원리로 작동한다.
그렇다면 양자오류정정은 어떨까? 양자오류정정의 기본적인 작동 원리는 앞서 설명한 고전 오류정정과 유사하지만, 가장 큰 차이점은 양자정보가 고전정보와 달리 “여러 벌로 중복 저장”할 수 없다는 점이다. 이를 양자 이론에서는 “복제 불가능성 정리”라고 하는데, 쉽게 말하면 양자정보는 우리가 USB나 이메일을 통해 같은 파일, 즉 정보를 여러 명과 공유하는 행위를 할 수 없다는 것이다. 이 때문에 양자정보과학의 초기에는 양자오류정정이 불가능하다는 의견도 있었다. 하지만 쇼어(앞에서 등장한 쇼어 알고리즘을 제안한 연구자) 등의 연구자들이 양자정보를 “중복이 아닌 양자얽힘 [6] 을 통해 분산 저장하는 방식”을 고안해냈고, 이를 통해 양자정보도 오류정정이 가능하다는 사실을 밝혀냈다. 구체적으로는, 양자정보를 저장하는 기본 단위인 큐비트 [7] 하나를 여러 개의 큐비트의 얽힘 상태에 분산 저장함으로써, 각 큐비트에서 발생하는 오류를 양자정보의 손실 없이 복원할 수 있도록 하는 방식이다.
그렇다면, 양자오류정정을 활용하면 모든 양자오류를 고칠 수 있는 것일까? 안타깝게도, 그런 마법 같은 방식(세상의 대부분 일이 그러하듯)은 존재하지 않는다. 양자오류정정이 성공적으로 작동하기 위해서는 더 많은 큐비트를 활용할수록 오류의 정도가 줄어들어야 한다는 전제조건이 필수적이다. 즉, 오류정정을 작동시키기 위해 추가로 도입되는 큐비트에서 발생하는 오류보다, 오류정정을 통해 고쳐지는 오류의 효율이 더 높아야 한다는 뜻이다. 예를 들어, ‘고요 속의 외침’에서 세 사람이 아닌 더 많은 사람이 각 단계에 참여한다고 해서, 마지막에 제시어를 맞출 확률이 반드시 높아질 것인지 생각해 볼 수 있다. 이는 각 사람이 앞사람의 글자를 얼마나 정확히 전달할 수 있는지에 따라 달라질 것이다. 만약 “가위”를 “거위” 혹은 다른 단어로 잘못 들은 사람이 많다면, 참여하는 사람이 많아질수록 토의를 통해 정답을 도출할 확률보다는 다양한 오답(“거위”, “바위”, “가지” 등)으로 변질될 가능성이 커질 것이다. 이런 상황에서는 다음 단계로 잘못된 정보가 계속 전달되는 결과를 초래할 것이다. 따라서, 이러한 오류정정이 효과적으로 작동하려면 각각의 큐비트의 오류율이 충분히 낮아야 한다는 점을 알 수 있다. 더 구체적으로, 양자오류정정 방식에 따라 특정 임계 오류값이 존재한다는 사실이 잘 알려져 있다. 즉, 소프트웨어적 접근인 양자오류정정이 제대로 작동하려면 충분히 낮은 오류율의 양자 상태를 생성하고 제어하는 하드웨어적 발전이 필수적이다. 실제로, 최근 구글이 발표한 양자 프로세서 ‘윌로우(Willow)’ 칩이 임계 오류값을 넘어섰다는 실험 결과가 공개되면서 전 세계를 놀라게 했으며, 양자오류정정의 실현 가능성에 대한 기대 또한 점차 커지고 있다.
지금까지의 예시에서는 정보를 전달하는 단순한 과정만을 고려하였지만, 양자 알고리즘을 구현하려면 여기에 더해 다양한 종류의 양자연산을 작용할 수 있어야 한다. 양자 연산 과정의 각 단계마다 발생하는 일정 수준의 오류를 지속적으로 보정하여 오류 없는 연산이 가능한 양자 연산장치는 “결함허용 양자컴퓨터”라고 불리우며, 현재 양자정보과학 분야에 있어 가장 큰 목표 중 하나로 여겨진다. 더욱이, 양자 알고리즘을 작동시키기 위해서는 이러한 양자 연산을 하나의 큐비트가 아닌 적게는 수십개에서 많게는 수천개의 큐비트에 성공적으로 구현해야 하니, 넘어야 할 이론적/기술적 장벽들이 얼마나 많을지 쉽게 가늠할 수 있을 것이다. 어려운 목표인 것은 분명하지만, 이를 이루기 위해 설립된 양자컴퓨팅 기업들과 세계 각국의 대학 및 연구소에서 밤낮없이 연구를 이어가고 있는 만큼, 언젠가는 오류 없이 양자 알고리즘을 구현할 수 있는 진정한 양자컴퓨터가 등장할 날을 손꼽아 기다려 본다.
[1] <크로스로드>에도 라영식 교수님의 “빛으로 양자컴퓨터 만들기”와 정연욱 교수님의 “양자우월성과 양자컴퓨터”가 기고된 바 있다.
[2] 대부분의 알고리즘은 계산 중간의 하나의 오류가 이후 계산 과정에 모두 영향을 미치기 때문에, 전체 계산결과에 치명적인 오류로 이어진다.
[3] 즉, 1018번의 연산 중 오류가 한번꼴로 일어난다는 것이며, 이는 대부분의 알고리즘에서 요구되는 연산의 수를 아득히 넘어선다.
[4] 그 옛날 ‘가족오락관’에서부터 시작된 게임이지만, 최근까지도 여러 예능 프로그램에서 등장하였기에 현재 이 글을 읽는 젊은 독자들에게도 친숙한 게임일 것으로 생각된다.
[5] 굳이 세 사람으로 설정한 이유는 오류정정에서 다수결의 원칙을 이용하기 위해 필요한 최소한의 수가 3이기 때문이기도 하다. 그러나, 본 글에서는 이를 자세히 다루지는 않는다.
[6] 양자얽힘과 중첩에 대한 보다 흥미로운 이야기들은 <크로스로드>에 기고된 김도헌 교수님의 “양자중첩과 얽힘”과 한정훈 교수님의 “양자역학적 중첩에 대한 사고실험”에서 찾아볼 수 있다.
[7] 영어로는 qubit라고 적으며, quantum bit의 약자이다.
10
독자님의 정보를 입력해주세요.
* 는 필수항목입니다
첨부파일은 최대 3개까지 가능하며, 전체 용량은 10MB 이하까지 업로드 가능합니다. 첨부파일 이름은 특수기호(?!,.&^~)를 제외해주세요.(첨부 가능 확장자 jpg,jpeg,png,gif)