게임 세계에서 널리 퍼져 있는 신화들 중의 하나는 네트워크 게임 속에서의 채팅과 관련하여 취할 수 있는 방법이 없다는 사실이다. 게이머들이 하드웨어를 조작할 수 있기 때문에 게이머는 자신에게 편리한 ‘특성’들을 첨부할 코드들을 편집할 수 있다고 많은 사람들이 생각하고 있다. 미로 속에 숨겨져 있는 지역들이 드러나게 되고 보통의 검들로도 재빠른 클릭으로 상당한 점수를 올릴 수가 있다.
필자는 이러한 요소들에 관심을 가지게 되었고 비슷한 논쟁이 거듭됨에 따라 결국에는 “게임 감시하기”라는 책을 쓰기로 결정했다. 모든 사람들이 마법사 에디터들 덕분에 영리한 게이머들의 위험에 관해 틀린 생각을 가진 것은 아니지만 그들은 기술과 메커니즘이 시작하자마자 속임수를 쓰는 게이머를 막을 수 있는 효율적인 솔루션을 제공할 수 있다는 것은 잊고 있는 듯 하다. 규칙을 강화하고 사기꾼들을 제한하는 것과 모든 사람들이 공평하게 게임 하도록 유지하는 것은 여전히 어려운 일이다. 그러나 이것은 불가능하지만은 않다.
‘Punkbuster'과 같이 가장 단순한 해결방법들로도 게으른 사기꾼들이 인터넷에 보통의 모드들로 로딩하거나 게임을 통제할 수 없다는 것을 확인시켜주는 좋은 사례를 들 수 있다. 그들의 소프트웨어는 사람들이 제대로 된 버전의 게임을 이용하고 있는지 확인하기 위해서 코드를 매 부분마다 체크하고, 또 체크한다. 지금은 훨씬 편리하게 디자인된 게임 프로그램들의 일부는 스스로가 이러한 체크시스템을 운영함으로 잘못 운영되는 것을 막으려고 한다.
더 나은 솔루션들은 서로 믿지 못하는 게이머들 간의 관계를 좀 더 완화시키기 위해 메커니즘을 이용한 방법들을 수십 년 동안 개발해온 연구들로부터 나온 암호문에서 생겨났다. 많은 사람들이 의사소통을 혼란스럽게 하는 암호화 알고리즘에 익숙한 반면에 조작법을 공유하고 규칙을 강화하며 파워를 제한하는 더 교묘해진 메커니즘에는 친숙하지 못하다.
게임산업의 가장 인기있는 발행물들은 필자들이 전화선을 통한 포커 플레이어라고 칭하는
“Mental Poker” 플레이를 둘러싸고 논쟁을 벌여왔다. 1978년에는 현재와 같은 모습의 인터넷이 존재하지 않았기 때문에 그들은 전화선을 통해 그러한 포커 카드를 어떻게 취급해왔는지를 다루어왔을 뿐이다.
진보된 알고리즘들이 카드들보다 더 섞일 수가 있다. 어떤 알고리즘은 앨리스라고 불리는 여자를 인터넷의 한 공간에 위치시키고 다른 쪽에는 문들과 상자, 혹은 컨테이너를 가지고 있는 밥이라는 남자를 놓아둘 수 있다. 이 솔루션 등식의 마술은 앨리스는 상자가 무엇인지 모르게 하면서도 밥에게는 그것을 열어볼 수 있게 하는 것이다. 이 방법은 많은 미로 게임들에게 완벽한 장치이다.
최고의 솔루션들은 모두가 중심 서버의 필요성을 제거해줌으로 게임 회사들을 도울 수가 있다. 대규모의 멀티플레이 게임들의 일부는 중심 서버를 통해 모든 결정을 내리게 되어 있기 때문에 속임수들을 다루느라 골머리를 썩히고 있다. 이러한 솔루션은 매우 효율적이지만 하드웨어와 관련하여 누군가가 지불해야 할 상당한 예산을 필요로 한다. 더 나은 메커니즘이 가격을 낮출 수 있을 것이다.
필자는 게임 산업에서 최고의 솔루션들 가운데 일부를 누가 이용하고 있는지를 살펴보기 위해 이 책을 썼다. 이것은 게임 디자이너들이 속임수를 멈추게 할 수 있는 도구들을 제공하도록 박차를 가하기를 희망하는 일종의 전도(傳道)이다. 게임 디자이너들이 직면한 문제들의 대부분을 해결해 줄 어떤 암호 제작자들을 격려하기도 할 것이다. 이미 진행된 작업들도 상당히 있다.
발췌 부분에 관해
이번 장은 본서의 핵심으로부터 디지털 현금과 그와 같은 요소들에 관한 것으로 본서의 13장이다. 암호화와 디지털 서명, 이미 소개되었던 블라인드 디지털 서명 등에 관한 기본적인 제반사항들을 포함한다. 여전히 개념들의 대부분이 어떤 믿음을 통해서만 이해될 수 있다. 대부분의 용어들은 필자 나름의 해석들이지만 도움이 필요하다면 ‘Google'을 이용하거나 이 책을 사서 보면 될 것이다.
이 책의 모든 장들은 게임 회사들이 직면한 문제들의 가상적인 이야기들을 가지고 시작되며 그 문제들을 어떻게 풀어갈 것인지를 해당 장에서 다루고 있다. ‘Never Board'는 “Monopoly"와 같은 보드게임을 위한 신뢰성 있는 은행을 만들려고 하고 있다. ’Dead tree‘ 에디션을 플레이했던 이라면 누구나 은행원을 믿지 못할 것이다. 이 장에서 다루는 디지털 캐쉬 알고리즘은 위조를 멈추게 해줄 것이다. 정부가 위조를 방지하기를 원하는 것과 같은 이유로 온라인 세계도 ’uberswords'를 +30으로 제한하고자 한다.
“Policing Online Games"의 정보는 아래의 사이트를 참고하면 된다.
http://www.wayner.org/books/pog/.
13장: 캐쉬
‘Never Board Games'의 디자인 팀은 그들이 문제에 처해있다는 것을 알고 있었다. 그들은 고전적인 보드 게임의 가상 버전을 만들려고 했지만 그들은 어느 정도의 신뢰성을 지닌 중심 서버를 이용하는 것은 피하려고 했다. 이상적으로 사람들은 모든 게임을 판정하는 ’Never Board'의 서버에 의존하지 않고도 그들의 친구들 가운데 일부와 연결될 수 있어야 했다. 이것은 ‘Never Board'의 비용을 최소화하고 하루 24시간 믿음직한 서버를 유지시켜야 하는 문제로부터 그들을 구해줄 듯 했다.
문제는 모든 기획자들이 나이가 많고 두루뭉실했다는 것이다. 그들은 어렸을 때 그들은 아무도 보지 않을 때 대출을 받는 "Monopoly"와 같은 게임 속의 은행을 운영했던 이들이었다. 그들은 딜레마에 봉착했다. 그들이 신뢰성 있는 은행을 가지고 보드 게임을 만들기를 원한 반면에 그들은 그것이 모든 이들에게 운영되게 하고 싶지는 않았다. 게임 산업계는 이 회사가 자신의 개먹이를 먹어야 한다고 오랫동안 주장해왔다. 그들은 그들이 멈출수 없을지라도 믿음직한 은행을 세우기를 원했다.
디지털 현금은 어떤 게임 디자인에 있어서도 디지털 파일을 복사하는 것이 간단하다는 이유만으로 까다로운 도전과제 가운데 하나이다. 좀 더 확장해서 문제는 플레이어가 갑옷이나, 곤봉, 주문, 책 혹은 게임 상의 가치 있는 아이템들을 만들어 내거나 복제하지 못하게 하는 것과 그다지 다를 바가 없다. 복제가 난무하면 결국 인플레이션으로 이어지고 그 가치도 하락하게 되어있다.
그러나 현금은 일반적인 아이템들과는 달리 특별한 기능을 가지고 있다.
프라이버시(Privacy) : 많은 게임들과 현실의 일부분이 재정적인 프라이버시에 의존하고 있다. 다른 플레이어가 가지고 있는 현금 규모를 알아내는 것은 많은 게임들에서 역동성을 변화시킨다. 이러한 기밀사항이 두드러진 특징은 아니지만 종종 중요한 요소로 작용한다.
가분성(Divisibility) : 변화를 이끌어낼 만한 합리적인 방법들이 확실히 있다. 지폐와 동전은 물리적으로 나눌 수가 없지만 상인들이 어떤 거래를 수행하면서 현찰의 공급을 유지시킨다. 이상적인 디지털 동전은 더 작은 단위로 나뉘어 질 수 있다.
동등성(Peer-to-Peer) : 대부분의 작은 게임에서 재정상의 프라이버시는 진행과정을 위한 중심 인가를 필요치 않는 거래들에 의존한다. 누군가가 은행에 공시하지 않고 다른 이에게 돈을 주고자 해도 은행에서는 무엇이 일어났는지 알지 못할 것이다.
이러한 일반적인 현찰들의 특징은 현실세계에서와 마찬가지로 가상 게임에서도 바람직한 것이다. 불행히도 현찰을 어떤 복잡한 메커니즘 없이 복제하는 것은 쉽지가 않다. 많은 경우에서 이러한 특징들은 정교화의 여러 다른 차원에서 이용 가능하다. 그리고 게임 디자이너는 복잡성으로 인해 발생하는 비용과 위의 특성들의 가치를 가늠해 볼 수 있다.
시리얼 넘버와 서명
지폐는 디지털 영역에서 쉽사리 적용될 수 있는 두 가지 보안상의 특징을 지니고 있다. 모든 지폐는 복제 여부를 확인할 수 있는 특별한 시리얼 넘버를 가지고 있다. 이 시리얼 넘버는 실제 서명이나 누구도 똑같은 지폐를 복제할 수 없도록 하는 효율적인 생산 메커니즘에 의해 보안될 수 있다. 이 두 가지 특성은 신뢰성 있는 소스로부터 지폐 넘버를 안정적으로 만드는데 결합된다.
기본적인 디지털 은행 지폐는 은행이 보증하는 지폐를 정의하는 데이터 구조와 디지털 서명으로 이뤄진다. 이러한 데이터 구조는 다음의 요소들을 포함한다.
독특한 시리얼 넘버(Unique Serial Number) : 각각의 지폐는 오로지 하나만 존재한다. 만약 두 개의 동일한 지폐가 나타난다면 하나는 분명히 위조된 것이다.(필수사항)
액면 금액(Denomination) : 지폐의 가치는 얼마인가?(필수사항)
적합한 소유자(Rightful holder) : 누가 지폐를 소유하는가? 이것은 은행이 거부하려고 하더라도 소유주의 권리를 보호할 수 있다. 적합한 소유주는 은행과 소유주 사이의 계약의 증거로 지폐를 취급할 수 있다.(선택사항)
이자율(Interest Rate) : 인플레 상황에서 은행은 미결제 수표의 이자를 지급할려고 할지도 모른다. 이것은 이자를 일반적인 현찰이 아닌 기금이나 공동 자본과 같이 만들게 해준다.(선택사항)
생성 날짜(Creation Date) : 이것은 이자율과 함께 지폐의 가치를 책정하게 한다. 7%의 단순 이자를 가진 수표는 생성일로부터 일년 뒤에는 1.07배의 가치를 가지게 될 것이다.
만기 날짜(Expiration Date) : 어떤 시점으로부터 해당 수표를 만료시키게 하는 것은 실제적으로는 좋은 아이디어이다. 미결제 수표를 가지고 있는 플레이어는 그것들을 새 것으로 바꿀 수 있다. 부패들은 사라질 것이다. 이것은 오래된 지폐를 소모시키지 않을 수 있기 때문에 은행의 경비를 줄일 수 있다.(선택사항)
쿠폰(Coupons) : 마케팅 전문가들은 다른 어떤 것들보다 이러한 디지털 수표들이 더욱 가치로울 방법을 찾아낼 것이다. 어떤 가게에서 10% 깎아주는 쿠폰제공을 대신해서 10%의 가치를 더한 수표들을 발행할 것이다. 이것은 아마도 혼란스러울 수도 있지만 현찰이 모든 장소에서 수표가 같은 가치를 필요로 하는지에 대한 명료성을 제외하고는 다른 이유가 없는데 공정성은 이유가 될지도 모른다. 아마존(Amazon)은 정해진 장소를 찾아낸 고객들에게 임의의 할인을 해줌으로 의도하지 않은 화를 불러일으켰다.(선택사항)
대부분의 실행들은 지폐의 핵심으로 데이터 구조를 위해 필요로 하는 영역들만을 이용할 것이다. 추가 향상들은 게임 초심자에게만 도움이 될 것이다. 괄목할 만한 것은 수표들이 제한될 필요가 없다는 것이다. 게임 디자이너는 자금이 충분하다면 필요로 하는 어떤 기능적 요소들을 첨가시킬 수 있다.
어떤 디지털 현찰 시스템은 각각의 액면가에 따라 다른 보안 장치를 사용한다. 10달러 짜리 지폐를 예로 들어보면 5달러 짜리와는 다른 디지털 장치로 서명될 것이다. 현찰의 진위 여부를 확인해야 할 필요가 있다면 올바른 방법으로 테스트 해보면 될 것이다. 이것이 잘 이뤄지면 어떤 체계가 양쪽 모두에서 사용된다고 하더라도 지폐의 데이터 구조에 액면가를 포함시킬 필요는 없다.
거래들
디지털 현찰을 위해 상대적으로 더 안전한 세계를 만들기 위한 간단한 방법 가운데 하나는 모든 거래를 감시하는 것이다. 모든 거래가 허가 받도록 되어 있다면 누군가 똑같은 지폐를 두 번 쓰려고 하자마자 복제여부가 들통날 것이다. 은행 혹은 교환처는 누가 지폐를 소유하고 있는지 거래내역의 파악을 유지할 것이다. 은행으로 소유권을 이전하다고 알림으로 수표는 거래된다. 당신이 자신의 실체를 드러내야하는 상황에 처하더라도 디지털 서명으로 개인수표를 만들 필요는 없다. 은행은 모든 플레이어의 거래내역을 기록하는 장부나 데이터베이스를 유지하고 있다.
실제로 독특한 시리얼 넘버와 서명으로 만들어진 수표들은 장부들에 기록되지 않지만 더 많은 책임들이 지워 질 것이다. 은행원은 장부의 액면가들을 좋게 혹은 나쁘게 바꿀 수 있다.
개인 수표가 액면가와 시리얼 넘버 그리고 적합한 소유주의 이름을 포함하고 있다면 은행원은 누군가의 계좌에서 현금을 삭제할 수는 없다. 누군가 지폐의 복사본을 가지고 있다면 은행이 책임을 져야 할 것이다.
* 출 처 : http://www.gamasutra.com, 2003년 10월 10일
* 작 성 : 이 성 우/게임산업저널 미국통신원