PBL Ⅲ/BlockChain

[ 자료조사 ]블록체인 내 개인정보보호방안

myejinni 2023. 1. 15. 23:44

블록체인 내 개인 정보 보호 기술과 이더리움 블록체인의 거래 처리 방식

0. 거래 정보를 숨겨야 하는 이유

-개인 정보를 보호하기 위해서.

-개인 정보의 범위가 점차 넓어지면서 생년월일이나 전화번호를 넘어서 누군가를 특정할 수 있는 정보까지 개인 정보로 취급

-> 거래자를 특정하거나 유추할 수 있는 블록체인 거래 역시 개인 정보에 민감한 서비스에서는 개인 정보로 생각하고 보호하기를 원함

-보안 관점에서 거래 정보가 노출되지 않아야 함.

-> 거래 정보나 보유 잔액 정보가 노출될 경우 보안을 유지해야 하는 중요한 정책들을 시행하기 어렵기 때문

 

1. 거래 정보를 숨기는 방법 - PETs(Privacy Enhancing Technologies)

-거래 정보를 숨길 수 있는 블록체인의 기술?

-2020년 Project Stella의 보고서에 따르면 블록체인의 개인 정보 보호 기술은 '분리(segregating)'와 '연결 해제(unlinking)', '숨기기(hiding)'로 분류 가능

 

2. 원장 분리

-거래당사자 또는 관련자만 공유하는 원장에 거래를 기록해 제3자는 거래 정보 자체에 접근할 수 없도록 차단하는 기술

3. 블록체인 거래 처리 방식

-블록체인의 거래 처리 방식은 크게 UTXO 방식계정 방식으로 나눌 수 있음. 이에 따라 블록체인도 UTXO 기반 블록체인과 계정 기반 블록체인으로 나눠짐. 

-비트코인은 대표적인 UTXO 기반의 블록체인이고 이더리움은 계정 기반 블록체인

-거래 처리 방식에 따라서 보안 거래를 구현하기 위해 선택할 수 있는 기술이 달라짐

 

4. 계정 모델

: 계정 모델은 은행 계정과 같이 사용자 계정을 기준으로 잔액 정보를 키-값 형태의 데이터베이스로 관리하는 모델

 

-거래는 송신자가 보유한 잔액 이하의 금액을 송신 금액으로 하고 이 거래를 송신자의 개인 키로 서명해서 거래를 증명

-계정 모델은 잔액이 있음을 증명

-거래 처리를 완료하면 각 계정의 잔액을 변경해서 거래 결과를 반영

-트랜잭션에 기록된 내용을 상태 값 연산에 그대로 적용할 수 있으므로 복잡한 처리도 직관적으로 작성할 수 있고 이해하기가 더 쉬움

-잔액 정보가 다양하게 연계되는 스마트 계약을 구현하는 데 용이하지만, 계정의 잔액이 크리티컬 영역이기 때문에 병렬 처리를 통한 성능 향상은 쉽지 않음

 

5. 계정 모델의 개인 정보 보안 강화 기술

-계정 모델에서는 잔액을 하나의 변수에서 관리하면서 지속적으로 업데이트하므로 특정 거래만 보안 처리해 계정 당사자만 알 수 있도록 하기 위해서는 공개 잔액과는 다른 보안 잔액을 별도 변수로 관리해야 함

-또한 보안 잔액의 상태를 변경할 때마다 값을 변경하기 위해서 동형 암호와 같은 기술을 사용해 암호화된 상태에서도 덧셈 연산이 가능하게 만들어야.

계정 모델의 개인정보 보안 강화 기술

-State(N+2)에서 계정의 Balance t2를 보안 거래해서 State(N+3)에 반영하기를 원한다면, State(N+2)에서 계정의 Balance t2가 왜 이 잔액을 가지고 있는지, 그리고 유효한 잔액인지를 증명해야 함

-그런데 이 잔액은 이전 거래들을 진행하며 계속 반영한 것이기 때문에 이전에 완료한 거래들도 모두 증명할 수 있어야 됨.

-그래서 계정 모델에서 특정 거래만 보안 거래를 하기 위해서는 보안 거래를 위한 별도의 잔액을 변수로 관리해야 하고, 이 잔액은 암호화된 상태에서 연산할 수 있어야 

 

보안 거래 작동 방식

 

1. 기본 거래는 계정 모델인 공개 잔액으로 진행됨

-> 공개 잔액으로 송금할 수 있는 RevealingTransaction을 추가

 

2. 공개 잔액과 보안 잔액 간 교환이 필요

-> 공개 잔액을 보안 잔액으로 송금할 수 있는 HidingTransaction과 보안 잔액에서 공개 잔액으로 송금할 수 있는 RevealingTransaction을 추가했고,

-> 보안 거래는 SecretTransaction에서 송신자와 수신자, 거래 금액을 모두 비공개로 거래 가능

 

 

참고: https://engineering.linecorp.com/ko/blog/how-do-we-secure-transaction-data-in-account-base-blockchain