2017.09.07

마이크로소프트가 엔터프라이즈 시장에 블록체인을 구현하는 방법

Simon Bisson | InfoWorld
현재 블록체인 기술에 대해서는 과장이 난무한다. 특히 암호화 화폐 ICO(Initial Coin Offering)의 거품이 심하다. 그러나 시야를 가리는 이 과장을 걷어내고 보면 블록체인 기술은 신뢰가 중요한 부분에서 기업이 자산을 관리하고 상호 협업하는 데 도움이 될 수 있다. 블록체인의 기반이 되는 공유 원장 모델은 강력한 툴이며 큰 잠재력을 지녔다.

따라서 마이크로소프트가 처음엔 프로젝트 블레츨리(Project Bletchley), 지금은 코코 프레임워크(Coco Framework)를 통해 애저 플랫폼에 블록체인 기술을 구현할 방법을 모색하는 것도 자연스러운 흐름이다.



엔터프라이즈 블록체인을 지원하기 위한 코코 프레임워크는 비공개(private) 환경에 사용하도록 설계됐다. 대량의 컴퓨팅 역량을 사용해서 방대한 규모로 확장할 수 있고, 투명한 네트워크를 실행하므로 공용(public) 암호화 화폐 블록체인 및 서비스에 비해 성능 측면에서 유리하다. 공용 네트워크의 경우 트랜잭션이 정상 트랜잭션으로 간주되려면 상당한 “작업 증명”이 필요하고, 이로 인해 속도가 느려져 많은 비즈니스 시나리오에서 사용하기가 어렵게 된다.

코코는 블록체인이 아니라 그 기반
코코 프레임워크는 블록체인 프로토콜이 아니라 신뢰 노드 모음을 구축하기 위한 방편으로, 이러한 노드 간 합의와 기밀성 관리를 보장하기 위한 툴을 갖췄다. 코코 프레임워크를 두면 기존 블록체인 프로토콜을 가져와 분산 원장을 설정하고 관리할 수 있다.

마이크로소프트는 이미 이더리움(Ethereum) 플랫폼에서 코코의 블록체인 중개 계약을 테스트했고, 쿼럼(Quorum) 및 코다(Corda)와 같은 다른 툴도 호환될 것으로 보고 있다. 코코는 보안 컴퓨팅 기술과 블록체인 사이에 위치하는 하나의 계층으로 보는 것이 가장 정확하다.

마이크로소프트 애저 CTO인 마크 루시노비치는 현재 블록체인은 암호화 화폐 용도 외에 엔터프라이즈 용도로는 준비가 되지 않았다면서 “공용 원장 및 비트코인과 달리 엔터프라이즈는 동일 조직 내에서 중앙 원장의 불편함을 없애고자 하는 여러 당사자와 다양한 조직 또는 다양한 그룹이 존재하는 컨소시엄 환경에서 블록체인을 사용하고자 한다. 블록체인의 분산 원장은 중간자를 없애고 다양한 조직 간의 상호작용에 대한 완전한 투명성을 확보할 기회를 제공한다”고 말했다.

코코 프레임워크의 핵심은 엔티티 그룹인 컨소시엄 개념이다. 여기서 엔티티란 개인이나 기업, 나아가 애플리케이션 또는 서비스일 수도 있다. 개방형 공개 네트워크가 아닌 폐쇄형 비공개 네트워크로, 공용 인터넷보다는 공급업체와 기업을 연결하는 데 사용되는 EDI 시스템과 비슷하다. 예를 들어 배를 가득 채운 컨테이너를 위한 EDI 툴이 코코에서 실행된다고 생각해 보자. 그 배에 상품을 실은 누구나 배가 어디에 있는지 보고 컨테이너의 상태를 모니터링하고 통관 과정에 필요한 선하증권 및 기타 주요 문서를 공유할 수 있다.

