법이란 무엇인가? 이 묵직하고 어려운 질문에 명쾌한 답을 내릴 수 있는 사람은 거의 없을 것이다. 법을 적용하고 집행하는 법관뿐 아니라, 나처럼 법학 지식이 얕은 문외한도 이런 질문 앞에선 한참을 망설일 것이다. 그럼에도, 법을 제정한 주체가 국가이고 그 제정 목적이 사회 질서를 공정하게 유지하는 데 있다면 한 가지만큼은 확신을 갖고서 말할 수 있다. 법은 손바닥 뒤집듯 번복되어선 안 된다는 것이다. 다시 말해 처음부터 정합성있게 설계되어야 하고, 제정된 다음에는 함부로 바꾸지 말아야 한다. 이를 어려운 말로는 비가역성(非可逆性)이라고 한다.
그러나 우리의 현실 사회를 지배하는 실정법은 자주 바뀐다. 여러 가지 이유가 있을 수 있겠지만 그중 하나는 의미의 모호성과 추상성에 있다. 모든 법조문이 그런 건 아니지만 어떤 사건의 결과를 법에 비추어봤을 때, 법으로도 명쾌한 판단을 내리기가 모호한 경우가 종종 발생한다. 이는 우리 사회에서 발생 가능한 모든 사건사고를 미리 예단하고서 법을 설계할 수 없기 때문이다. 그래서 법에는 거의 항상 법관의 권위있는 해석이 따라 붙는다. 법관이 법조문을 어떻게 해석하느냐에 따라 피해자가 가해자가 되기도, 무고한 사람이 범죄자가 되기도 한다.
이러한 법의 모호성이 발생하는 이유는 원론적으로 말하자면 자연어로 쓰여져있기 때문이다. 자연어란 사람이 일상에서 쓰는 언어이며 그것이 의미하는 바를 추론할 수 있는 말을 뜻한다. '사과'나 '휴대폰'과 같이 어떤 대상을 특정하는 어휘들은 상당히 구체적이기 때문에 해석 과정에서 논쟁의 여지가 비교적 적다. 하지만 자연어는 그게 다가 아니다. '위력에 의한 간음'(안희정 전 지사 사건의 경우)이라든지 '인간으로서의 존엄'(김할머니 안락사 논쟁의 경우)과 같은 표현들은 어디까지를 '위력'으로 볼 것인지, 무엇을 인간의 '존엄함'에 포함시킬 것인가에 따라 해석의 여지가 분분하다.
이 책의 논조를 설명하기 위해 서두를 길게 작성했다. 저자는 코드(code)가 법의 대안질서가 될 수 있을 가능성에 대해 길게 설명을 하고 있다. 코드는 코딩(coding)을 하기 위해 필요한 프로그래밍 언어의 최소 단위라고 정의될 수 있겠다. 숫자, 영문자, 기호 등 여러 종류가 있으며 엄격한 형식 논리를 갖춰야 작동한다. 엄밀한 논리, 문법, 배중률에 따라 코드를 작성해야 앱이나 분석 툴 같은 걸 만들고 실행시킬 수 있다. 혹은 가상세계 속에서 데이터를 주고 받을 수 있는 프로토콜도 코드로 작성할 수도 있다. 자연어와 다른 점이라면 다른 점이다.
*배중률: 참도, 거짓도 아닌 중간을 배제하는 규율을 말한다. 어떤 문장은 참이거나 거짓 중 하나이며 제3의 가능성은 없다는 의미이다.
아무튼 코드는 가상세계를 구성하는 가장 작은 단위인 셈이다. 코드의 그런 속성을 생각한다면, 코드는 곧 가상세계를 지배하는 법률이라고도 할 수 있겠다. 좀 더 정확히 말하자면 코드 기반으로 짜여진 프로토콜(protocol)은 가상세계에서의 활동에 규칙을 부여하는 역할을 한다. 이미 잘 알려져있다시피, 인터넷은 TCP/IP라는 프로토콜을 사용해 데이터를 주고 받는다. 이 프로토콜에 맞는 규격과 방식이 아니면 인터넷 세상 속에서 데이터의 송수신은 애초에 불가능하다. 그리고 이 인터넷 프로토콜은 1960년대 말 개발된 이래로 변함없이 유지되어 오고 있다.
그래서인지 저자는 코드의 가능성을 높게 사고 있다. 코드는 엄격하고 형식화된 법칙과 배중률을 준수하도록 짜여져야 실행되기 때문에, 실정법 같은 모호성이 줄어들거라는 생각에서다. 코드는 조금의 모순이나 조금의 오차라도 발생해버리면 실행 자체가 되지 않기 때문에, 적어도 가상세계에서만큼은 코드가 실정법보다 훨씬 더 최적화될 것이라는 게 저자의 생각이다.
또 저자는 코드가 범죄를 예방하는 데도 훨씬 효과적이라고 보는 견해를 취한다. 무슨 말이냐 하니, 코드에 의해 짜여진 프로토콜은 특정한 약속에 의해서만 작동하므로 해커가 불법적 시도를 하려고 해도 불가능하다는 것이다. 프로토콜 자체를 해커가 자신에게 유리하게끔 변경해버린다면 모를까, 그러지 않는 이상 프로토콜은 범죄를 차단하는 데 도움이 된다. 현실세계의 법은 범죄가 발생한 다음 형법 등의 법조항에 근거에 범죄 행위들에 각각 가중치를 매겨 징역형이나 벌금형을 선고한다. 이 점을 생각해보면 프로토콜은 중간에 바뀌지만 않는다면, 그리고 다양한 범죄적 시나리오를 고려해 사전적으로 범죄적 시도를 예방할 수 있도록 설계된다면 현실 법의 좋은 대안이 될 수도 있다.