BlockChain/Hyperledger

하이퍼레저 패브릭을 왜 써야 할까?

Superkill 2021. 5. 30. 17:21
반응형
본 글은 주관적이거나 정확하지 않은 내용이 포함 되어있을 수 있습니다. 잘못된 부분에 대한 지적 및 토론 환영합니다.
Hyperledger Fabric is an open source enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts, that delivers some key differentiating capabilities over other popular distributed ledger or blockchain platforms.

하이퍼레저 패브릭은 기업용, 허가형 분산 원장 플랫폼 또는 블록체인 플랫폼이라고 정의할 수 있습니다.

이 정도에서는 딱히 어려운 부분은 없는 것 같습니다. 그렇구나.. 그런데..

하이퍼레저 패브릭을 왜 사용해야 할까요?

위 질문을 조금 더 구체화 해보면 두 가지로 나눌 수 있습니다.

하이퍼레저 패브릭을 왜 사용해야 할까요? (블록체인을 꼭 써야하나요?)

(비트코인이나 이더리움을 쓰지않고) 하이퍼레저 패브릭을 왜 사용해야 할까요?

첫번째는 블록체인을 왜 써야하는지, 두번째는 다른 퍼블릭 블록체인 대신 왜 패브릭을 써야하는지 의문을 던질 수 있습니다.
위 두 질문에 대해서 다루어 보고 싶어 이 글을 쓰게 되었습니다.

Why BlockChain?

불신은 블록체인의 어머니

블록체인을 처음 대중에게 알린 비트코인이 생겨난 배경에는 글로벌 금융위기 이후 생겨난 기존 금융 시스템에 대한 불신이 있습니다.
비트코인은 블록체인을 활용해 신뢰할 수 있는 공공 장부를 대중들에게 제공할 수 있었습니다.

그러면 블록체인 자체가 신뢰를 만들어 줄 수 있는 걸까요?

그렇지는 않습니다.

왜죠?

블록들이 체인으로 연결되어 있을 때 원하는 블록을 하나 정해서 데이터를 바꾼 뒤 그 뒤에 오는 블록을 새로 연결해버리면 그만이니까요.
사실 블록체인에서 변조는 어렵지 않습니다.

그러면 블록체인으로 어떻게 신뢰를 제공할 수 있나요?

블록체인으로 신뢰를 제공하기 위해서는 추가적인 장치들이 필요합니다.
예를 들어 비트코인에서는 블록체인에 PoW 합의 방식을 적용하면서 신뢰를 제공합니다.
다시 말해 블록의 내용이 변조되지 않았다는 사실을 믿을 수 있도록 해주는 것입니다.

PoW 합의방식이 무엇인가요?

PoW 합의 방식은 누가 블록을 만들 지에 대한 매커니즘을 정의합니다.
Proof of Work란 어떤 당사자가 얼마나 많은 컴퓨팅 리소스를 투자했는지 다른 당사자에게 암호학적으로 증명할 수 있는 방법입니다.
실제로 어떤 문제의 답을 구하는 것으로 컴퓨팅 리소스를 투자했다는 것을 증명하는데 이 문제를 푸는 과정은 거의 모든 값을 일일이 대입해보면서 답을 구해야 하기 때문에 편법이 존재하지 않고 단순히 컴퓨팅 리소스를 그만큼 사용해야만 답을 구할 수 있습니다
PoW를 이용한 합의 방식은 문제를 빨리 푼 사람, 즉 가장 많은 컴퓨팅 리소스를 단기간에 투자한 사람이 다음 블록을 만드는 것에 동의하는 합의 방식입니다.

그게 어떻게 신뢰를 제공할 수 있는지 이해가 가지 않습니다

먼저 블록을 만들기 위해서는 가장 많은 컴퓨팅 리소스를 단기간에 투자해서 다른사람보다 먼저 문제를 풀어야 합니다. 
여기서 말하는 컴퓨팅 리소스를 투자한다는 것은 단순하게는 전기요금, 좀 더 구체적으로는 컴퓨터 하드웨어(CPU,RAM,그래픽카드 등) + 장소 임대비용 + (필요시 냉방비)가 해당될 수 있겠습니다.

핵심은 문제를 푸는데 비용이 발생하고 이것이 변조방지에 대한 동기를 부여하게 되는 것입니다.

문제를 풀었으면 블록을 만들어서 비트코인으로 보상을 받아야 하는데 만약 올바른 블록을 만들지 않는다면 보상을 받지 못하게 됩니다.
비용을 들였는데 아무런 보상을 받지 못한다면 올바르지 않은 블록을 생성하려는 동기를 억제할 수 있을 것입니다.
위와 같은 매커니즘으로 우리는 비트코인의 블록 하나하나에 대해서 신뢰를 할 수 있게 됩니다.
(여기에서 언급한 것 외로 좀 더 확실한 신뢰 확보를 위한 많은 장치들이 있지만 이 글에서는 여기까지만 언급하겠습니다)

이처럼 블록체인과 함께 적절한 무언가를 결합하면 신뢰를 확보할 수 있는 시스템을 구성할 수 있습니다.

Why Hyperledger Fabric?