코코의 보안 강화
코코가 다른 블록체인 구현과 구분되는 점은 신뢰할 수 있는 실행 환경(TEE, Trusted Execution Environment)을 지원한다는 것이다. 이는 애저 인프라에 사용되는 프로세서에 구축된 보안 기술과 코코 애플리케이션의 요소를 호스팅하는 가상머신을 기반으로 한다.

루시노비치는 보안 엔클레이브(애플이 아이폰과 아이패드에서 터치 ID 보안에 사용하는 것과 동일한 기술)를 사용하면 “기존 블록체인 구현과 관련된 몇 가지 문제를 방지하고 코코 컨소시엄 멤버는 컨소시엄의 구성(코드에 정의됨)과 실행 중인 코드의 버전, 두 가지 모두에 동의할 수 있게 된다”고 설명했다.

TEE에서는 코드가 수정되는 경우 컨소시엄의 나머지 멤버들이 코드가 변조되었음을 무조건 알게 된다. TEE는 다른 TEE에서 실행 중인 소프트웨어를 검증할 수 있기 때문이다. 또한 이 기술은 TEE 간의 통신을 안전하게 유지하고 TEE 외부에서 도청이 불가능하도록 하는 기능도 한다.

코코 프레임워크 애플리케이션에서 트랜잭션이 이루어지면 이 트랜잭션은 컨소시엄의 모든 노드로 전파된 다음 블록체인 원장을 업데이트하는 데 사용된다. 각 노드는 네트워크의 나머지 부분을 신뢰하므로 악성 트랜잭션 또는 원장 충돌을 검사할 필요 없이 합의에 이를 수 있다.

블록체인의 보안과 개인정보 보호, 속도를 강화하는 코코
그 결과로 구축되는 네트워크는 복잡하고 많은 컴퓨팅이 필요한 “작업 증명” 계산이 불필요한 안전한 비공개 네트워크다. 또한 네트워크는 익숙한 분산 컴퓨팅 쿼럼 규칙을 사용하여 스스로 업데이트한다.

따라서 블록체인은 분산 데이터베이스 속도로 실행된다. 고비용 계산이 없으므로 비트코인을 비롯한 암호화 화폐에 사용되는 많은 전력을 소비하는 맞춤형 하드웨어 역시 필요 없다. 현재 이러한 하드웨어가 소비하는 에너지는 미국의 13억 가구가 사용하는 에너지와 맞먹는다.

마이크로소프트는 엔터프라이즈 지향의 블록체인 방식에 맞는 코코를 연구하는 한편, 이더리움과 같은 기존 블록체인 구현을 호스팅하는 용도로도 코코 프레임워크를 실험 중이다. 공용 이더리움 네트워크에서 트랜잭션은 초당 약 20개 속도로 처리되며 지연은 10~20초다. 코코 프레임워크 TEE에서 동일한 코드를 실행할 경우 처리 속도는 초당 1,500개 트랜잭션으로 급등하며 지연은 100~200ms에 불과하다. 비자의 신용카드 네트워크 처리 속도가 초당 2,000개 트랜잭션이니, 거의 그 수준에 근접한 속도다.

데이터베이스 속도로 실행되는 블록체인은 특히 분산 시스템에서의 일관성 처리에 관한 최근 연구와 연계할 경우 큰 변화를 가져올 수 있다. 대규모 클라우드에서 작업할 때 수반되는 복잡성의 대부분은 일관성 문제다. 블록체인을 사용해서 클라우드의 신뢰 노드 사이에 신뢰 네트워크를 구축하면 블록체인을 애플리케이션의 신뢰 루트로 취급할 수 있다. 즉, 항상 최신 상태라는 점, 그리고 네트워크에서 최신 트랜잭션을 볼 수 없더라도 향후 순서에 따라 표시될 것임을 신뢰할 수 있다.

