평소 블록체인 기술에 관하여 관심을 갖고 있었다.
이에 관하여 교수님께 여쭤보니 블록체인 자체 만으로 무엇을 하는 것 보다는 이를 이용한 연구를 수행하는 것이 좋지 않겠느냐는 답변을 받고, 어떻게 블록체인을 활용할 수 있을까에 관해 찾아보다가 IEEE Access에서 AI에 활용할 수 있지 않을까에 관한 논문을 찾아서 나름대로 정리한 것을 서술해보려 한다.
이 논문에서 AI에 블록체인을 어떻게 활용할 수 있는지에 관해 알아보려 한다.
I. INTRODUCTION
필자에 따르면, 블록체인은 과장되어 있는 기술(one of the most hyped innovations) 중에 하나라고 한다. 2008년 이래로(Bitcoin을 말하는듯 함) 블록체인은 결제의 자동화, 거래(트랜잭션)의 추적과 그 방식 등에 관한 혁명적인 기술(disruptive innovation)이었다고 한다. 매우 높은 비율 효율성을 가진 이 기술은 변경이 불가능하고 동기화가 되는 타임스탬프를 기록하여 보안을 높였다고 한다.
이는 암호화폐의 측면에서 서술된 문장인 듯 하고, 필자는 다른 분야에서도(Another promient field) 큰 관심을 받고 있다고 한다. 이 분야는 기계가 수집한 데이터를 기반으로 학습 및 추론을 하고 이를 적용하여 인지 기능을 갖도록 하는 AI 분야다. 2019년 시점에서의 시장 조사에 따르면 2030년까지 AI 분야 시장은 13조 달러 규모까지 성장할 것이라고 한다.
이러한 큰 잠재성을 가진 AI에 블록체인 기술을 어떻게 활용할 수 있을까?
블록체인의 탈중앙화(Decentralized) 특징을 이용하여 Decentralized AI에 활용할 수 있다고한다.
Decentralized AI가 무엇일까?
Decentralized AI는 AI와 블록체인 기술이 융합된 AI 기술로 과정과 적용에 분산화 되어있고 탈중앙화적인 블록체인의 전자적 서명(digitally signed)을 이용하여 신뢰성을 높이고, 보안이 뛰어난 상태의 데이터 공유가 가능하게 해주는 AI의 기술 중 하나이다.
블록체인의 스마트 계약(smart contracts)를 사용하여 데이터의 접근, 생성 등에 관하여 제약을 할 수 있다.
전자 계약을 기반으로 한 자동화 된 시스템은 AI에서의 학습 및 추론과 적용을 블록체인에서의 노드 채굴자들에 의해 검증되어, 신뢰할 수 있는 결정을 내릴 수 있게 해줄 것이라 한다.
이 논문이 기여하는 바를 아래 다섯가지로 요약할 수 있다고 한다.
- 블록체인의 주요한 특성 및 기술에 관한 기초와 이를 어떻게 AI에 적용할지
- AI와 블록체인의 융합이 새로운 탈중앙화 경제의 새로운 생태계에 어떻게 도움을 줄지
- 기존의 Decentralized AI에 더하여 블록체인 플랫폼, 아키텍쳐, 인프라 유형 그리고 합의 프로토콜에 관한 자세한 분류
- 여러 분야에서의 블록체인을 활용한 AI가 어떻게 사용되고 있는지에 관한 보고와 논의
- 미래의 AI 응용 프로그램에 블록체인의 적용과 확대에 관한 Open Research Challenges 개요
이 논문의 뒷부분은 다음과 같이 구성된다.
섹션 2(Background)에서는 블록체인과 AI 기술의 배경에 관해서와 기존의 AI 기술을 변환하는 데 어떻게 도움을 주는지에 관하여 논의한다.
섹션 3(Taxonomy)에서는 세부적인 분류를 제시한다.
섹션 4(Blockchain-Enabled AI Applications)에서는 AI를 위한 블록체인 어플리케이션을 설명한다.
섹션 5(Open Research Challenges)에서는 다양한 공개 연구 과제와 문제를 제시한다.
섹션 6(Conclusion)에서는 논문을 마무리한다.
II. Background
섹션 2에서는 블록체인과 AI에 대한 개요, 블록체인 기술을 활용한 AI와 해당 App을 여러가지 방면으로 전환하는 방법에 대해 논한다.
A. Blockchain
블록체인은 오픈 소스이고, 데이터들은 네트워크로 연결된 피어들간에 분산되어 있으며 그 데이터는 불변한다. 블록체인은 블록들의 체인으로, 이들로 렛저(ledger)을 형성한다.
렛저(ledger)는 분산 블록체인 네트워크에 접근하는 참여자들 간에 발생한 거래와 상호작용에 대해 영구적인 기록을 갖고있는다.
비트코인(Bitcoin)을 예시로 들어, 전자 화폐의 유효성을 확인하는 대신에 블록체인 마이닝 노드는 블록에 데이터를 실행, 확인 및 저장을 한다고 설명한다.
스마트 계약(smart contracts)은 사전에 정의되어있는 조건들이 수행되는지를 확인할 수 있는 코드이다.
이더리움(Ethereum)이 대표적으로 이를 활용하는 전자 화폐인데, 스마트 계약은 트랜잭션(tran-saction)을 이더리움 지갑의 주소에 위탁하고, 해당 트랜잭션에 위탁된 input에 따라서 스마트 계약의 내용이 수행된다.
이더리움은 이더(Ether)라는 자산을 사용하는데, 이는 이더리움 블록체인에서 트랜잭션을 위한 거래 수단으로 사용된다. 이더리움 네트워크의 각각의 참여자들은 유니크한 주소값인 이더리움 주소(Eth-ereum Address, EA)를 갖는다.
일반적으로 블록체인들은 큰 양의 데이터들을 저장하기 위해 비싼 값을 치룬다.
예를들어, 비트코인 블록체인에서는 1MB당 1블럭을 사용하기 때문에 많은 비용을 치루어야 한다.
이러한 문제를 해결하기 위해, 탈중앙화 되어있는 저장공간을 각각의 데이터와 해시들을 저장하기 위해 스마트 계약을 이용하여 블록들을 연결하여 사용한다.
탈중앙화 되어있는 저장공간 기술에는 Interplanetary File System(IPFS), Swarm, Filecoin, BigChainDB, Storj 등이 있다.
그 중에서도 IPFS에 대해 설명하면, IPFS는 P2P 네트워크로써 분산화 되어 있고 탈중앙화 되어 있는, 컴퓨터들의 노드를 연결하여 일반적인 파일 시스템을 공유하는 기능을 한다.
이 파일 시스템은 노드 목록을 갖고 있으므로, 파일의 변조를 허용하지 않기때문에 블록체인 네트워크와 유사하게 작동한다고 할 수 있다. 또한 분산되어 저장된다는 특성을 갖고 있으므로, 장치 하나의 연결이 끊어져도 파일에 접근 할 수 있다.
이 기술을 이용하는 대표적인 시스템에는 토렌트(Torrent)가 있다.
B. Artificial Intelligence (AI)
Table 1. Latest trends in AI applications and benefits of using blockchain.
AI research 분야에선 자기 자신들을 “intelligent agents”에 대한 연구라고 규정한다.
즉, 환경을 인식하고 목표에 도달하기 위한 가능성을 최대화 하는 것을 말한다.
오늘날의 거의 대부분의 AI system들은 특정한 목표에 특화되어 있는 데이터셋을 결정을 내리기 위해 이용한다.
그러나, 많은 연구자들은 실생활에 긍정적으로 영향을 미칠, “intelligent agents”을 내릴 AI system을 만들기 위해 노력하고 있다.
Table 1은 AI 응용 프로그램에 관한 몇 가지의 새로운 트렌드와 그것의 장점을 보여준다.
C. How Blockchain Can Transform AI
Figure 1. An overview of AI systems and features in relation to blockchain and IoT-enabled ecosystems.
AI와 블록체인의 결합으로 서로의 단점을 보완해주어 기술적인 생태계에 기여할 것이다.
AI 알고리즘은 데이터 혹은 정보에 기반하여 배우고, 추론하고, 최종적인 결정을 내린다.
머신 러닝 알고리즘은 의지할 수 있고(reliable), 신뢰성 있고 안전한 데이터 레포지토리나 플랫폼에서 데이터를 갖고올 때 보다 효율적일 것이다.
데이터를 모으고 거래할 수 있는 분산된 렛저를 제공하는 블록체인에 의해 상단에 서술한 데이터 레포지토리 혹은 플랫폼이 구축될 수 있을 것이다.
블록체인의 데이터들은 높은 무결성과 재사용성(resiliency)을 갖고, 그 데이터들을 함부로 조작할 수 없다는 특성을 갖는다.
스마트 계약은 머신러닝 알고리즘에서 결정을 내리고 분석한 것을 적용하는 것에 이용되고, 그 결정 및 적용은 신뢰할 수 있고 분쟁의 소지를 없앤다.
AI와 블록체인의 강화는 높은 민감성을 갖는 정보(개인정보, 금융정보, 의료정보 등등..)를 모으고, 활용하고, 저장해두는 AI 중심의 시스템에 대해 보안성, 불변성, 분산화된 시스템을 제공할 것 이다.
Figure 1은 AI가 높은 가용성을 갖는 여러 블록체인 플랫폼에 의해 받을 수 있는 수혜를 나타낸 것이다. 이 자료에서의 데이터들은 일반적으로 IoT 기기, 스웜로봇, 스마트 도시, 스마트 기기 등에서 유래된 것이다.
Table 2. Key features and benefits of blockchain integration with AI.
클라우드의 기능과 서비스들은 off-chain(블록체인 밖에 데이터를 저장하는 것) 머신러닝과 intelligent decision, 데이터 시각화 기술등에 기여를 하였다.
Table 2는 AI와 블록체인의 융합이 갖고 올 이점을 정리한 표다.
III. Taxonomy
Figure 2. Taxonomy of blockchain for AI
이번 섹션에서는 자세한 분류와 AI에 블록체인 기술 적용에 관하여 주요한 쟁점을 정리할 것이다.
Figure 2는 트리 구조로 탈중앙화 AI의 방법론과 수행, 블록체인의 인프라와 종류, 분산 탈중앙화 트랜잭션의 합의 프로토콜들을 서술한 것이다.
A. Decentralized AI Applications
AI 응용 프로그램은 다른 계획들(검색, 최적화, 학습, 지식 탐구, 지식 관리 전략)에 의한 결정들을 자율적으로 운영하는 역할을 한다.
AI 응용 프로그램의 분산화는 복잡하고 도전적인 작업임을 알고있자.
1) AUTONOMIC COMPUTING
AI 응용 프로그램의 주요 목표 중 하나는 인터넷 상태, 인과관계, 환경 등을 고려한 합리적인 여러개의 주체들에 의한 완전한 혹은 부분적인 자동 운영이다.
운영의 자동화를 위해서는, 현대 컴퓨팅 체계에서는 데이터 소스, 기기, 데이터 처리 체계, 데이터 스토리지 체계, 응용 프로그램의 인터페이스, 이름 등등의 이질성을 고려하여야 한다.
여러 주체에서의 시스템을 허용하기 위해서는 이질성을 핸들링 할 수 있어야 할 뿐만 아니라 내부 계층 및 외부 계층을 고려한 여러 시스템에서의 운영을 고려하여야 한다.
블록체인 아키텍쳐는 탈중앙화 운영에서의 주요한 역할을 하고 있을 뿐 아니라 유저, 데이터, 응용프로그램, 기기, 시스템들 간의 상호 작용에 대해 족적을 남기고 있고, 완전히 분산화 되어있고 자동으로 운영되는 시스템을 개발하는 것을 이끌고 있다.
2) OPTIMIZATION
모든 해결 방법 중에서 최적의 정답셋을 찾기 위한 주요한 방법 중 하나는 AI가 허용된 응용 프로그램 혹은 체계를 사용하는 것이다.
현대의 AI 응용 프로그램과 체계들은 여기저기 스며들어 있는, 유비쿼터스(엣지 컴퓨팅), 자원이 한정되어 있는 환경(모바일 기기), 지역이 제한되어 있는 시스템(LAN, WIFI 등등..), 중앙 집중적인 병렬 처리 혹은 분산 처리와 같은 여러가지 환경에서 운용되고 있다.
응용 프로그램 단과 시스템 레벨 단 모두를 타겟으로 하는 최적화 전략은 제약이 있건 없건 동작한다.
이러한 전략들은 퍼베이시브 환경들에서 부터 가장 관련된 데이터 소스를 찾는다던지 하는 방식으로 최적의 해결책(최적의 엣지, 데이터 및 응용 프로그램 처리를 위한 클라우드 서버 후보군 중 선택, 큰 규모의 분산 컴퓨팅 환경에서의 자원 효율적인 데이터 관리 등)을 찾는다.
이러한 최적화 전략들은 시스템이나 응용 프로그램 전반을 고려하여 중앙에서 조절하는데, 관련 없는 곳에서의 데이터 처리와 시스템 그리고 응용프로그램의 성능 저하를 초래한다.
블록체인을 활용한 탈중앙화된 최적화 전략을 허용한다면, 새로운 조사와 개발 방법에서의 기회의 창을 열 수 있을 것이다.
탈중앙화된 최적화는 관련성이 높은 데이터들의 처리에 대해 시스템의 성능 향상을 갖고올 것이다.
또한 탈중앙화된 최적화는 다른 최적화 목표를 가진 여러 전략들이, 응용 프로그램과 시스템에서 동시에 실행되어야 하는 경우에도 긍정적인 효과를 갖고 올 것이다.
3) PLANNING
AI 응용 프로그램과 시스템은 새 환경에 대한 다른 응용 프로그램과 시스템, 복잡한 문제들을 고려하여 전략을 짜고 실행되어야 한다. 전략을 수립하는 것은 효율성과 회복력을 고려하여야 하고 입력 변수와 다른 로직, 룰에 기초한 알고리즘 등을 활용하여 사전에 정한 목표에 도달하도록 해야한다.
현재, 중앙화된 계획은 복잡하고 시간을 많이 소모한다. 블록체인 기반의 탈중앙화 AI 전략 수립은 영구적인 추적/출처 기록을 갖는 강력한 전략을 수립할 수 있게 해준다.
블록체인은 또한 전략적인 응용 프로그램과 미션 크리티컬한 시스템에 대해 중요하고 변경할 수 없는 계획을 고안할 때에도 유용하다.
4) KNOWLEDGE DISCOVERY AND KNOWLEDGE MANAGEMENT
현대의 AI 응용 프로그램들은 많은 양의 데이터 스트림을 다루고, 중앙 집중적인 빅데이터 처리 시스템 지원을 요구한다. 중앙 집중된 지식들은 탐색과 지식 관리에 대해 넓은 응용프로그램 및 시스템에 대해 정보를 제공한다는 이점을 갖는다. 하지만 응용 프로그램들은 특정한 유저들, 응용 프로그램들, 기기들, 시스템들에 대해서만 맞춤형 지식 패턴을 허용한다.
분산화된 지식 탐구 프로세스와 지식 관리는 시스템의 모든 시스템의 이해관계자에 대해 개인화된 지식 패턴을 제공할 수 있을 것으로 예상된다.
첨언하자면, 블록체인은 AI 응용 프로그램과 시스템의 다양한 이해 관계자들 간에 안전하고, 추적이 가능한 지식 이전을 보다 쉽게 할 수 있게 해준다.
5) PERCEPTION
지능화된 주체와 봇들은 그들의 획일적인 데이터 수집을 초래하게 되는 중앙화된 지각 전략을 사용하여 주변 환경을 계속해서 수집하고, 해석하고, 선택하고, 데이터를 구축해야 한다.
분산화된 지각 전략은 여러가지 시각에서의 데이터 수집을 초래한다.
블록체인 기반의 탈중앙화된 지각은 지각의 과정을 추적할 수 있고, 수집덴 데이터를 안전하게 전송해주며 불변하는 데이터를 저장하게 된다.
이 분산화된 지각 전략은 성공적이고 질높은 데이터를 계속 반복적으로 수집하지 않아도 되기 때문에 더욱 유용하다.
블록체인의 불변하고 영구적인 특성을 고려하여, 성공한 지각의 흔적만 블록체인에 남겨야 한다.
6) LEARNING
학습 알고리즘은 AI 응용 프로그램의 핵심적인 요소로 아직까지도 남아있다.
학습 알고리즘에는 지도 학습, 비지도 학습, 준지도 학습, 분류, 강화, 교환, 딥 러닝 모델들이 있다.
이 학습 모델들은 다른 머신 분류, 클러스터링, 회귀, 빈번한 패턴 마이닝 등등 여러가지 머신 러닝 문제들을 푼다.
기존의 학습 모델들은 중앙화된 인프라를 이용하여 훈련하고, 배포해가며 전역적인 지능을 성취한다.
탈중앙화 학습 모델은 분산이 잘되어있고, 자동화된 학습 시스템을 지원하며 모든 분야에 걸쳐 완벽하게 조정된 지역적인 지식을 현대의 AI 시스템에 적용할 수 있게 해준다.
첨언하자면 블록체인은 불변하고 출처 유지와 버전 관리가 가능하여 보안이 뛰어난 측면의 데이터를 학습 모델에 적용하게 해준다. 하지만 스마트 계약의 영구적인 특성을 고려하면 블록체인에 배포하기 전에 모델을 학습시키고 테스트하는 과정이 요구된다.
7) SEARCH
AI 응용 프로그램은 검색 공간의 크고 작음을 고려하여야 한다. 그러므로 효율적인 검색 전략은 AI 기술의 핵심 전략이다.
검색 전략들은 복잡도(시,공간), 완성도, 최적도등의 요소를 모두 고려하여 만들어진다.
이러한 전략들은 일반적으로 트리나 그래프 같은 비선형적인 데이터 구조들에서 운용된다.
보통, 검색 전략들은 운영 효율성을 최대화 하기 위하여 큰 규모의 중앙화와 분산화가 이루어진 인프라를 이용한다. 그들이 탈중앙화된 인프라를 이용하려면 신중한 조사가 이루어져야 한다.
앞으로는 핵심 검색 전략을 배포하는 대신에 블록체인을 이용한 분산화가 이루어진 인프라를 이용하여 검색 추적과 탐색 경로를 영구적으로 안전하게 저장하여 향후 유사한 작업에 대해 최적화된 솔루션을 제공할 수 있어야 한다.
8) REASONING
논리적인 프로그래밍은 AI 응용 프로그램을 개발하여 그것이 합리적인 결정에 도달하기 위해 필수적인 요소이다. AI 응용 프로그램에서의 중앙화된 의사 결정은 모든 응용 프로그램의 구성요소에 영향을 끼친다.
이러한 문제들을 조정하기 위해선 블록체인 기반의 분산화된 의사 결정 전략이 요구된다. 이러한 의사 결정은 지각, 학습 및 모델의 배포를 할 때에 개인화된 의사 결정 전략에 대해 긍정적인 요인을 갖고올 것이다. 추가로, 스마트 계약 기반의 탈중앙화되고 분산화 되어있는 의사 결정은 고가용성의 영구적인 추론 과정을 영구적으로 기록하여 미래에 비슷한 의사 결정에 도움을 줄 것이다.
B. DECENTRALIZED AI OPERATIONS
Table 3. Key features and benefits of blockchain platforms
(Azure Blockchain Workbench는 Quorum Blockchain Service로 변경되었음.)
AI 응용 프로그램들은 일반적으로 더 낫고 가변성이 있는 의사 결정을 내리기 위해 많은 양의 데이터를 다룬다. 하지만, 클라우드, 데이터 센터, 클러스터 등의 중앙화된 데이터 스토리지를 이용하는 경우엔 높은 보안성과 개인 정보 보호를 하려다가 병목 현상이 생기게 된다. 테이블 3은 AI 응용 프로그램에 적용될 가능성이 있는 블록체인들을 비교한 것이다.
1) DECENTRALIZED STORAGE 중앙화된 데이터 스토리지는 개인 정보(유저의 민감정보, 위치, 활동, 건강기록, 경제 정보 등등..) 보호와 보안에 높은 민감성을 가진다. 추가적으로, 큰 규모의 중앙으로의 데이터 수집은 데이터의 스케일링이 요구되고, AI 응용 프로그램은 학습, 변환, 큰 데이터셋의 저장 등이 요구되므로 중앙 집중형 인프라의 그만큼의 수용력(capacity)이 요구된다.
블록체인 기반의 탈중앙화 스토리지는 암호화된 보안 데이터 스토리지는 여러 네트워크로의 분산을 통해 제공한다. 이러한 시스템에서, 각각의 노드들은 공개 암호화된(publicly encrypted) 데이터베이스의 복사본을 갖게 된다. 각각의 클라이언트들은 채굴을 하거나, 필요할 때 그들의 데이터를 사용할 수 있다.
분산 스토리지에서 샤딩과 스워밍은 핵심 솔루션이다. 샤딩은 데이터베이스에 논리적인 파티션을 만들고, 각각의 논리 파티션에는 고유한 키값으로 접근하도록 해주는 것이다. 샤드들은 서로 그룹화되고, 그렇게 수집된 스토리지들은 스웜의 형태로 네트워크의 노드 그룹에서 지원된다.
스웜은 다수의 노드들로부터 병렬 데이터 접근을 가능하게 해주어 AI 응용 프로그램의 지연률을 낮춰준다. 또한 지리적으로 분산되어있는 다자간 분산 처리 저장 시스템으로, 저장 시스템의 확장성과 안정성이 보장된다.
섹션 4의 A에서 보다 자세히 다룰 것이다.
2) DATA MANAGEMENT
효율적인 분산 스토리지를 위해서는, AI 응용 프로그램들은 고가용성, 고효율, 그리고 신뢰할 수 있는 출처로부터 데이터셋을 수집하여야 한다.
예전부터 AI 응용 프로그램들은 소속된 네트워크의 모든 노드들을 지나는 중앙집중적인 데이터 관리 스키마를 사용해왔다. 이러한 전략들은 데이터의 필터링, 분할, 저장, 라우팅, 임시 데이터의 관리 및 지능형 데이터 관리 체계 및 기본 네트워크의 상황 인식등을 포함하고 있었다.
탈중앙화 되어 있는 스토리지 네트워크와 블록체인의 불변하는 특성을 고려하자면, 중앙 집중적인 데이터 관리는, 데이터가 약간이라도 변경되는 경우에 데이터 중복이 증가할 뿐 아니라 유사한 데이터 셋을 반복적으로 전송하게 되기 때문에 매우 비효율적이다.
큰 데이터 셋의 경우에, 이러한 엄청난 데이터 전송은 빠른 대역폭 오버로딩과 백홀 네트워크 트래픽을 유발하게 된다.
- 백홀 : 다수의 통신망을 통해 데이터를 전송하는 계층적 구조로 된 통신망에서 주변부 망을 기간 망이나 인터넷에 연결시키는 링크. [1]
그러므로, 탈중앙화 데이터 관리에는 블록체인 기반의 AI 응용 프로그램이 필수적으로 요구된다.
분산화된 데이터 관리 스키마는 블록체인에 메타 데이터를 넣어, 보안을 높이고 데이터의 원본을 증명하여야 한다.
실제 데이터들은 전통적으로 클라우드 데이터 센터나 클러스터와 같이 큰 규모의 스토리지 시스템에 저장되어 있다. 이런 경우에, 클라이언트 중심의 작은 데이터셋들의 메타데이터와 실제 데이터들은 블록체인에 저장되고, 데이터들은 여러 네트워크의 토큰 베이스의 인센티브(암호화폐)를 지급하며 샤드 혹은 스웜의 일부 같은 것을 저장하게도 한다.
3) LEARNING MODEL DEVELOPMENT
AI 응용 프로그램에서의 학습의 주요한 역할은 환경을 현재의 데이터로부터 이해하고 새로운 데이터를 기반으로 하는 새로운 의사 결정에 적용시키는 것이다. 보통, 학습 모델은 실제 시스템에 배포(적용, deployment)하기 전에 훈련을 하고 테스트를 한다. 중앙화된 훈련은 과적합에 취약하며 모델은 수많은 데이터 셋으로 부터 학습을 필요로 하기 때문에 비용이 소모된다.
그러나, 현대의 AI 응용 프로그램들은 계속해서 진화하는 데이터 스트림에 맞추어 핸들링을 해야 한다. 탈중앙화된 러닝 모델 개발 프로세스는 클라이언트 응용 프로그램을 위해 자원 효율적인 학습 모델을 개발하기 위한 실현 가능한 하나의 접근 방법이다.
Reference
-
Blockchain for AI: Review and Open Research Challenges, K. Salah et al., IEEE Access, 7, 10127-10149, 2019 (https://ieeexplore.ieee.org/abstract/document/8598784)