트러스트 컨트랙트
트러스트 컨트랙트(Trust Contracts)는 보스코인에서 최초로 제안한 스마트 컨트랙트의 개선안이다. 현재는 보스아고라(BOSAGORA) 프로젝트에서 계승하여 진행 중이나 초기의 개념과 다른 방향으로 개발 중이다.
보스코인의 설명
트러스트 컨트랙트(trust contracts)란 아울체인(OWLchain)이라 불리는 결정가능성을 가지는 프레임워크에 기반하여 안전하게 실행되는 계약을 말한다. 아울체인(OWLchain)은 온톨로지 웹 언어(OWL; Ontology Web Language)와 타임드 오토마타 언어(TAL; Timed Automata Language)로 구성되어 있다. 아울체인이라 불리는 결정가능성을 가진 프로그래밍 프레임워크에 기반하여 안전한 계약을 보장하며, 기존 스마트 계약의 결정불가능성으로부터 발생되는 문제들을 극복할 수 있다. 온톨로지 웹 언어(OWL)의 목적은 기존의 웹 표준 기술들의 조합을 통해 인터넷 상에서 정보의 신뢰성을 제공하는 것이다. 보스코인 블록체인 위에 만들어진 아울체인에 기반한 계약을 트러스트 컨트랙트라고 한다. 이 아키텍처는 표현력을 확장하면서도 계약이 안전하고 정확하게 실행되도록 지원할 수 있는 결정가능성을 유지하도록 설계되어 있다. 아울(OWL)과 RDF 모두 모호하지 않은, 구조화된 데이터 분류체계를 작성하는데 사용될 수 있다. 보스코인은 온톨로지 웹 언어(OWL)를 트러스트 컨트랙트의 기반 언어로 선택했다. 그 이유는 OWL은 이전에 제시된 사실 또는 공리의 집합에서 논리적인 결과를 추론하는 도구인 Reasoners를 사용하여 P-TIME 복잡성을 보장하기 때문이다. 보스코인에 대해 자세히 보기
보스아고라의 설명
초기 보스코인 백서에서 트러스트 컨트랙트(Trust Contract)에 대해 다음과 같이 설명하고 있다 : “트러스트 컨트랙트란 아울체인(Owlchain)이라 불리는 프로토콜 레이어에 기반하여 안전하게 실행되는 계약을 말한다. 아울체인은 웸 온톨로이 언어(Web Ontology Language)와 타임 오토마타 언어(Timed Automata Language)로 구성된다. 트러스트 컨트랙트는 아울체인(Owlchain)이라 불리는 결정가능성을 가진 프로그래밍 프레임워크에 기반하여 안전한 계약을 보장하며 기존 스마트 컨트랙트의 결정불가능성(non-decidable)으로부터 발생되는 문제들을 극복한다.”[1]
이 아키텍처의 궁극적인 목표는 안전하고 정확한 실행을 보장하는 동시에 확장성을 극대화하는 데 있어 결정가능한(decideable) 계약을 구축하는 것이다. 이 목표를 달성하기 위해, 초기 백서는 두 가지 방법론을 언급한다. 하나는 가상머신에서 유연한 프로그래밍 언어를 사용하는 것이고, 다른 하나는 그에 비해 덜 유연하지만 특정 도메인의 언어를 사용하는 것이다. 초기 계획은 후자의 방향으로 결정되어 있었다.
초기의 개발팀은 시맨틱웹 기술을 바탕으로 추론 엔진을 연구하였으나 성과가 없었고. 또한 이 문제를 극복할 수 있는 방법이나 기술 연구의 결과가 없었다. 현재 보스코인에서는 이 기술이 전혀 구현되어있지 않다.
“온톨로지(Ontology)는 개념의 명시적 규격이다. 이 용어는 시스템적으로 존재한다는 철학적인 뜻에서 차용되었다. 온톨로지(Ontology)는 존재에 대한 체계적인 설명을 가능케 하는 철학 지식 기반 시스템, 즉 "존재한다" 라는 것을 정확하게 나타낼 수 있는 방법이다. 도메인에 대한 지식이 특정한 형태를 갇추어 표현될 때, 표현할 수 있는 대상의 집합을 논의 영역(universe of discourse)이라 한다. 대상의 집합과 그들 사이의 설명 가능한 관계는 지식 기반 프로그램이 지식을 나타내는 표현 어휘에 반영된다. 따라서, 일련의 표현 용어를 정의함으로써 프로그램의 온톨로지를 설명할 수 있다.”[2]
“온톨로지는 특정 영역에서 공유할 수 있는 개념화의 공식적이고 명시적인 규격이다.”
온톨로지는 오랫동안 인공지능과 자연어 처리 분야에서 연구 개발되어 왔다. 이는 컴퓨터가 관계와 정의로부터 주어진 정보를 이해할 수 있게 해준다. 이를 근거로, 컴퓨터는 결국 요청된 정보를 추론하게 될 것이다.
하지만 현실 세계에서 온톨로지를 구축하는것, 즉 세상의 사물에 대한 관계를 정립한다는 것에는 많은 노력과 시간이 필요하다. 탈중앙화된 일반 대중이 추론 엔진의 기능이 완성될 때까지 추론 엔진의 의미에 대해 작업하는 것은 어려울 뿐만 아니라, 엔진의 사용에도 한계가 있고 입력 값에 따라 결과를 검증하는 것도 어렵다. 그리고 현재 추론 엔진을 여러 상황에 쉽게 사용할 수 있는 상용화된 기술은 존재하지 않는다.
또한, OWL에서 구현된 의미론적인 소스 코드를 분석하여 Time Automata Language 기반 검증을 자동화하기는 더욱 어렵다. 소스 코드의 복잡성이 증가함에 따라 검증 대상 수가 기하급수적으로 증가하여 검증이 거의 불가능하다. OWL을 계약서 작성에 사용할 경우, 복잡하고 상세한 사양을 요구하게 되며, 예측 가능하고 현실적인 계약서를 작성하는 과정이 너무 어려워서 검증하기 어렵다면 이용자로 하여금 해당 기술을 사용하도록 장려할 수 없다.
보스아고라 팀은 최초의 의도대로 안전하고 정확한 프로그램 가능하며 실행할 수 있는 계약을 가능하게 하는 트러스트 컨트랙트의 개발을 목표로 한다.
실현 불가능한 것을 계속하기보다는 트러스트 컨트랙트를 재정의하고, 최적의 방향의 선정과 핵심기능 개발을 위해 적절한 기술 적용을 적극적으로 추진하겠다. 또한 가상 머신 위에 유연한 프로그래밍 언어를 사용하는 방법론을 채택하는 것을 고려하고 있으며, 우리는 현재 다른 업계 경쟁사들과 같이 웹어셈블리를 연구하고 있다. 결국, 우리는 효율적이고 안전하게 설계된 스마트 계약 엔진을 제공하고 개발자들이 쉽게 채택할 수 있도록 많은 도구와 인기 있는 개발하기 쉬운 언어를 제공할 생각이다.
웹어셈블리(WebAssembly)는 최신 웹 브라우저에서 실행할 수 있는 새로운 종류의 코드다. 이는 상당한 성능이점을 제공한다. "웹어셈블리는 스택 기반 가상 머신의 이진 명령 형식이다. 웹어셈블리는 C/C++/러스트와 같은 고도의 언어를 컴파일하기 위한 휴대용 타겟으로 설계되어 있어 클라이언트 및 서버 애플리케이션을 웹상에 배포 가능하게 한다."
웹 상에서 복수의 언어로 작성되는 프로그램을 클라이언트 애플리케이션을 사용하여 거의 네이티브에 가까운 속도로 실행하는 것은 이전에는 불가능했다. 웹어셈블리에서 코드를 실행하는 것은 실제 하드웨어와 유사하다. 웹어셈블리를 통해 개발자들은 C++, 러스트 등 다양한 프로그래밍 언어로 코딩할 수 있으며, 네이티브와 가까운 성능으로 프로그램을 실행할 수 있을 것으로 기대할 수 있다. 또한 이오스, 이더리움, 트론, 카르다노(에이다)와 같은 많은 블록체인 플랫폼 또한 웹어셈블리를 사용하여 가상머신을 도입하거나 도입할 계획을 가지고 있다.
도입 계획의 타당성을 연구하여 해결책이 발견되면, 본 백서에 제시된 "트러스트 컨트랙트"의 목적과 방향을 완성하기 위한 기술적, 실용적 조치를 취할 것이다.[3]
각주
- ↑ 보스코인 백서 1.0 - 박한결, 박창기, 최예준, 최현덕, 〈The BOSchoin White Paper - BOScoin, 스스로 진화하는 암호화폐 플랫폼〉, 2017-04-07
- ↑ A Translation Approach to Portable Ontology Specifications 〈A Translation Approach to Portable Ontology Specifications〉
- ↑ 보스아고라 백서 - 〈BOSAGORA Whitepaper〉, 2020-01-16
참고자료
- 보스아고라 백서 - 〈BOSAGORA Whitepaper〉, 2020-01-16
같이 보기