비즈니스 환경에서 블록체인 구현
코코 프레임워크는 블록체인 외부의 소프트웨어와도 연계가 가능하므로 예를 들어 블록체인을 사용해 스마트 계약(이더리움의 계약 등)을 처리하는 경우 외부 데이터를 기준으로 계약의 유효성을 검증할 수 있다. 스마트 계약을 사용해서 화폐를 매매하면서 환율이 특정 범위를 벗어날 때 매도하는 경우가 있다. 코코 애플리케이션을 신뢰할 수 있는 환율 소스에 연결하면 스마트 계약을 자동화해서 코코 프레임워크 외부에서 트랜잭션을 트리거하면서 비공개 블록체인에서 이를 기록할 수 있다.

코코 프레임워크의 구성 요소 대부분은 마이크로소프트 기술에 종속되지 않는 독립적 요소이므로 아마존 웹 서비스나 비공개 서버에서 실행되는 것을 손쉽게 볼 수 있다. 그러나 루시노비치는 코코 프레임워크가 애저의 글로벌 클라우드로 자연스럽게 자리를 잡아갈 것이라면서 “완전히 애저를 기반으로 구성된 컨소시엄 네트워크를 상상할 수 있다. 멤버 노드는 전 세계 곳곳의 독립적 당사자에 의해 작동되고, 이들은 애저 백본을 통해 멤버 노드에 낮은 지연으로 접속할 수 있다”고 말했다.

마이크로소프트는 단순히 구상만 하는 것이 아니다. 루시노비치는 “현재 키 볼트와 같은 인프라 서비스와 더 심층적으로 통합하기 위한 프로젝트를 진행 중이며, 애저 노드의 전체 라이프사이클 관리를 위해 애저 모니터링을 사용 중이다. 고객이 단순히 스마트 계약서를 써서 이를 포털을 통해 원장에 제출하면 나머지는 알아서 처리되어 트랜잭션을 네트워크에 제출하고 애저 인증 정보로 인증되는, 거의 서버리스 방식의 스마트 계약까지 발전할 수도 있다”고 강조했다.  editor@itworld.co.kr

2017.09.07

마이크로소프트가 엔터프라이즈 시장에 블록체인을 구현하는 방법

Simon Bisson | InfoWorld
현재 블록체인 기술에 대해서는 과장이 난무한다. 특히 암호화 화폐 ICO(Initial Coin Offering)의 거품이 심하다. 그러나 시야를 가리는 이 과장을 걷어내고 보면 블록체인 기술은 신뢰가 중요한 부분에서 기업이 자산을 관리하고 상호 협업하는 데 도움이 될 수 있다. 블록체인의 기반이 되는 공유 원장 모델은 강력한 툴이며 큰 잠재력을 지녔다.

따라서 마이크로소프트가 처음엔 프로젝트 블레츨리(Project Bletchley), 지금은 코코 프레임워크(Coco Framework)를 통해 애저 플랫폼에 블록체인 기술을 구현할 방법을 모색하는 것도 자연스러운 흐름이다.



엔터프라이즈 블록체인을 지원하기 위한 코코 프레임워크는 비공개(private) 환경에 사용하도록 설계됐다. 대량의 컴퓨팅 역량을 사용해서 방대한 규모로 확장할 수 있고, 투명한 네트워크를 실행하므로 공용(public) 암호화 화폐 블록체인 및 서비스에 비해 성능 측면에서 유리하다. 공용 네트워크의 경우 트랜잭션이 정상 트랜잭션으로 간주되려면 상당한 “작업 증명”이 필요하고, 이로 인해 속도가 느려져 많은 비즈니스 시나리오에서 사용하기가 어렵게 된다.

코코는 블록체인이 아니라 그 기반
코코 프레임워크는 블록체인 프로토콜이 아니라 신뢰 노드 모음을 구축하기 위한 방편으로, 이러한 노드 간 합의와 기밀성 관리를 보장하기 위한 툴을 갖췄다. 코코 프레임워크를 두면 기존 블록체인 프로토콜을 가져와 분산 원장을 설정하고 관리할 수 있다.

