마이크로소프트의 기업용 블록체인 '코코 프레임워크'에 대한 간단 소개 및 백서 요약
마이크로소프트, 기업용 블록체인 ‘코코 프레임워크’ 신문기사를 보고 MS의 COCO framework에 대해서 알아보았다.
간략하게, COCO framework는 기업을 위한 용도이고, 자체적인 블럭체인은 아니고, 이더리움, R3 코다 등의 블럭체인을 지원한다. 아래는 신문기사 중 일부이다.
"이 프레임 워크는 디지털 분산원장 자체는 아니지만, 이더리움(Ethereum)과 같은 기존 블록체인을 보다 기업에서 활용하기 쉽게 트랜잭션(Transaction) 처리량과 속도, 그리고 트랜잭션에 대한 액세스 제어를 기업이 쉽게 관리하는 것을 제공한다. 블록체인 네트워크와 통합 된 경우 코코 프레임워크는 초당 1,600개 이상의 트랜잭션 처리속도를 자랑한다.
이 프레임워크는 모든 디지털 분산원장 프로토콜과 호환된다. 현재 코코 프레임워크 구현에는 R3 코다(Corda), 인텔 하이버레저 쏘우투스(Intel Hyperledger Sawtooth), JP모건 쿼럼(JP Morgan Quorum) 및 이더리움(Ethereum) 등 10여 개 디지털 분산원장 기술을 지원한다."
COCO framework의 특징은 다음과 같다.
- 초당 1,600개 이상의 트랜잭션 처리 속도 (high-scale)
- 성능 저하없이 손쉽게 데이터 기밀성을 관리(business-specific confidentiality models)
- 블록 체인 네트워크 관리 거버넌스(관리) 모델
아래는 Coco 프레임워크의 백서에 있는 그림을 중심으로 간단히 설명한 것이다.
Coco 프레임워크의 구조는 1) TEE (trusted execution environments, 신뢰 실행환경), 2) Coco 프레임워크, 3) 기존 블럭체인 및 DApp(분산 어플)로 구성된다.
TEE는 기존에 있던 것으로, 분산 레저(블럭체인)을 운영하는 노드를 신뢰할 수 있는 네트워크를 만드는 역할을 한다. 아래의 설명을 참조.
- 인텔 sgx 설명 : 인텔은 인버스 샌드박스(Inverse Sandbox, 일종의 소프트웨어적 샌드박스) 메커니즘을 이용해 소프트웨어의 보안성을 높이도록 디자인된 아키텍처 확장임.
- 윈도우즈 vsm( Virtual Secure Mode) 설명 : VSM은 사용자의 계정과 암호를 관리하는 윈도 핵심영역을 가상화(VM)해 따로 분리해놓는 기술임
그리고 맨위에는 기존의 블럭체인 및 DApp이 위치한다.
그리고, 이들 중간에 Coco 프레임워크가 위치한다.
![11.gif](https://steemitimages.com/DQmY6VMdokp2NseGaZXgikXRHV3ZBfJG87ppFSTnpdrAiQj/11.gif)
Coco는 아래의 기능을 제공한다.
- application (business transaction) ledger(블럭체인)와 the Coco administrative ledger를 포함한 저장공간
- 안전한(secure) node-to-node와 application-to-node communication
- 임의의 기밀성 모델을 사용.
- 목록화된 거버넌스(관리) 모델 제공
아래의 빨간 부분이 Coco에서 제공하는 부분이며 기능은 아래 그림과 같다.
- 합의, 2) 원장 지속성, 3) 거버넌스, 4) 비밀성, 5) 노드-노드, 6) 어플리케이션-노드
그리고, 이것에서 제외된 부분은 1) 분산 원장(블럭체인) 모델, 2) VM(EVM), 3) 거래 처리 이고, 이 부분을 기존의 이더리움 등이 제공한다.
![2.gif](https://steemitimages.com/0x0/https://steemitimages.com/DQmd4QHhUcCVcgxHW8MNhmhXvdiwSWM7HSWSLVBSoYbrqiu/2.gif)
Coco 시스템은 신뢰할 수있는 검증 노드 (validating nodes, VN)가 분산된 네트워크이며, 각 노드는 Coco Framework 및 통합 블록체인 프로토콜을 실행한다.
VN은 거래를 받아들이고 네트워크의 합의 알고리즘에 참여한다. 선택한 합의 알고리즘에 따라 하나 또는 일부 VN이 트랜잭션을 처리하고 스마트 계약 코드를 실행한다.
Coco 프레임워크는 1) host (잠재적으로 신뢰할 수없는 hypervisor 또는 virtual machine monitor이라함, 및 노드의 운영 체제)와 2) TEE 내의 보호되고 안전한 컨테이너인 enclave로 나누어진다.
시스템의 모든 민감한 구성 요소는 enclave에서 실행되며 무결성, 기밀 유지 및 원장 보안을 유지 관리한다.
- 코코 인터페이스 (host) : 클라이언트와 다른 VN을 연결하는 전송 계층 인터페이스
- Coco core (enclave) : host와 encalve 내의 다른 모든 기능 간의 인터페이스
- Persistent store (enclave) : application ledger(어플리케이션 원장) 와 Coco administrative ledger(코코 관리 원장) 저장
- Coco configuration state (enclave) : Coco 상태 머신
- Blockchain core and adapter (enclave) : 트랜잭션을 처리하고 스마트 계약 코드를 실행하는 논리.
![3.gif](https://steemitimages.com/DQmXHxNM6hZ2ffmuNcyYdLrqAhTDqZtpPLdA2yHBfEzGsBo/3.gif)
Coco 네트워크에는 1) 멤버와 1)참가자의 두 가지가 있다.
멤버: 네트워크의 멤버, TEE에서 실행되는 코드 및 네트워크 정책의 정의를 포함하여 누가 네트워크에서 거래 할 수 있는지, 그리고 거버넌스를 통제 할 수있다.
참가자: 회원과 달리 투표를 할 수 없으므로 누가 네트워크 또는 그 지배 구조에 직접 액세스 할 수 있는지에 대한 운영 통제 권한이 없다. 참가자는 네트워크 구성원에 의해 결정되며, 구성원과 마찬가지로 참가자는 네트워크에서 거래를 할 수 있다.
모든 멤버과 참여자는 비밀/공개키 쌍 (PrivKeyMi, PubKeyMi 및 PrivKeyPi, PubKeyPi)을 가지며, X.509 인증서로 Coco 네트워크에서 식별된다.
![4.gif](https://steemitimages.com/0x0/https://steemitimages.com/DQmRHZCNqzTXUx1wiWhNYz2mdtV3KGBUjdabsS4dR2JiCH1/4.gif)
그림 5는 응용 프로그램 트랜잭션의 작업흐름을 보여준다.
거래를 보내기 전에 응용 프로그램 (예 : Ethereum DApp)이 네트워크의 VN과 인증되고 암호화 된 연결을 설정한다.
Coco 프레임 워크는 트랜잭션을 수신하면, 암호해독한 다음 프로토콜의 해당 블록체인 어댑터로 보낸다.
어댑터는 트랜잭션 세트를 시작하고 블록생성 로직 및 Ethereum 가상 머신 (EVM)과 같은 블록체인 프로토콜의 하위 시스템의 구성 요소와 상호 작용하여 트랜잭션을 처리한다.
어댑터는 구성된 합의 알고리즘을 사용하여 네트워크를 통해 모든 상태 변경 사항을 유지하고 복제하는 분산 저장소를 통해 트랜잭션 세트를 커밋합니다.
![5.gif](https://steemitimages.com/DQmZtnEJvipG2nUEDuw8X5bCFaftCjwHcUAAZTJL1dRgHX1/5.gif)
감사합니다!
다른 대기업이 과연 얼마나 참여하고 감싸안을지.. 계속 보게되네요
응원 감사합니다.
항상 정말 유익한정보 감사합니다^^
어떤 영화에서 nomad, 즉 damond의 반대로 적은 것을 보았는데요..
아이디가 이것과 관련이 있는지 모르겠습니다.
이건 ico를 언제쯤 하나요??
ICO는 없습니다.
조만간 github에 소스를 공개한다고 합니다.
네 정보 감사합니다^^
I'm loving it!
I'm speechless.
This is pure brilliance.
Great job explaining.
This is remarkable work.