블록체인은 어느 경우에 도입해도 되는 것일까?
본 포스팅은 아래 MooC (Massive Open Online Course) 강좌의 학습 내용 일부입니다.
원문은 아래 링크에서 확인하실 수 있습니다.
https://github.com/choigww/study-by-mooc/blob/master/edx-blockchain-for-business/3-the-promise-of-business-blockchain-technologies/3-when-to-use-or-not-to-use-blockchain-tech.ipynb
블록체인은 언제 사용해야 할까?
"분권화된 장부 또는 스마트 컨트랙트를 이용해서 비즈니스 프로세스를 개선할 수 있는 곳은 어디일까?"
만약 블록체인이 필요해 보이는 분야를 찾아냈다면, 그 "필요"를 요목조목 따져 보아야 한다.
블록체인을 사용해야 할 때
비즈니스에 블록체인 기술을 도입하기 전에 고려해야 할 요소가 있다. 프로세스 또는 시스템 참여자는 얼마나 되는가? 참여자들은 물리적으로 얼마나 떨어져 있는가? 성능 측면의 요구사항은 어느 수준인가? 하나의 데이터베이스를 탈중앙식 환경으로 옮기고자 하는 당신은, 도입하고자 하는 블록체인 시스템의 규칙, 리스크 그리고 각각의 참여자 또는 참여 주체의 책임을 정의해 볼 필요가 있다. 블록체인은 다음 경우에 해당하는 비즈니스 어플리케이션에 적합하다:
- 공통으로 공유하는 데이터베이스(shared common database)가 필요할 때
- 비즈니스 프로세스 참여 주체 간에 상충하는 이해관계 또는 서로에 대한 불신이 존재할 때
- 단일 데이터베이스를 사용하는 경우
- 다자간의 비즈니스 상호작용을 위해 현재 프로세스에 신뢰되어야 하는 제 3자가 존재할 때
- 에스크로 서비스, 라이센스 발급 또는 공증
- 아래 목적을 위하여 암호화를 사용하고 있거나 사용해야 하는 경우
- 데이터 기밀 유지
- 데이터 통합
- 인증
- 부인봉쇄(non-repudiation, 분쟁 발생 시 관계자가 진술서/계약서의 유효성을 부인할 수 없도록 보장하는 개념)
- 프로세스 진행에 따라 비즈니스 데이터가 서로 다른 여러 개의 데이터베이스를 드나드는 경우
- 모든 개체에 대한 데이터 일관성이 필요할 때
- 데이터의 이동과 변화를 낱낱이 기록하는 등, 비즈니스 프로세스의 디지털화가 필요할 때
- 비즈니스 시스템 참여자들에게 적용되는 공통의 규칙이 존재할 때
- 참여자들의 의사결정이 투명하게 공개되어야 할 때
- 모든 참여자가 확인할 수 있는 객관적이며 수정 불가능한 히스토리/ 로그/ 사실관계가 필요할 때
블록체인을 사용하지 말아야 할 때
블록체인은 강력한 기술이지만 모든 경우에 "알맞은" 도구가 아닐 수 있다. 블록체인 도입을 고려하고 있다면, 먼저 당신의 문제를 완전하게 평가해 보라. 현재의 기술 수준에서 블록체인 기반 솔루션은 다음과 같은 경우 적절하지 않다:
- 기밀 데이터가 비즈니스 프로세스에 포함되는 경우
- 비즈니스 프로세스가 대용량 데이터를 저장해야 하는 경우
- 거래 규칙이 자주 바뀌는 경우
- 데이터 수집 및 저장을 위해 외부 서비스를 이용해야 하는 경우
1. 기밀 데이터가 비즈니스 프로세스에 포함되는 경우
블록체인이 제공하는 매우 극단적인 투명성은 최대의 장점이자 문제점이라고 할 수 있다. 이를 보완하기 위해 일부 참여자에게만 데이터를 공유해 정보의 개방성을 낮추는 방법이 사용된다. 그럼에도 데이터 프라이버시와 관련한 규제들은 블록체인 솔루션을 허용하지 않는 경우가 많다.
당신의 비즈니스와 직접 관련된 프라이버시 규제를 꼼꼼히 살펴 볼 필요가 있다. 예를 들면,
- 암호화된 형태로 데이터를 유출하는 것은 허용되는가?
- 데이터를 전송할 때 요구되는 암호화 수준은?
2. 비즈니스 프로세스가 대용량 데이터를 저장해야 하는 경우
블록체인을 도입하게 되면, 전체 데이터베이스는 블록체인 시스템 내부에 존재하는 모든 노드에 걸쳐 광범위하게 저장된다. 블록체인은 한 노드가 변화하면 그에 따라 수많은 노드가 상태값을 변경하는 구조(high replication factor)이므로, 다음 경우에 잘 맞는다.
- 입력된 내용의 변경이 많이 일어나거나
- 소량의 정보만 저장하는 데이터베이스
데이터를 많이 수정할 필요가 없거나 데이터베이스에 상당히 큰 데이터를 저장하는 경우 블록체인은 적합하지 않다.
3. 거래 규칙이 자주 바뀌는 경우
만약 비즈니스 프로세스에서 이행되는 거래의 규칙이 자주 또는 예상치 못한 방식으로 변경된다면 블록체인은 잘 맞지 않을 수 있다. 종종 블록체인의 거래 규칙은 사전에 정의되는 개념이며, 스마트 컨트랙트는 한 번 실행되면 입력된 명령을 변경 없이 실행하기 때문이다.
- 블록체인에서 일어나는 모든 것은 완벽하게 결정론적 (=함수적, 특정 입력에 대해 언제나 같은 결과를 산출)이어야 한다.
- 블록체인은 오로지 데이터를 추가만 할 수 있는 데이터베이스다.
- 거래 규칙의 변화에 따라서 데이터를 많이 변경해야 한다면 관계형 데이터베이스가 더 적합하다.
4. 데이터 수집 및 저장을 위해 외부 서비스를 이용해야 하는 경우
현재 스마트 컨트랙트 자체는 블록체인 외부 데이터를 허용하지 않는다.
외부 데이터를 가져오기 위해서는, 신탁자(oracle)가 해당 정보를 블록체인 내부로 가져오는 거래를 생성해야 한다. 대개 신탁자는 외부 데이터를 수집하여 전통적인 데이터베이스에 저장한다. 따라서 블록체인과 외부 세계 간의 상호작용은 기본 수준의 데이터베이스 연산으로 제한된다.
즉, 스마트 컨트랙트가 아닌 신탁자가 정보를 블록체인에 삽입하는 것이 된다. 신탁자가 데이터를 삽입하면 모든 노드는 똑같이 데이터를 복사하므로, 스마트 컨트랙트에서도 안심하고 데이터를 사용할 수 있다. 그러나 이 경우 탈중앙식 시스템의 목적성은 다소 훼손된다. 신뢰받는 제3자가 계속적으로 강제되는 것이므로 블록체인으로서의 효율성은 떨어진다고 말할 수 있다.
더 단순한 대안들
일부 사례에 대해서는 블록체인이 아닌 다른 옵션이 더 효율적이다. 블록체인을 검토하기 전에, 아래 옵션을 먼저 고려할 것을 추천한다:
- 일반 파일 저장소
- 중앙식 데이터베이스
- 데이터베이스 원본과 복사본 간에 주종 관계를 이루는 데이터베이스 복제
위 옵션이 더 적합하다면, 블록체인보다 덜 복잡한 방법으로 문제를 해결할 수 있는 것이다. 당신은 스마트 컨트랙트가 정말로 필요한 것인지, 아니면 SQL 호환 언어로 어떤 절차를 작성하고 저장해두는 걸로도 충분한지 자문할 필요가 있다. 마찬가지로, 데이터베이스 복제 메커니즘 없이 블록체인의 암호화 기법만을 사용하는 것도 가능한 일이다.
블록체인 Decision Path
아래 다이어그램은 블록체인 도입과 관련하여 일반화된 의사결정 포인트를 제공한다.
항상 궁금해하던 내용이었는데 잘 설명해 주셔서 감사합니다.
Congratulations @choigww! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
To support your work, I also upvoted your post!
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP