의견.png

"트루빗"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
2번째 줄: 2번째 줄:
  
 
==개요==
 
==개요==
최근 다양하게 제시되고 있는 확장성 솔루션들은 메인체인의 트랜잭션 처리성능을 개선하여 TPS를 높이는데 중점을 둔 경우가 많다. 샤딩이나 플라즈마 등 많은 솔루션들이 이에 해당한다. 이에 반해 트루빗은 이더리움의 TPS가 아닌, 이더리움에서 처리할 수 있는 연산 성능의 한계를 극복하기 위해 등장한 확장성 오프체인 솔루션이다. <ref name="트루빗"> Decipher Media,〈[https://medium.com/decipher-media/truebit-681181846d93 블록체인 확장성 솔루션 시리즈 5?1 :: Truebit A to Z]〉, 《Medium》, 2018-07-05 </ref>
+
최근 다양하게 제시되고 있는 확장성 솔루션들은 메인체인의 트랜잭션 처리성능을 개선하여 TPS를 높이는데 중점을 둔 경우가 많다. 샤딩이나 플라즈마 등 많은 솔루션들이 이에 해당한다. 이에 반해 트루빗은 이더리움의 TPS가 아닌, 이더리움에서 처리할 수 있는 연산 성능의 한계를 극복하기 위해 등장한 확장성 오프체인 솔루션이다. <ref name="트루빗">//medium.com/decipher-media/truebit-681181846d93</ref>
  
  

2019년 9월 3일 (화) 09:34 판

트루빗(truebit)은 이더리움의 연산 성능을 올리기 위한 오프체인 솔루션이다. [1]

개요

최근 다양하게 제시되고 있는 확장성 솔루션들은 메인체인의 트랜잭션 처리성능을 개선하여 TPS를 높이는데 중점을 둔 경우가 많다. 샤딩이나 플라즈마 등 많은 솔루션들이 이에 해당한다. 이에 반해 트루빗은 이더리움의 TPS가 아닌, 이더리움에서 처리할 수 있는 연산 성능의 한계를 극복하기 위해 등장한 확장성 오프체인 솔루션이다. [2]


배경

이더리움에서 프로그램을 실행하기 위해서는 복잡도가 높아질수록 수수료가 증가하게 되는데 한 블록 안에 담길 수 있는 가스의 양이 제한되어 있다. 또한, 많은 연산 작업을 필요로 하기 때문에 블록 당 처리 가능한 연산에도 한계가 있다. 이로 인해 이더리움의 연산 성능 문제가 지속적으로 제기되어 왔다. [3]


Verifier의 딜레마

이더리움 채굴자는 다음 블록 채굴을 시작하기 전, 새로운 블록이 정확한 블록인지 검증할 필요가 있다. 하지만 해당 검증에 대해서 보상(수수료)은 받지 못한다. 그렇다고 해서 검증을 하지 않고 바로 그 위에 블록을 붙였다가는 잘못된 체인에 시간만 낭비하는 셈이 될 수 있다. 그렇기 때문에 검증할지, 건너뛸지에 대한 두 가지 상반된 행위 사이에서 고민하게 되는데 블록 가스 제한이 늘어날수록 심해지는 양상을 나타낸다.

블록체인의 확장성 문제를 해결하는 방법에는 크게 온체인 솔루션오프체인 솔루션으로 나눌 수 있다. 온체인 솔루션은 블록체인 상에서 확장성 문제를 해결하는 것으로 거래 처리 속도나 용량을 늘리는 등 처리 방식의 효율화를 의미하며, 오프체인 솔루션은 블록체인 외부에서 거래를 처리하여 네트워크가 효율적으로 돌아가는 것을 의미한다. [2]


기술

원리

DApp이 블록 가스제한보다 많은 가스가 소모되는 연산을 수행하고 싶을 때, 트루빗 프로토콜로 넘긴 다음 트루빗 네트워크 참여자들이 복잡한 연산을 대신 수행하고 결과값만을 전달하여 온체인에 다시 반영하는 형태이다.

Solver(문제를 푸는 채굴자)

스마트 컨트랙트에 보증금(토큰)을 예치하고 연산을 처리한다. 연산을 올바르게 처리했을 경우 예치해 두었던 보증금과 보상을 받는다.

Solver의 답이 틀렸다고 판단될 경우

Challenger가 보증금을 예치하고 Solver의 답에 이의를 제기한다. 이후 검증 게임을 실시한다. (Solver와 Challenger의 결과가 다르게 나타나는 부분만 검증한다.)

Solver의 연산이 틀리면 Solver의 보증금에서 삭감되며, Solver의 연산이 맞으면 검증 게임에 발생된 비용을 Challenger의 보증금에서 삭감한다.


트루빗 컨트랙트

트루빗 컨트랙트(Truebit Contracts)

▶아라곤(Aragon)예시 온체인에서 투표 결과를 집계하는 연산처리는 비싸고, 블록 가스 제한도 초과하므로 트루빗 프로토콜로 넘김


DApp과 트루빗 프로토콜이 상호작용하기 위한 API이다. 트루빗 스마트 컨트랙트 안에는 createTask라는 함수가 있다. DApp은 createTask함수를 호출할 때 아래의 3가지 변수를 전달한다.

  • Program

실행하고 싶은 코드. 트루빗은 WebAssembly VM코드를 사용한다. DApp은 bytecode를 넘길 수 있고, IPFS 해시값이나 코드가 저장된 다른 콘텐츠 주소로 전달할 수 있다.

  • Input

실행할 프로그램의 입력 값이다. DApp은 input값을 직접 제공하거나 input값이 저장된 다른 콘텐츠 주소로 전달할 수 있다.

  • Reward

프로그램을 실행한 사람에게 지급할 보상

트루빗 네트워크

트루빗 클라이언트를 설치한 사람 누구나 트루빗 네트워크의 채굴자가 될 수 있으며, 이들은 트루빗 컨트랙트의 이벤트를 주시한다.

트루빗 네트워크(Truebit Network)

트루빗 채굴자들은 새로운 Task가 생기면 코드를 다운로드하고, 제공된 input과 함께 Truebit WebAssembly VM을 로컬로 실행하여 결과값을 컨트랙트에 제출한다. (※이 때, 문제를 푼 채굴자를 문제 해결자(Solver)라고 하고, 결과값을 제출할 때 일정량의 보증금도 함께 제출해야 한다. 해당 보증금을 통해 자신이 올바른 결과값을 제출했다고 간주하는 것이다.)

Case1. Challenge가 없을 경우

문제 해결자가 결과 값을 제출한 시기부터 타이머가 시작된다. 타이머 동안 제출된 결과값을 검증하여 틀린 결과라고 생각된다면 누구나 챌린지를 다시 신청할 수 있다. 이 때, 챌린지를 신청한 검증자 역시 보증금을 함께 지불해야 한다. 또한, 타이머 동안 아무 챌린지도 제출되지 않았을 경우 문제 해결자가 올바르게 코드 연산을 수행했다고 생각할 것이다. 따라서 트루빗 컨트랙트가 DApp 컨트랙트로 해당 결과값을 다시 콜백하여 준다.

Case2. Challenge가 있을 경우

Challenger가 보증금을 걸고 challenge 제출 시, 트루빗 컨트랙트에는 ①Task Giver가 제시한 보상, ②문제 해결자(Solver)의 보증금, ③검증자(Challenger)의 보증금이 예치되어 있다.


한계

결론

각주

  1. 도예리 기자,〈서울대 연구원이 말하는 이더리움 연산력 한계 극복하기〉,《decenter》2019-05-22
  2. 2.0 2.1 //medium.com/decipher-media/truebit-681181846d93 인용 오류: 잘못된 <ref> 태그; ".ED.8A.B8.EB.A3.A8.EB.B9.97"이 다른 콘텐츠로 여러 번 정의되었습니다
  3. 강민승 기자,〈도지더리움으로 보는 인터체인의 역사1 - 도지더리움의 탄생〉,《매일경제》2019-07-11

참고자료

같이 보기


  의견.png 이 트루빗 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.