devops

Quorum의 Private Transaction manager, Tessera 테세라란? 본문

DevOps/Chain

Quorum의 Private Transaction manager, Tessera 테세라란?

vata500 2023. 1. 26. 21:31
반응형

쿼럼(quorum)은 JP모건에서 높은 확장성 구현을 위해 이더리움을 하드포크하여 개발한 엔터프라이즈 블록체인이다. 각 노드는 전체 네트워크 합의를 기다리지 않고, 신뢰할 수 있는 특정 노드만이 합의하여 확장성을 크게 개선할 수 있다.

오픈소스기 때문에 많은 기업과 서비스들이 쿼럼을 활용해서 프라이빗 체인을 운용하고 테스트 중에 있는 것으로 보인다.쿼럼같은 엔터프라이즈 체인은 프라이버시가 중요한데, 이를 Tessera 라는 Private Transaction Manager가 역할을 해주고 있다.

Tessera

테세라는 Consensys가 개발하고 있으며 Goquorum과 Hyperledger Besu에 사용되는 트랜잭션 매니저다. 주요 역할은 아래와 같다.

  • 다른 트랜잭션 매니저와 함께 P2P 네트워크 구현
  • Key Management와 데이터 암호화/복호화를 enclave에 위임
  • DB로부터 데이터를 저장
  • 이더리움 클라이언트를 위한 프라이빗 트랜잭션 페이로드 배포

주로 프라이버시가 설정된 이더리움 클라이언트로부터 받은 페이로드를 배포하는 역할을 한다.

Normal private transactions

 일반적인 프라이빗 트랜잭션은 위와같은 라이프사이클로 이루어져있다. 

  1. Participant A가 프라이빗 트랜잭션을 GoQuorum Node A에 전송한다.
  2. GoQuorum Node A는 데이터를 JSON으로 직렬화하여 Tessera A에 보낸다.
  3. Tessera A는 data를 암호화하고 그것을 다른 Tessera Node에 전송한다.
  4. Tessera는 암호화 처리된 data를 GoQuorum Node A에 다시 리턴하고 GoQuorum은 기존 데이터를 암호화된 데이터로 대체한다. 그리고 GoQuorum은 프라이빗 트랜잭션에 사인한다
  5. GoQuorum은 프라이빗 트랜잭션을 전체 네트워크에 배포한다.
  6. 모든 노드는 트랜잭션을 확인할 수 있다. 그러나 Private transaction을 전송받은 Tessera Node A와 B만 복호화된 원본 데이터를 실행할 수 있다.

Privacy maker transactions

  1. Participant A는 GoQuorum Node A에 프라이빗 트랜잭션을 전송한다.
  2. GoQuorum A는 트랜잭션의 data 값을 JSON으로 직렬화하여 Participant A의 세부 정보와 함께 Tessera A로 보낸다.
  3. Tessera A는 이를 암호화하여 data 거래의 참여자들에게 배포한다.
  4. Tessera는 암호화된 data 해시값을 GoQuorum Node A에 리턴한다. GoQuorum은 data 해시 값과 함께 pulbic PMT를 만들고 PMT에 사인한다.
  5. GoQuorum은 전체 네트워크에 PMT를 배포한다. 모든 노드는 PMT를 볼 수 있다. (PMT는 퍼블릭 트랜잭션과 같은 방법으로 처리된다. PMT의 to 값은 프라이버시 컨트랙트의 주소)
  6. GoQuorum node B와 C는 PMT와 함께 프라이버시 프리컴파일을 호출한다.
  7. GoQuorum은 PMT로부터 공개적으로 사용 가능한 해시를 사용하여 Tessera를 통해 복호화된 프라이버시 트랜잭션을 받기 위한 시도를 한다.
  8. 프라이버시 트랜잭션을 받을 수 있는 여부는 트랜잭션 참여자 노드인지에 따라 결정된다.

8번에서 트랜잭션 참여자일 경우에는 복호화된 data를 얻게된다. 물론 이는 Tessera로부터 주어지며 프라이버시 프리컴파일이 트랜잭션을 실행한다. 반면, 참여자가 아닌 경우 복호화된 데이터를 받을 수 없다.

반응형
Comments