마이크로소프트는 이미 이더리움(Ethereum) 플랫폼에서 코코의 블록체인 중개 계약을 테스트했고, 쿼럼(Quorum) 및 코다(Corda)와 같은 다른 툴도 호환될 것으로 보고 있다. 코코는 보안 컴퓨팅 기술과 블록체인 사이에 위치하는 하나의 계층으로 보는 것이 가장 정확하다.

마이크로소프트 애저 CTO인 마크 루시노비치는 현재 블록체인은 암호화 화폐 용도 외에 엔터프라이즈 용도로는 준비가 되지 않았다면서 “공용 원장 및 비트코인과 달리 엔터프라이즈는 동일 조직 내에서 중앙 원장의 불편함을 없애고자 하는 여러 당사자와 다양한 조직 또는 다양한 그룹이 존재하는 컨소시엄 환경에서 블록체인을 사용하고자 한다. 블록체인의 분산 원장은 중간자를 없애고 다양한 조직 간의 상호작용에 대한 완전한 투명성을 확보할 기회를 제공한다”고 말했다.

코코 프레임워크의 핵심은 엔티티 그룹인 컨소시엄 개념이다. 여기서 엔티티란 개인이나 기업, 나아가 애플리케이션 또는 서비스일 수도 있다. 개방형 공개 네트워크가 아닌 폐쇄형 비공개 네트워크로, 공용 인터넷보다는 공급업체와 기업을 연결하는 데 사용되는 EDI 시스템과 비슷하다. 예를 들어 배를 가득 채운 컨테이너를 위한 EDI 툴이 코코에서 실행된다고 생각해 보자. 그 배에 상품을 실은 누구나 배가 어디에 있는지 보고 컨테이너의 상태를 모니터링하고 통관 과정에 필요한 선하증권 및 기타 주요 문서를 공유할 수 있다.

코코의 보안 강화
코코가 다른 블록체인 구현과 구분되는 점은 신뢰할 수 있는 실행 환경(TEE, Trusted Execution Environment)을 지원한다는 것이다. 이는 애저 인프라에 사용되는 프로세서에 구축된 보안 기술과 코코 애플리케이션의 요소를 호스팅하는 가상머신을 기반으로 한다.

루시노비치는 보안 엔클레이브(애플이 아이폰과 아이패드에서 터치 ID 보안에 사용하는 것과 동일한 기술)를 사용하면 “기존 블록체인 구현과 관련된 몇 가지 문제를 방지하고 코코 컨소시엄 멤버는 컨소시엄의 구성(코드에 정의됨)과 실행 중인 코드의 버전, 두 가지 모두에 동의할 수 있게 된다”고 설명했다.

TEE에서는 코드가 수정되는 경우 컨소시엄의 나머지 멤버들이 코드가 변조되었음을 무조건 알게 된다. TEE는 다른 TEE에서 실행 중인 소프트웨어를 검증할 수 있기 때문이다. 또한 이 기술은 TEE 간의 통신을 안전하게 유지하고 TEE 외부에서 도청이 불가능하도록 하는 기능도 한다.

코코 프레임워크 애플리케이션에서 트랜잭션이 이루어지면 이 트랜잭션은 컨소시엄의 모든 노드로 전파된 다음 블록체인 원장을 업데이트하는 데 사용된다. 각 노드는 네트워크의 나머지 부분을 신뢰하므로 악성 트랜잭션 또는 원장 충돌을 검사할 필요 없이 합의에 이를 수 있다.

블록체인의 보안과 개인정보 보호, 속도를 강화하는 코코
그 결과로 구축되는 네트워크는 복잡하고 많은 컴퓨팅이 필요한 “작업 증명” 계산이 불필요한 안전한 비공개 네트워크다. 또한 네트워크는 익숙한 분산 컴퓨팅 쿼럼 규칙을 사용하여 스스로 업데이트한다.

