강의 목록
I. 인공지능
II. 블록체인/메타버스
III. 컴퓨터과학
IV. 학문영역별 지식 및 응용
I. 인공지능
인공신경망 | 합성곱신경망 | 순환신경망 | 강화학습 | 생성신경망 |
II. 블록체인/메타버스
블록체인 기본개념 | 이더리움과 Web3 | 바닐라 메타버스 | 메타버스의 확장과 통합 |
III. 컴퓨터과학
프로그래밍언어 | 컴파일러 | 데이터베이스 | 디지털신호처리 | 데이터통신 | 컴퓨터네트워크 | 컴퓨터모델링 |
컴퓨터그래픽스 | 인공지능 | 딥러닝 | 블록체인 | 컴퓨터보안 | 인터넷보안 | 모바일컴퓨팅 |
SQL | C/C++ | C# | Swift | R | Python | Go | Java | Kotlin | Scala | JavaScript | TypeScript | Ruby | PHP |
Unity | .NET | Django | Flask | Shiny | Spring | Node.js | Ruby on Rails | Larabel | WordPress |
IV. 학문영역별 지식 및 응용
미분방정식 | 미분기하학 | 집합론 | 정수론 | 복소함수론 | 선형대수학 | 수치해석 | 위상수학 | 기하대수학 | 금융수학 |
고전역학 | 전자기학 | 통계물리학 | 양자역학 | 상대론 | 물리화학 | 생화학 | 분자생물학 | 생물정보학
금융해석학 | 금융통계분석 | 가격결정론 | 재무회계 | 재무제표분석 | 채권분석 | 파생상품 | 금융공학모형론 |
곧 공개 또는 갱신될 강의
I. 인공지능
인공신경망 | 합성곱신경망 | 순환신경망 |
II. 블록체인/메타버스
블록체인 기본개념 | Web3 | 바닐라 메타버스 |
III. 컴퓨터과학
C 기초 | Python | Flask | Dash |
IV. 학문영역별 지식 및 응용
핀테크 | 에듀테크 |
도입 강의
루미네움의 사업과 관련된 인공지능, 블록체인/메타버스, 핀테크, 에듀테크의 기초가 되는 내용들입니다.
블록체인이 만드는 신뢰의 의미 | 블록체인의 가치 | 가치가 거의 없는 종류의 블록체인 네트워크 |
멤버십과 작업증명 | 블록체인 연구개발의 내용 | 블록체인 개발의 기초 |
메타버스의 도구들 | 아바타와 SVG | 캐릭터 및 환경 생성과 인공지능 | 메타버스 도구와 관련된 현단계의 문제들 |
루미네움의 메타버스 연구개발 방향 | 이더리움 2.0 |
핀테크 |
에듀테크|
지능은 기억과 판단의 연속입니다. (말소리를 감지하고 적절하게 대답하는 일도 세부적으로 나누면 많은 판단들일 것입니다.)
큰 하나의 판단은 세세한 많은 판단들의 합이기 때문에 그런 세세한 판단 조각들을 이뤄 가는 과정에서 사람의 신경망을 흉내내는 것은 사람이 기대하는 기계의 판단을 이끌어 내는 데 유익합니다. 이런 판단은 구분과 단순화라는 과정을 필요로 하게 됩니다. (옳다, 그르다라는 판단들도 구분이자 단순화이지요.) 이런 구분과 단순화는 컴퓨터 연산에서 예컨대 콘벌루션(합성곱, convolution)과 풀링(골라냄, pooling)을 통해 잘 이루어질 수 있습니다. 그런데 이런 구분과 단순화가 사람이 지각하는 방식과 비슷하게 이루어지느냐가 이 과정을 얼마나 효과적으로 하게 될 것인가를 결정합니다.
예를 들자면 2012년의 Large Scale Visual Recognition Challenge 대회에서 제프리 힌튼 교수가 포함된 캐나다의 SuperVision 팀이 큰 차이로 우승했는데, 그때 이런 원리의 딥 콘벌루션 신경망을 사용했었습니다. 콘벌루션이나 풀링을 사용한 것은 동등한 축을 가진 2차원으로 된 이미지였으므로 합리적이고 효과적인 방법이 됩니다. 이것이 사람이 이미지를 인식하는 과정과 얼마나 닮았냐면, 사람은 이미지를 기본 2차원으로 받아들입니다. 이때 모든 픽셀을 그대로 받아들이지 않고 뭉뚱그리며, 또한 눈에 들어온 광자는 시세포에서 선택적으로 인식됩니다. 이것이 뉴런마다 하나씩의 차원을 가지는 신호로 바뀌어 뇌로 들어가고 뇌에서는 신경망으로 이루어진 필터가 기능을 하면서 세세한 판단들을 통해 최종적으로 어떤 이미지라는 결과적 판단을 하게 됩니다.즉, 제프리 힌튼 교수의 SuperVision 팀이 사용한 딥러닝 방식은 사람이 이미지를 눈을 통해 보고 뇌에서 판단하기까지의 과정과 매우 유사했다는 것입니다. 사람이 하는 것을 어느 정도 충실히 흉내냈다고 할 수 있습니다.
딥러닝의 방향
딥러닝의 방식이 얼마나 사람과 유사한 방식으로 되는가가 중요합니다. 어떤 문제에서든 이미지 인식에서처럼 사람의 방식을 흉내낸 딥 러닝일수록 효과가 클 것입니다. 이렇게 사람의 과정을 닮은 상태에서 사람이 해볼 수 있거나 생각할 수 있는 모든 경우를 빠르게 해 보는 것이므로 사람이 시간과 노력 문제로 찾아내기 힘든 많은 것들을 효과적으로 찾아 냅니다.
관계를 구현하는 신경망
이미지 인식은 빛을 평면적으로 받아들인 2차원 데이터의 해석이 중요했습니다. 2차원 합성곱 신경망(2D CNN)은 데이터들의 2차원적 관계를 찾아내려는 노력이었기 때문에 2차원 이미지 인식 문제에 매우 효과적이었습니다.
언어 이해의 경우는 데이터 안에서 또다른 관계를 찾아내야 했습니다. 단어가 순서대로 나오기 때문에 시간이 또하나의 차원을 더합니다. 그러므로 단어 데이터를 시간과 관계지어 판단하는 것이 필요합니다. 그래서 순환 신경망(RNN)이 사용되어야 합니다. 그리고 언어의 경우 마지막 단어까지 들어야 의미가 완성되는 경우가 많으므로 전에 들었던 단어에 대한 판단을 어느 정도 보류해야 합니다. 판단을 보류해야 한다는 것은 시간의 순방향이 아니라 역방향으로도 판단의 과정이 필요하다는 것을 알게 합니다. (그래서 자연어 처리에 양방향 순환신경망이 쓰입니다.)
이미지 처리를 위한 순환곱 신경망(CNN)으로 돌아가서 생각해 보면 2차원 데이터에서 특징을 파악하는 것이 핵심인데 그 특징은 어떤 점들이 중요한 관계를 가지고 강하게 연결되느냐가 많은 것을 결정합니다. 그 점들은 가까이 있을 수도 있고 멀리 떨어져 있을 수도 있습니다. 마찬가지로 언어 이해에서도 어떤 단어끼리 강하게 연결되느냐가 중요한데, 해당되는 단어들은 시간 순서에서 가까이 있을 수도, 멀리 있을 수도 있습니다.
그래서 관계를 파악할 때도 앞에 나온 단어 중에서 어떤 것을 강하게 붙들고 있어야 하는가가 말하는 내용을 특징지으며 결정합니다. (이것이 단순 RNN 외에 LSTM 또는 GRU가 필요한 이유입니다.)
평면적 관계에서 특징을 찾아내는 CNN, 순서적 관계에서 특징을 찾아내는 LSTM(long short-term memory)과 GRU(gated recurrent unit)는 매우 큰 개선입니다. 더 개선하기 위해서는 더 자유로운 형태의 효과적인 관계를 구현하는 것이 필요합니다. 놀라운 성능 개선이 있게 될 것입니다.
메타인지
단순계산뿐 아니라 딥 러닝 역시도 기계는 사람보다 단순하면서 빠르다는 사실이 적용됩니다. 딥 러닝과 같은 인공지능의 본질이 여기에 있겠습니다. 이렇게 이해한다면 컴퓨터의 지능이 큰 능력을 발휘할 수 있겠는데, 다만 메타인지의 문제가 있습니다. 메타인지는 빠름의 문제를 넘는 차원의 문제라서 또다른 breakthrough가 필요하겠습니다. 그런데 생각해 보면 메타인지 또한 관계를 효과적으로 구현하는 신경망을 통해 어느정도 구현 가능한 것을 알 수 있습니다.
인공지능의 본질은 컴퓨터의 처리과정에서 사람의 방식을 모방하게 만들고 그에 맞춰진 다양한 가능성 있는 일들을 빠르게 수행하게 하는 것임을 잊지 않으면 좋을 것입니다.
딥러닝은 왜 작동하는가
이에 대한 해답이 이미 나왔습니다. (딥 러닝은 유명한 단어가 되어 버려서 딥러닝으로 붙여 쓰겠습니다.) 많은 사람들이 딥러닝의 원리를 알 수 없다고 하지만, 사람이 가진 신경망의 작용을 흉내내어 구분, 단순화에 이어 가중치를 통한 판단 요소를 넣고 수많은 단순선택을 매우 빠른 속도로 가능하게 한 것입니다. 그렇다면 본질상 딥러닝을 모르겠다고 하는 것은 사람의 정신작용을 모르겠다고 하는 것과 비슷해집니다. 기계가 하는 딥러닝은 사람이 하는 정신작용의 부분집합이기 때문입니다.
지능은 기억과 판단의 연속인데, 이 과정에서 사람도 신경망이 작동합니다. 기계의 경우도 이런 사람의 신경망에 더 가깝도록 작동시키는 것이 곧 개선입니다.
이렇게 보면 사람의 정신작용에 대해 모르겠다고 궁금해하는 것 이상으로 딥러닝을 모르겠고 궁금한 것으로 취급할 이유가 없다는 것을 알게 됩니다. 사람의 정신작용 연구와 컴퓨터 딥러닝 연구는 많은 접점을 갖고 있습니다. 우리는 딥러닝을 모르는 것 이상으로 사람의 정신작용에 대해 모릅니다.
블록체인이 만드는 신뢰의 의미
[신뢰할 수 없는 대중과도 신뢰할 만한 합의를 할 수 있는데, 이것을 가능하게 하는 것이 작업증명이다.]
블록체인의 신뢰라는 개념은 신뢰할 수 없는 대중을 전제로 합니다. 공정한 투표를 할 수 있다면 신뢰할 수 없는 대중과도 합의에 이를 수 있는데, 그 투표의 공정성을 유지하는 것이 작업증명(PoW)입니다.
그러면 작업증명이 왜 공정성을 보장할까요? 신뢰할 수 없는 대중 가운데 누군가가 아이디를 다수 복제해서 자신의 의견을 마치 다수 의견인 것같이 만들어 버리면 공정한 합의가 불가능해지겠죠. 이 아이디 복제에 크게 제동을 거는 것이 바로 작업증명이기 때문입니다.
작업증명은 투표권을 아이디 수만큼 부여하는 게 아니라 컴퓨터의 계산능력에 부여하기 때문에 투표권을 많이 가지기 위해서는 많은 계산능력을 확보해야 합니다. 이게 돈이 많이 들기 때문에 마음대로 투표권을 부풀려 가지기 어렵습니다. 또 블록체인 네트워크에 계산능력이 많은 컴퓨터를 참여시키는 것 자체가 블록체인에 투자한 것이기 때문에 그 사람이 자신이 투자한 네트워크를 망가뜨리는 자해가 일어나기 어렵습니다. 네트워크가 충분히 커지면 자해를 하려고 해도 다른 구성원들과 그 자해를 합의하는 일이 거의 불가능해집니다. 결국 블록체인 네트워크가 안전하게 보호되면서 계속 공정하게 작동하게 됩니다.
이렇게 작동하는 것이 퍼블릭 블록체인이고, 흔히 블록체인이라고 하면 이 퍼블릭 블록체인을 가리킵니다. 예를 들면 비트코인 네트워크와 이더리움(에테레움)이 대표적인 퍼블릭 블록체인 네트워크입니다. 이더리움의 경우 화폐는 이더(에테르), 네트워크는 이더리움이라고 부릅니다.
블록체인의 가치
[블록체인의 가치는 파괴할 수 없는 전지구적 컴퓨터 네트워크에 의해 형성된다.]
앞서 블록체인의 신뢰는 작업증명을 통해서 생긴다는 기본개념을 확인했습니다.
이번에는 블록체인의 가치에 대한 기본개념을 알려 드리겠습니다.
처음 만들어진 블록체인인 비트코인 네트워크는 돈을 보관하고 전송하기 위해 만들어졌습니다. 오늘날 해외로 돈을 송금할 때 이보다 나은 방법은 없습니다. 그리고 새로운 단계의 블록체인이 만들어졌습니다. 그것은 프로그래밍이 가능한 컴퓨터로 동작하는 이더리움입니다. 이더리움은 전지구적인 단일 컴퓨터처럼 동작합니다. 이더리움상의 프로그램은 어디에서나 언제까지나 똑같이 작동합니다. 변해서는 안되는 계약에 활용될 수 있습니다. 우리는 이것을 스마트계약이라고 부릅니다.
어리석은 것으로 판명된 오해는 이런 블록체인의 내재가치에 대한 오해입니다. 비트코인이나 이더는 원래 내재가치가 없다고 생각하는 오해입니다.
이는 마치 컴퓨터 네트워크나 은행전산망이 가치가 없다고 생각하는 것과 같은 오해입니다. 만약 전지구적인 컴퓨터 네트워크를 만든다고 하면 돈이 얼마나 많이 들 것이며, 전지구를 통합한 은행전산망을 만든다고 해도 돈이 얼마나 많이 들겠습니까.
컴퓨터 하나가 있을 때 그것이 가치가 없다고 생각하는 사람은 없을 텐데, 그렇다면 컴퓨터 여러 대가 있다면? 그리고 이번엔 그 컴퓨터들이 네트워크로 연결되어 동작한다면? 그리고 그 다음으론 그 컴퓨터들이 수가 매우 많고 전지구적으로 존재하면서 다 연결되어 동작한다면? 당연히 점점 더 가치가 커질 것입니다. 돈으로 계산하기조차 힘들 정도로 가치가 클 것입니다. 특히 이런 네트워크가 전에 불가능했던 일들을 가능하게 하기 때문에 사라지지 않는 가치를 가지게 된 것입니다. 이런 것이 블록체인 네트워크입니다.
가치가 거의 없는 종류의 블록체인 네트워크
[독립된 블록체인 네트워크를 만든다고 하는, 대개 메인넷을 만든다고 표현되는 일을 시도하는 사업을 피하라. 가치가 없는 블록체인을 만드는 돈먹는 하마 같은 사업일 가능성이 크다.]
앞서 블록체인 네트워크의 가치가 매우 크다고 했는데, 어디까지나 이는 비트코인 네트워크 또는 이더리움이 그렇다는 뜻입니다. 이 네트워크들은 지구의 반 이상이 파괴되어도 그 이전과 똑같이 작동하며 누군가의 돈을 똑같이 보관합니다. 이럴 수 있는 이유는 이들 네트워크는 전지구적이기 때문입니다.
비트코인이나 이더리움은 오픈소스라서 누구나 보고 베낄 수 있습니다. 그래서 약간 변화시켜서 더 나은 것을 만들었다고 하는 말을 가끔 듣게 됩니다. 그런데 라이트코인처럼 의미 있게 큰 네트워크를 만든 것이 아니라 단지 특정 지역에 노드(네트워크를 구성하는 컴퓨터를 노드라고 부릅니다.) 몇 개가 있을 뿐이라면 그 지역에 전쟁이 나거나 하는 순간 모든 기록이 사라질 것입니다. 그리고 더 빠르다고 주장하지만 이도 검증되지 못하는 주장일 수 있습니다. 비트코인 네트워크나 이더리움처럼 전지구적으로 확장시켰을 때도 빨라야 하고 시작할 때부터의 모든 데이터가 빠른 속도로 관리될 수 있어야 하는데, 노드를 몇백 개 정도로만 확장해도 확연히 느려지는 경우가 많습니다.
즉 전지구적으로 셀 수 없을 만큼 많은 컴퓨터들에 의해 지탱되는 비트코인 네트워크나 이더리움처럼 가치 있는 블록체인 네트워크는 없습니다. 이 가치는 계산이 안 될 정도로 큽니다. 반면, 전세계는 고사하고 한 국가 전체에도 퍼져 있지 못한 종류의 블록체인 네트워크가 의미 있는 가치를 가질 수는 없습니다. 메인넷을 개발한다고 하는 사업가들이 실패하는 이유는 그런 독자적인 블록체인 네트워크는 일단 전세계에 확장시키는 것이 우선인데 그에 필요한 돈이 수천억으로도 모자라기 때문입니다. 돈 먹는 하마로 비유할 수 있습니다.
이런 새로운 블록체인 네트워크는 몇백억원 정도로 만들 수 있는 것이 아닙니다. 과거 이런 목적으로 몇백억을 모은 사업가들이 충분한 연구개발 없이, 또한 네트워크를 구성하는 충분한 컴퓨터들 즉 노드들 확보 없이 모은 것이 얼마나 문제인지요. 그리고 모은 돈으로 연구개발과 전세계적 노드 설치에 써도 절대적으로 부족할 텐데 심지어 그 돈의 절반을 다단계 마케터들에게 쏟아부어 인위적으로 가치를 올리는 데 허비한 경우가 많았습니다. 결과가 어떻게 되었겠습니까.
최소 몇천억원이 있어야 의미 있는 독립된 블록체인 네트워크를 만들 수 있습니다. 또한 대규모의 테스트넷을 만들어 시험한 후 비로소 메인넷을 론칭할 수 있습니다. 최소 몇천억원이 있어야 된다고 했는데, 이것의 실례는 카카오 자회사가 만든 클레이튼일 것입니다. 시작부터 몇천억원 투자를 받고 했으니 이에 해당할 것입니다만, 사실은 이 돈도 부족합니다. 카카오라는 배경으로 우리나라에서 알려지는 정도입니다.
대기업이 몇천억원을 투자해도 힘든 것이 독자적인 블록체인 네트워크를 새로 만드는 이런 일입니다. 새로운 기술을 개발한다면 테스트넷을 시험하는 수준도 어려울 것입니다. 그런데 겨우 몇백억원으로 메인넷을 만들겠다고 하니, 가치가 거의 없는 블록체인 네트워크가 만들어질 뿐인 것입니다.
이도 테스트 용도 등으로 가치가 있을 수 있습니다만, 그럴 경우에는 차라리 어떤 블록체인 시스템의 클론 또는 포크라고 명시하고, 할 바엔 최대한 원 시스템에 가깝게 해서 원 시스템의 많은 부가적 소프트웨어를 이용할 수 있게 하는 것이 좋습니다. 다만 테스트를 넘어서는 용도로 사용하기는 힘들 것입니다.
가치 없는 블록체인 네트워크를 만들었을 경우 블록체인 고유의 신뢰 기능을 못 하는 것이 당연합니다. 가치 없는 메인넷 사업을 하는 경우 이 때문에 정작 기능은 블록체인이 아닌 일반 데이터베이스에 맡겨서 구현합니다. 그러므로 예컨대 라이트코인처럼 단순지불검증(SPV)을 거치는, 실제 블록체인에 연결된 모바일 지갑을 iOS, 안드로이드, PC용으로 다 갖고 있는 경우와 비교한다면 가치 없는 메인넷의 경우는 이런 것들을 쓰지 못합니다.
블록체인의 단순지불검증 등으로는 안정성을 보장하지 못하기 때문에 일반적인 애플리케이션에서 사용되는 일반 데이터베이스를 쓰게 됩니다. 가치 없는 메인넷용 애플리케이션들은 그 블록체인 메인넷을 놔두고 일반 기술을 사용하여 지갑부터 시작해서 다른 모든 것들을 만들게 된다는 뜻입니다. 블록체인을 쓰는 이유가 다 사라진 경우입니다.
이렇게 블록체인이 중요해지지 않은 메인넷 사업에서는 블록체인과 별도의 데이터베이스에서 회원관리를 하고 암호화폐 전송을 중개합니다. 개인키를 사용하지 않기도 하지만 더 큰 문제는 이런 개인키를 사용자 개인이 아닌 회사 클라우드 서버에서 보관하게 된다는 것입니다. 이 모든 것들은 블록체인을 쓰는 의미가 없음을 의미합니다.
이미 블록체인이 중요하지 않게 여겨지게 되는 이런 상태에서는 네트워크의 확장도 필수적이지 않게 되니 채굴보상도 의미가 사라져 있습니다.
개인키가 회사 클라우드에 저장된다는 것은 은행 수준의 보안을 필요로 한다는 뜻이 되니 ISMS 인증 등을 받아야 하게 됩니다.
멤버십과 작업증명
[멤버십과 작업증명은 상충되는 개념이다.]
신뢰할 수 없는 대중과도 신뢰할 만한 합의를 하기 위해 작업증명(PoW)를 쓴다고 했습니다. 이것이 중요합니다.
신뢰할 수 없는 대중을 대상으로 하기 때문에 에너지 소비가 많은 작업증명을 쓰는 것입니다. 그런데 가치 없는 메인넷을 만든 경우에 암호화폐 전송 등의 기능도 회원가입 후 사용하게 하는 경우가 있습니다. 그러나 회원가입 후에만 블록체인 기능을 쓰게 하는 경우에는 작업증명(PoW)은 헛된 일을 한 셈이 됩니다. 작업증명은 멤버십이 없는 사람들에게 개방되면서도 신뢰를 획득하기 위해 고안된 방법이었으니까요.
멤버십이 활용되는 블록체인 사용의 경우는 작업증명을 할 필요가 없고, 에너지 낭비하며 해서도 안되지요. 이것을 프라이빗 블록체인이라고 합니다. 전혀 다른 합의 프로토콜을 갖고 있습니다. 이때는 네트워크를 지키기 위해 외부인을 생각할 필요가 없고 내부의 배신자로부터 보호하는 것입니다. 이것이 비잔틴 포트 톨러런스(비잔틴 장애 허용)입니다.
이것은 비잔틴 제국이 용병을 많이 쓰다 보니 용병의 배신을 어느 정도까지 견딜 수 있는지를 장군들이 고민했던 데서 기인합니다. 배신자의 비율이 3분의 1을 넘지 않도록 관리해야 했는데, 그 이유는 배신자들은 서로 알지만 방어자들은 누가 배신자인지 모르므로 아군과 적군을 동시에 공격하게 됩니다. 따라서 3분의 1 이상 배신을 하면 큰 위험에 처하게 됩니다.
이렇게 외부 방어가 아니라 내부자의 배신을 견딜 수 있는, 내부합의를 위한 프로토콜이 필요한 것이 프라이빗 블록체인입니다. 이 경우는 작업증명을 하는 것이 헛수고입니다.
암호화폐 전송 같은 기본적인 사항부터 일반 데이터베이스에다 회원 멤버십을 활용해서 하고 있다면 작업증명이 필요 없습니다. 애플리케이션의 일부에 블록체인을 사용하는 상황이 아니고 블록체인의 코어 자체, 지갑 자체가 멤버십으로 돌아가게 한다면 어디에서도 작업증명은 필요가 없습니다.
블록체인을 사용할 때 중요한 원칙이 있습니다. 블록체인 아니고도 되는 것은 절대로 블록체인을 쓰지 말라는 것입니다. 멤버십을 전제한 서비스에 작업증명을 쓰는 것은 이 원칙에도 크게 위배되는 일입니다.
블록체인 연구개발의 내용
[대기업이 아니라면 일반적인 블록체인 연구개발은 이더리움 플랫폼에서 돌아갈 댑을 만드는 것이 되어야 한다.]
애플의 iOS나 또는 그 아류인 안드로이드가 등장한 시점에서 그러한 운영체제를 만드는 것이 경쟁력을 가질 수 있을까요? 세계적인 대기업이라도 힘든 일이 될 것입니다. 그런 시점에는 대부분의 소프트웨어 회사들은 iOS 또는 안드로이드용의 애플리케이션을 만들어야 합니다. Windows가 처음 나와서 유명해졌다면 보통의 소프트웨어 기업들은 Windows용 애플리케이션을 만드는 것이 좋은 사업이 될 것입니다.
마찬가지로 프로그래밍 가능한 블록체인 시스템인 이더리움이 개발되고 전세계적 이더리움 컴퓨터네트워크가 구축된 시점에서는 이더리움 같은 것을 만들 게 아니라 이더리움을 위한 애플리케이션을 만드는 것이 좋을 것입니다.
Windows용 애플리케이션도 잘 만들지 못할 회사가 Windows 같은 운영체제 자체를 만든다고 하면 잘못될 수밖에 없지 않습니까. 그와 같은 것이 메인넷을 만든다는 시도입니다.
꼭 필요한 부분에 블록체인을 사용하는 애플리케이션을 만들면 좋은데 그런 것을 댑(Dapp)이라고 합니다. 탈중앙 애플리케이션이란 뜻입니다. 보통 블록체인의 시스템은 이더리움을 쓰고 블록체인을 사용하는 부분의 개발은 솔리디티 언어로 하게 됩니다. 나머지 부분은 마음대로 적당한 언어로 개발하고.
한편 이더리움 블록체인과 댑 사이에 있는 미들웨어를 개발할 수도 있습니다. 대기업 수준에서 가능한 일인데 매우 큰 가치가 있습니다. 체인링크 같은 것이 이런 규모의 개발에 따라 나온 것입니다. 보통은 댑 개발이 보통의 블록체인 개발이 됩니다. 매우 잘 만든 디파이(탈중앙금융) 댑이 유니스왑입니다.
이때 탈중앙이라고 하면 신뢰할 수 없는 대중을 전제하게 됩니다. 그래서 작업증명이 필수가 됩니다. 이더리움 2.0이 지분증명(PoS)을 채택할 수 있는 것은 그동안 작업증명을 통해 엄청난 규모의 건전한 참여자들이 만들어지고 네트워크가 매우 튼튼해져서 가능한 일입니다. 이더리움 아닌 네트워크가 이걸 따라하려 하면 블록체인의 의미를 잃은 블록체인이 될 것입니다. 그래서 탈중앙의 기본은 작업증명입니다.
탈중앙이 아니고 중앙의 권위에 의해 합의되는, 비잔틴 장애 허용(BFT)을 따르는 프라이빗 블록체인은 기업형 블록체인입니다. 계층적인 기업 멤버십이 상부 권위에 따라 작동하게 됩니다. 대표적인 것이 IBM이 처음 개발한 하이퍼레저입니다.
참고로 카카오의 그라운드엑스가 만든 클레이튼 같은 블록체인은 멤버십을 이용하게 되고 내부적으로 프라이빗처럼 동작하는데 그 프라이빗의 규모를 확대한 것 같은 특이한 블록체인입니다. 이더리움을 모방하되 합의수렴 프로토콜은 프라이빗의 방식을 쓴 것입니다. 따라서 작업증명 프로토콜이 아닌 BFT 프로토콜을 사용합니다. 그래서 그라운드엑스에서는 댑(Dapp)이란 용어를 쓰지 않고 비앱(Bapp)이란 용어를 쓰는 것입니다. 프라이빗 성격에서 확장된 블록체인 구조라 탈중앙과 거리가 있기 때문입니다.
블록체인 개발의 기초
[임의의 내용을 블록체인에 기록하는 코드를 작성할 수 없으면 블록체인 개발자가 아니다.]
단순해 보이지만 이 명제는 중요합니다. 블록체인을 다르게 정의하자면 이 세상에서 가장 기록이 어려운 데이터베이스 시스템입니다. 원장을 모두가 공유하는 시스템이어서 그렇습니다. 지구 반대편까지 싱크가 맞아야 되니 얼마나 기록이 어렵습니까. 블록체인의 블록도 사실은 지구 반대편 컴퓨터까지 포함해서 모든 노드(네트워크상의 컴퓨터)가 합의를 한 뒤 여기까지는 합의가 끝났다는 매듭을 짓는 것입니다. 그것이 계속 연결되니 블록체인이라고 부르는 것이고.
즉 이렇게 기록하기는 매우 어렵고 시간과 에너지가 들지만 읽는 것은 문제없이 빠른 성격의 데이터베이스입니다. 그리고 이렇게 기록할 때 매우 복잡합니다. 블록체인을 최소로 써야 오히려 좋은 댑이 되기 때문에 블록체인에 가장 핵심적인 것을 가장 최소로 기록하기 위해 애씁니다. 블록체인에 기록하는 코드를 작성한다는 것은 그래서 블록체인 애플리케이션을 개발하는 데 있어서 많은 부분을 차지하게 되지요.
그런데 이렇게 임의의 내용을 블록체인에 기록하는 것이 단순하지 않고 복잡합니다. 솔리디티 코드 작성, 노드 또는 인퓨라 같은 미들웨어를 통해 Web3에 접근하는 것 등이 복잡합니다. 인퓨라를 쓰게 되면 클라우드상에 노드만 있고 개인키는 따로 처리해야 하는 문제도 있습니다.
그래서 간단히 생각하자면 임의의 내용을 블록체인에 쓰고 읽고 바꾸고 하는 것을 시연할 수 없으면 블록체인 애플리케이션 개발자라고 하기 어려울 것입니다.
블록체인 사업
[비로소 댑(Dapp, 탈중앙 애플리케이션) 개발의 사업 환경이 조성되고 있다.]
비트코인은 블록체인이 유용할 수 있다는 가능성을 처음으로 보여 주었다고 할 수 있습니다. 많은 사람들이 해외송금에서 큰 혜택을 누리게 되었지만, 이 경우는 사업화를 목적으로 해서 만든 것이 아니었습니다. 그리고 특별한 기능을 더할 가능성을 보여준 스마트 계약은 이더리움에서부터 시작되었는데, 이것도 안정화를 거쳐 유니스왑 정도에 이르러서야 사업화의 가능성이 인정받기 시작했습니다.
또한 사업 목적의 투자를 받아야 할 때 기술개발 대신 암호화폐 거래소를 통한 투기에 돈이 몰린 경향이 있습니다. 이것이 잘못된 것이란 인식이 퍼져 나가고 규제도 강화되면서 서서히 진정한 사업화가 시작될 수 있겠습니다.
블록체인 Dapp(탈중앙 앱) 개발은 메타버스라는 환경이 잘 갖춰지면 더 힘을 얻게 될 텐데, 아직 시작단계이므로 약간 더 기다려야 할 것입니다. 즉 메타버스의 근본적 기능의 하나인 세계인들의 경제활동이 시작될 무렵 Dapp 시장이 급격히 커질 것입니다. 스마트폰 앱 시장이 아이폰의 등장 이전까지는 없었다가 급격히 팽창했던 것과 비슷합니다.
인공지능 기술과 마찬가지로 블록체인 기술도 몇번의 겨울 이후에 모든 사람이 쓰는 기술이 될 것입니다. (인터넷 기술 역시 마찬가지였고.)
루미네움도 모든 사람이 인터넷 애플리케이션처럼 메타버스와 탈중앙 애플리케이션을 쓸 때를 준비해 가고 있습니다.
메타버스의 도구들
몰입경험이 최근의 한 기술 트렌드가 되었기 때문에 메타버스도 이와 연관지어지는 경우가 많습니다.
몰입에 필요한 건 헤드 마운티드 디스플레이(HMD)와 3차원 그래픽이기 때문에 VR은 게임그래픽 기술이 사용되어 왔습니다. 이걸 전제로 다 출발하고 있어서 메타버스라고 하면 3D 게임그래픽을 생각하는 사람들이 대다수입니다. 하지만 철학적으로는 메타버스가 그런 3D 게임그래픽에서만 가능한 것이 아닙니다. 핵심요소가 아닌 것에 과도하게 집착할 필요가 없겠죠?
[메타버스에 반드시 3D 그래픽과 몰입경험이 있어야 되는 것은 아니다.]
이것은 많은 사람들이 잊기 쉽습니다. 몰입경험과 메타버스는 다른 영역입니다. 함께 결합될 때 시너지 효과가 생길 수 있을 뿐이지 둘은 별개입니다.
하지만 메타버스와 실제 세계 사이의 인터페이스는 필요합니다. 또하나의 세계를 구성할 수 있어야 하고 형상화된 아바타끼리 상호작용이 가능해야 합니다.
필수가 아닌 것을 과감하게 제거하면서도 필수 요소를 구현하는 한 방법은 저차원으로 만드는 것입니다. 3차원에서 하나 줄이면 2차원이니까 2차원 메타버스를 만든다고 가정합니다. 그런데 그러면 다시 심각해지는 것은 바로 시간에 따른 변화입니다. 이걸 움직임이라고 하죠. 그렇다면 2D 애니메이션 기술이 필요하겠죠?
아바타와 SVG
메타버스를 구현하는 것은 또하나의 세계를 만드는 것이어서 환경과 아바타를 필요로 합니다. 이것이 몰입경험을 주는 3D 게임 그래픽 수준이라면 좋겠지만 분명 그런 그래픽은 별개의 기술이고 선택적인 것입니다. 그래서 2D 그래픽을 사용해서 얼마든지 메타버스를 만들고 많은 세부영역에서 기술의 진보를 이룰 수 있다는 것이었는데, 이때 어떤 2D 그래픽을 사용하면 될까요?
이제 갈수록 중요해지고 있는 벡터그래픽, 그 중에서도 대세가 되고 있는 SVG를 함께 생각해 볼 때가 되었습니다.
매우 좋은 것은 SVG가 2D 애니메이션이 원래부터 가능합니다. 자그마치 4가지 이상의 방법도 있습니다. svg-animation이라는 요소를 SVG가 처음부터 갖고 있고, CSS 애니메이션도 추가되고 CSS 트랜지션 효과도 가미되고 여기에 DOM4 스펙의 SVG DOM도 있습니다. (이것은 Web 애니메이션입니다.)
캐릭터 및 환경 생성과 인공지능
현실과 상호작용하는 또다른 세계를 만들기 위해 이제 인공지능을 논해야 합니다.
좀 깊게 들어가자면 나의 아바타가 나의 의식 일부를 공유하게 하기 위해서는 나를 닮은 인공신경망이 아바타에 적용되어야 하겠지만, 이런 높은 단계가 아니고서도 인공지능이 필요합니다.
메타버스에 들어가는 아바타가 환경 및 다른 아바타와 상호작용을 해야 하고, 또 나와 닮은 움직임을 가져야 합니다. 단순한 사진과 그래픽으로 해결될 문제가 아닌 것은, 시시각각 변화하는 환경과 나의 행동을 미리 전부 세트로 구현해 놓을 수 없기 때문입니다. 장면과 장면 사이의 애니메이션도 다 준비된 세트가 있는 게 아니기에 생성을 필요로 합니다. 이때 인공지능의 생성 네트워크가 필요하다는 것입니다.
우선 상황에 맞는 내 아바타의 모습을 그 상황에 따라 생성해야 하겠죠. 그에 앞서 생각하자면, 정지된 내 아바타를 만드는 것부터가 내 사진이나 내 영상을 컴퓨터에게 주고 나를 닮도록 그려 내게 해야 하겠네요.
이때 나의 아바타를 픽셀로 구성하는 게 아니라 벡터그래픽으로 구현할 수 있어야 앞으로 적용하게 될 모든 것들의 요구를 맞출 수 있습니다.
그러므로 컴퓨터에게 나를 닮은 SVG 그래픽을 만들어내게 시켜야 하는데, 여기에는 강화학습을 포함한 최신 인공지능 기술들이 사용되는 것이 좋겠습니다.
인공지능을 크게 어필했던 딥마인드의 브레이크아웃(블록깨기) 얘기를 잠시 해 봅시다. 보상(리워드)을 높이기 위해 왼쪽, 정지, 오른쪽의 행동정책을 결정하게 하는 방식으로 인공신경망을 훈련해서 아타리 브레이크아웃의 제작자도 몰랐던 묘수를 찾아내게 된 것입니다.
루미네움은 이와 비슷하지만 좀더 복잡한 것에 도전합니다.
‘왼쪽, 정지, 오른쪽’보다 복잡한 SVG(scalable vector graphics) 명령 세트를 행동정책이라 합시다. SVG는 흔히 그래픽 파일로 알려져 있지만 근본적으로는 XML-based markup language for describing 2D based vector graphics입니다. 다시 말해 2차원 그래픽을 그리기 위해 만들어진 XML 기반 언어라고 할 수 있습니다. 좋은 점은 크기가 아무리 커져도 매끈한 그림이 된다는 것 외에 ‘점을 찍는’ 게 아니라 ‘알고 그리는’ 것이고 잘 그릴수록 저장분량이 적어집니다. 그래서 요즘 마이크로소프트 오피스의 아이콘들도 이 SVG로 만들어져 있습니다. SVG는 그래서 명령어들의 세트이고 어디서 시작해서 어떤 명령어와 변수를 선택해서 그리고 시작점으로 돌아올 것인지 행동 정책을 정해야 합니다. 매순간 정해야 할뿐 아니라 전체적으로 틀을 정해야 합니다. 그랬을 때 입력된 어떤 그림이나 사진과 유사하거나 특성을 잘 살리면서도 사람들을 만족시켜야 합니다. 매우 복잡하지만 SVG 명령어들을 조합해서 원래의 그림이나 사진 등과 밀접하게 연관된 예쁜 결과물을 얻어내는 게임을 한다고 생각할 수 있습니다.
이것을 저차원 메타버스 즉 2차원 메타버스에 적용하려는 것입니다. 모든 2차원 사진이나 그림을 벡터그래픽의 코드로 바꿔주는 엔진을 장착하면 2차원 메타버스는 쉽게 생성되고 심플하고 유려한 디지털 세계가 되는 것입니다. 쉽게 생각해서 그 엔진은 눈에 보이는 모든 세계를 즉각 멋진 2차원 벡터 그래픽 세계로 바꿔 주는 역할을 하게 됩니다.
가상현실(VR)이나 증강현실(AR)과 좀 비교해 봅시다. VR은 몰입이라는 요소를 중시하고 AR은 실제에 뭔가를 갖다 붙이는 것을 중시합니다. 그렇다면 몰입이 주요소는 아닌데 갖다 붙이는 건 아니고 효과적으로 단순화되면서 현실을 가깝게 반영하는 세계라면 뭐라고 부르시겠습니까? 말 하나를 만들고 싶은습니다. 메타현실(MR)이라 불러도 됩니다. 원래 MR이라고 하면 혼합현실 정도로 드물게 사용되는 경우가 있어서 루미네움에서는 그리스어의 뮤(μ, mu)를 사용해서 μR이라고 하기로 했습니다. (μ가 그리스어 메타의 첫글자이니.)
그렇다면 움직이는 물체의 입력을 준다고 해 봅시다. 동영상이 될 수도 있겠죠. 이걸 줬을 때 일단 2D 그래픽으로 변환하고 애니메이션으로 만드는 코드를 작성하는 것, 이것도 이론적으로 강화학습으로 가능합니다.
여기에 이미 있는 기술을 또 사용해 봅시다. 요즘 OpenCV는 동영상을 주면 그 안의 요소들을 잘 구분해 냅니다. 이게 자율주행에도 쓰이고 있죠. 무엇이 나무이고 사람이고 건물이고 차인지, 그리고 그 차의 움직임은 어떠하고 예상 움직임은 무엇인지 다 알아내잖습니까. 이걸 사용하는 겁니다. 그러면 어떤 동영상을 입력받았을 때 요소들을 구분할 것이고, 여기에 위에서 언급한 2차원 벡터그래픽 엔진을 이용하면 어떻게 될까요? 동영상에서 움직이는 것들을 빠르게 2차원 그래픽 애니메이션으로 변환하되 각 요소별로 구분되어 움직이게 하는 코드화가 이뤄질 것입니다. 이렇게 파악된 코드들이 전송되면?
이걸 전송하기도 쉽고 재생하기도 쉬워서 한 세계가 다른 세계에 전달되고 반영되는 것 역시 쉬워지게 되고 소통이 잘 되게 됩니다. 그래서 저차원 메타버스를 가능하게 하는 것이지요. 메타현실. 이렇게 단순하고 유려하게 생성되는 SGV 애니메이티드의 코드는 경제적이고 매우 쉽게 공유되는 메타버스 콘텐츠로 바뀌게 되는 것입니다. (이게 잘되는 게 우선이고 3차원 확장은 그 다음에 하면 됩니다. 이게 더 나은 연구개발 순서이겠습니다.)
자 그런데 여기에 추가할 얘기가 있습니다. 위에서 말한 2차원은 참으로 말하자면 3차원이에요. 시간이 하나의 차원이기 때문에. 즉 공간 3차원이 움직일 때는 이미 4차원인 것이지요.
그런데 매우 중요한 생물학적 사실 하나가 뭐냐면, 사람의 눈이 지각하는 세계는 공간은 다 2차원입니다. 시신경이 망막을 통해 빛의 정보를 2차원으로 받아들이기 때문이지요. 3차원에서 일어난 일의 신호가 정작 눈은 2차원으로 받아들이는 것. 심지어 뇌에 전달되는 과정에서는 1차원 전기신호가 됩니다. 그게 3차원 공간으로 확대해석되는 건 뇌에서이지요. 강조하건대 눈은 2차원 정보를 받는 것입니다.
이게 메타버스에서도 일어나는 일이 됩니다. 공간 2차원의 메타버스는 실은 시간 포함하면 3차원이고, 그 공간 2차원은 충분히 3차원으로 변환되어 해석되는 것입니다. 그래서 공간 2차원 메타버스에서 3차원 메타버스로의 변환은 오히려 쉬운 일이 됩니다. 즉 현재 3차원 공간 그래픽 작업에 매몰되어 더디게 발전할 이유가 없다는 것이지요.
요약하자면 2D 그래픽에 시간을 더한 세계는 실제 세계와 사실은 매우 유사해집니다. 현재의 기술을 활용해서 약간의 노력을 하면 사람들이 생각하는 것보다 메타버스는 빨리 실용화될 수 있습니다.
그런데 짐작하시다시피 메타버스는 어떤 특성을 가진 세계냐면, 실제 사람과 인공지능을 분명하게 구분할 방법이 없습니다. 사람과 인공지능간 인터페이스가 같으니까요. 이래서 메타버스에서 만날 인공지능이 또 중요해집니다.
그렇다면 이번에는 메타버스상에서 인터페이스의 가장 중요한 요소는 무엇인지 물어 본다면? 바로 자연어입니다. 사람끼리 소통을 원래 말로 하고 있었으니까 같은 방법을 인공지능이 채용한다면 메타버스에서는 사람과 인공지능이 대등하게 상호작용하는 셈이 되지요.
악인들이 악한 인공지능 캐릭터들을 메타버스에 흩뿌려 놓는 걸 상상하시나요. 그 전에 악에 대한 내성을 가진 메타버스로 만들어야 되겠다는 생각을 하는 게 좋겠습니다. 선한 인공지능 캐릭터들을 메타버스에 충분히 넣어 놓아서 우리가 사랑하는 사람들, 미래의 자손들에게 그 캐릭터들이 거꾸로 현실세계를 위한 바른 교육을 할 정도로요.
결국 이 세계와 메타버스와 그리 차이가 나지 않습니다. 선한 사람의 선한 동기는 언제 어디서나 똑같이 가치가 있다는 걸 잊으면 안 되겠습니다.
[언제 어떻게 현실화될 것인가는 도구의 문제이기도 하다.]
다음은 사람 사진을 컴퓨터가 그래픽으로 변환한 것입니다. 그런데 벡터 그래픽은 아닙니다. 현재 인공지능으로 이 정도는 해 내는데 아직 SVG를 효과적으로 생성하지는 않습니다. 그리고 SVG로 만들어내는 것 자체뿐 아니라 SVG로 얼마나 효율적이고 멋지고 용도에 맞게 만드는가가 중요할 것입니다. 많은 시도들이 있을 수 있고 성과와 특색은 천차만별일 것입니다. (이것 하나 탁월하게 만들어도 전세계 사람들이 스마트폰에 넣고 쓸 것입니다.)

