블록체인 내 개인 정보 보호 기술과 이더리움 블록체인의 거래 처리 방식
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에서 송신자와 수신자, 거래 금액을 모두 비공개로 거래 가능
'PBL Ⅲ > BlockChain' 카테고리의 다른 글
[자료조사] 블록체인 성능평가 방법 (0) | 2022.09.25 |
---|---|
Hotel Reservation Smart Contract with SOLIDITY (0) | 2022.06.09 |
[블록체인의 원리] 5. 비트코인 스크립트 (0) | 2022.06.04 |
[블록체인의 원리] 4. 비트코인의 원리 (2) (0) | 2022.06.04 |
Create a Simple Ethereum SmartContract (2) (0) | 2022.06.01 |