따라서 블록체인은 분산 데이터베이스 속도로 실행된다. 고비용 계산이 없으므로 비트코인을 비롯한 암호화 화폐에 사용되는 많은 전력을 소비하는 맞춤형 하드웨어 역시 필요 없다. 현재 이러한 하드웨어가 소비하는 에너지는 미국의 13억 가구가 사용하는 에너지와 맞먹는다.

마이크로소프트는 엔터프라이즈 지향의 블록체인 방식에 맞는 코코를 연구하는 한편, 이더리움과 같은 기존 블록체인 구현을 호스팅하는 용도로도 코코 프레임워크를 실험 중이다. 공용 이더리움 네트워크에서 트랜잭션은 초당 약 20개 속도로 처리되며 지연은 10~20초다. 코코 프레임워크 TEE에서 동일한 코드를 실행할 경우 처리 속도는 초당 1,500개 트랜잭션으로 급등하며 지연은 100~200ms에 불과하다. 비자의 신용카드 네트워크 처리 속도가 초당 2,000개 트랜잭션이니, 거의 그 수준에 근접한 속도다.

데이터베이스 속도로 실행되는 블록체인은 특히 분산 시스템에서의 일관성 처리에 관한 최근 연구와 연계할 경우 큰 변화를 가져올 수 있다. 대규모 클라우드에서 작업할 때 수반되는 복잡성의 대부분은 일관성 문제다. 블록체인을 사용해서 클라우드의 신뢰 노드 사이에 신뢰 네트워크를 구축하면 블록체인을 애플리케이션의 신뢰 루트로 취급할 수 있다. 즉, 항상 최신 상태라는 점, 그리고 네트워크에서 최신 트랜잭션을 볼 수 없더라도 향후 순서에 따라 표시될 것임을 신뢰할 수 있다.

비즈니스 환경에서 블록체인 구현
코코 프레임워크는 블록체인 외부의 소프트웨어와도 연계가 가능하므로 예를 들어 블록체인을 사용해 스마트 계약(이더리움의 계약 등)을 처리하는 경우 외부 데이터를 기준으로 계약의 유효성을 검증할 수 있다. 스마트 계약을 사용해서 화폐를 매매하면서 환율이 특정 범위를 벗어날 때 매도하는 경우가 있다. 코코 애플리케이션을 신뢰할 수 있는 환율 소스에 연결하면 스마트 계약을 자동화해서 코코 프레임워크 외부에서 트랜잭션을 트리거하면서 비공개 블록체인에서 이를 기록할 수 있다.

코코 프레임워크의 구성 요소 대부분은 마이크로소프트 기술에 종속되지 않는 독립적 요소이므로 아마존 웹 서비스나 비공개 서버에서 실행되는 것을 손쉽게 볼 수 있다. 그러나 루시노비치는 코코 프레임워크가 애저의 글로벌 클라우드로 자연스럽게 자리를 잡아갈 것이라면서 “완전히 애저를 기반으로 구성된 컨소시엄 네트워크를 상상할 수 있다. 멤버 노드는 전 세계 곳곳의 독립적 당사자에 의해 작동되고, 이들은 애저 백본을 통해 멤버 노드에 낮은 지연으로 접속할 수 있다”고 말했다.

마이크로소프트는 단순히 구상만 하는 것이 아니다. 루시노비치는 “현재 키 볼트와 같은 인프라 서비스와 더 심층적으로 통합하기 위한 프로젝트를 진행 중이며, 애저 노드의 전체 라이프사이클 관리를 위해 애저 모니터링을 사용 중이다. 고객이 단순히 스마트 계약서를 써서 이를 포털을 통해 원장에 제출하면 나머지는 알아서 처리되어 트랜잭션을 네트워크에 제출하고 애저 인증 정보로 인증되는, 거의 서버리스 방식의 스마트 계약까지 발전할 수도 있다”고 강조했다.  editor@itworld.co.kr

X