자, 카메라로 촬영되는 영상을 실시간으로 애니메이티드 벡터 그래픽으로 변환한다면, 그것도 실제보다 멋지게 만들어 낸다면 당연히 모두가 좋아하지 않겠습니까? 안 나와서 사람들이 못 사는 것이지요. 그런데 불가능한 기술은 아닙니다.
그리고 이런 것 하나하나도 대단하겠지만, 아이폰이 그러했듯 현대의 기술 요소들을 종합해서 다들 바라보게 된 트렌드에 맞게 조합해 냈을 때 모두를 감동시킬 혁신이 되는 것이겠습니다.
루미네움의 메타버스 연구개발 방향
IBM PC/XT의 320×200 해상도의 CGA로도 현대의 스마트폰 화면을 꿈꿀 수 있었습니다. 기반기술의 개념이 크게 다른 게 아니니까요. 마찬가지로 모든 게 종합돼서 메타버스를 만들어 내는 게 현재 충분히 상상 가능한 일입니다. 그러므로 잠시 3D 그래픽을 잊는 게 오히려 이 기술의 발달에 긍정적인 영향을 줄 수도 있습니다. 그래서 루미네움은 2D 벡터그래픽을 사용하는 μR로 메타버스를 연구개발하려 합니다.
현재 IT는 인공지능 자연어처리, 컴퓨터비전의 발전과 통신의 발전을 경험하고 있고 그 가운데 SVG라는 벡터 그래픽이 대세가 되고 있기도 한데요, 스마트폰 등 단말기의 보급, 공간을 초월한 빠른 소통의 트렌드, 효과적인 교육의 필요성, 비대면 경제의 필요성 등을 생각해 봅시다. 이 모든 것이 결합되고 종합되어 갈 것 같습니다. (3D 그래픽 기술은 훌륭한 덤입니다.)
루미네움은 메타버스를 위해 가장 중요한 기술들에만 집중해서 μR을 이용한 메타버스 서비스를 만들도록 하겠습니다.
이더리움 2.0
아직 하나 빼먹은 이야기가 있습니다. 새로운 세상이 필요로 하는 게 뭐냐면 땅입니다. 그냥 땅이 아니라 대륙 정도가 돼서 모든 사람들이 터를 닦을 수 있을 정도의 땅이면 더 좋고요.
이 세상의 모든 활동(경제활동을 포함해서)이 땅에서 이뤄지고 있잖습니까. 땅이 중요한 이유는 땅에 집을 지어야 집이 떠나가 버리지를 않지요. 모래나 물 위에 지어 놓으면 유실되고 손상되고 장소까지 쉽게 뜻에 반하여 이동될 테고, 그걸 안전한 집이라고 하기가 어렵습니다. 그래서 메타버스에도 땅이 필요한데, 그 조건은 사라지지 않고 바뀌지 않고 누구나 확실히 그것을 기반으로 활동할 수 있어야 하는 것입니다. 일반적인 가상공간은 이 땅과 거리가 멉니다.
이런 새로운 세계의 땅 역할을 하게 된 것이 바로 이더리움입니다. 댑(Dapp)을 건설하고 자산을 보관하고 하는 데 있어서 모두에게 늘 존재하고 그 위치가 사라지지를 않으니까요. 일반 게임에서 캐릭터나 아이템을 샀다가 그걸 다른 게임에 들고 갈 수 없어서 그런 게임의 가상공간은 경제활동이 불가한 공간입니다. 그런데 이더리움에서는 무슨 아이템이든 사라지지 않고 그걸 어느 회사가 만든 게임공간에 가져가든 항상 존재하게 되어 사용하거나 팔 수 있지요. 비로소 경제활동이 가능한 공간이 된 것이지요. 이런 기술이 접목되면서 드디어 메타버스는 유의미하게 존재할 수 있게 되었습니다.
어떤 기술이 정말로 유용해지면 그 기술을 딱히 인식하지도 않고 언급하지도 않게 됩니다. 요즘 어떤 애플리케이션을 만들면서 사람들이 인터넷용 애플리케이션이란 말을 안 쓰는 이유는 그게 인터넷 기술을 쓰지 않아서가 아니라 이미 모든 애플리케이션들이 당연히 인터넷 기술을 쓰고 있어서입니다. 마찬가지로 앞으로 시간이 많이 지나면 메타버스 기술이라는 말 자체가 별로 언급되지 않을 때가 오게 될 텐데, 이미 그때는 메타버스가 매우 실생활에 영향을 끼치고 있는 것이겠습니다.
알려진 기술은 종합의 과정을 거치게 됩니다. 그 과정이 소프트웨어 회사들에게 어떤 기회를 제공합니다.
진정한 Web3는 빠르고 안정된 이더리움 2.0을 통해 구현될 예정입니다. 이더리움 2.0은 미래의 블록체인에서 UNIX나 iOS 정도의 역할을 하게 될 것 같습니다. 그리고 이 블록체인을 한 요소로 갖는 메타버스에서 계속 이용될 것입니다.
사람과 인공지능을 구별할 수 없는 특성을 지닌 메타버스란 공간에서 이더리움은 진실성의 더 중요한 도구로 활용될 것입니다.