비트코인/이더리움과 패브릭은 각각 퍼블릭 블록체인 그리고 프라이빗 블록체인으로 구분이 됩니다.
프라이빗 블록체인들은 누구나 참여가능한 퍼블릭 블록체인과 달리 기업이나 조직 간 컨소시엄을 구성하여 제한적으로 이용할 수 있습니다.
프라이빗 블록체인에서는 참여 주체들의 신원이 확보되어 있으며 참여 주체들은 공통의 목적, 예를 들어 사업에 필요한 공동 장부 유지를 위해 노력합니다.

PoW는 자원낭비

패브릭 네트워크의 참여자는 공통의 목적을 달성하기 위해서 참여하는 것이기 때문에 동기가 이미 부여되었다고 판단해서인지  비트코인이나 이더리움 같은 퍼블릭 블록체인에서 흔히 볼 수 있는 보상 시스템이 없습니다. 보상이 없기 때문에 비트코인의 PoW 방식처럼 컴퓨팅 리소스를 투자했다는 증명을 해가면서 블록을 만들 필요도 없습니다.
따라서 패브릭 참여자들은 컴퓨팅 리소스에 대해 경쟁적으로 투자할 필요 없이 최소한의 비용으로 안정적인 네트워크 유지하는 것을 목표로 할 것입니다.

그러면 블록, 즉 장부에 대한 신뢰는 어떻게 확보할 수 있을까요? 공동의 목적을 가진 신원이 확보된 주체들이기 때문에 악의적으로 장부에 대해 변조를 시도하지 않을 것이라 간주하고 장부를 신뢰를 하는걸까요?

그렇지 않습니다.

패브릭에서는 두 가지 종류의 노드가 있습니다. 하나는 orderer 나머지 하나는 peer입니다.
orderer는 여러 클라이언트로부터 제출된 트랜잭션들을 정렬하여 블록을 만드는 역할을 하며 peer는 orderer가 만든 블록을 받아 블록 및 내부 트랜잭션들을 검증한 뒤 유효한 트랜잭션들의 변경사항에 대해서만 peer 자신의 장부(state)에 반영하는 일을 수행합니다.
즉 peer는 '직접' 블록을 검증함으로써 장부에 대한 신뢰를 확보합니다.

이런 방식의 확보한 신뢰에는 "내 조직이 운영하는 peer를 통해 구성된 장부는 믿을 수 있다"라는 전제가 깔려있습니다.
단, orderer가 만든 블록에 대해서 변조 가능성이 없어야 하겠죠.

그러면 블록에 대한 변조 가능성에 대해서 살펴보겠습니다.
패브릭에서는 데이터에 대한 변조를 방지하기 위해 디지털 서명을 이용합니다.
예를 들어 클라이언트가 오더러에 제출하는 트랜잭션에는 클라이언트의 디지털 서명으로 클라이언트 이외의 주체에 의한 변조를 방지하고  있습니다.
마찬가지로 오더러가 생성한 블록에도 오더러의 서명을 통해 블록의 변조를 방지하고 있습니다.
이 뿐만 아니라 클라이언트가 제출하는 트랜잭션들은 해당 트랜잭션들로 인해 장부에 반영될 변경사항에 대해서 미리 설정된 정책(Policy)에 따라 특정 조직의 피어로부터 동의(endorsement)를 받아야 하는데 이 또한 해당 피어의 전자 서명을 통해서 변조를 방지하고 있습니다.
결과적으로 블록에 대해서 변조를 하는 것은 전자서명으로 인해 불가능 하다고 할 수 있습니다.

결국 오더러에서 유일하게 할 수 있는 악의적인 행동은 특정 트랜잭션을 블록에서 누락시키는 것이라고 할 수 있습니다.
그러나 이런 방법으로는 장부에 대한 변조가 일어나지 않기 때문에 장부에 대한 신뢰를 위협한다고는 볼 수 없습니다.
그리고 이 또한 해당 트랜잭션을 제출한 클라이언트가 같은 조직의 Peer를 통해서 제출했던 트랜잭션의 commit 이벤트를 받도록 하면
만약 오더러가 제출한 트랜잭션을 고의/비고의적으로 누락시키더라도 해당 트랜잭션의 commit latency가 지나치게 증가하는 것으로 트랜잭션 누락을 감지할 수 있을 것이라고 생각합니다.


[번외] Hyperledger Fabric is BlockChain

블록체인의 핵심가치는 데이터 위변조 방지입니다

블록체인에 대해서 이야기 할 때 빠짐없이 나오는 키워드 중 하나가 탈중앙화 입니다.
그런데 다음과 같이 주장하는 사람들을 종종 보입니다.

"패브릭 같은 프라이빗 블록체인은 블록체인의 핵심 가치 중 하나인 탈중앙화를 위배하기 때문에 블록체인이 아니다"

그러나 제 생각은 다릅니다. 블록체인의 핵심가치는 데이터 위변조 방지에 있으며 탈중앙화는 그 핵심가치를 구현하기 위한 수단이지 탈중앙화 그 자체가 핵심가치는 아니라고 생각합니다.

사실 패브릭이 탈중앙화 되어 있는지 그렇지 않은지는 애초에 중요하지 않은 것 같습니다.
중요한 것은 비트코인 같은 퍼블릭 블록체인이나 패브릭같은 프라이빗 블록체인이나 블록체인에 각 플랫폼만의 어떤 장치를 함께 적용하면서 장부에 대한 신뢰를 확보했다는 것이라고 생각합니다.

'BlockChain > Hyperledger' 카테고리의 다른 글

앤서블 진입장벽  (1) 2021.06.02