기업에서 DApp 운영을 위해 해결해야 할 과제? 그 첫번째.

한국의 많은 블록체인 업체들이 블록체인 코어를 분석하고, 기존 블록체인 코어의 한계점을 극복하기 위한 많은 개념들을 분석하는 좋은 자료들을 배포해 주고 있어서 항상 고맙게 생각하고 있다.
하지만 실제 DApp이 개발이 되고, 실제 비즈니스 사이트에서 무수히 많은 DApp을 운영할때 생기는 여러가지 문제들에 대한 고민에 글은 아직까지 보지 못한것 같다. (내가 못찾고 있는 걸테고, 이미 많은 분들이 고민하고 있겠지…)
참고로 나는 약 19년 동안 기업 ERP 전문 컨설턴트 및 개발자로 일을 했고, 누구보다 기업 비즈니스 및 그들이 일하는 방식에 대한 많은 경험을 가지고 있다.
요즘 나도 블록체인에 푹빠져 있다. 업계의 다른 사람들 보다 블록체인에 늦게 합류하여 이제 막 걸음마를 걷기 시작했다(오늘로써 정확히 한달 반이 된것 같다). 그나마 다행인건 그래도 기업 컨설팅 및 개발 뿐 아니라 내가 직접 만든 솔루션을 해외에 판매한 여러 경험이 있다보니, 남들보다는 빠르게 블록체인 기술을 익혀 가고 있다.
요즘에 DApp을 만들다 보니, 당장 기업에서 DApp을 사용할때 생기는 여러가지 관리 포인트들이 보이기 시작했고, 이것을 해결하지 않으면 사실상 기업에서 DApp을 사용하는 데 큰 챌린지가 될것이라는 생각이 들었다.
여기서 내가 말하는 DApp은 이더리움 메인넷 환경에서 동작하는 DApp을 지칭한다.
그래서 그동안 경험을 바탕으로 실제 기업 업무 시스템으로 DApp이 적용이 될 때 해결해야 할 과제들을 하나씩 정리해 보기로 했다.
그 첫번째로, 기업에서 각 업무 담당자의 account를 관리하기 위해 해결해야 할 부분에 대해서 생각을 해보았다.
물론 아래의 문제는 이더리움 public network를 사용한다는 가정에서 나온 문제이고, 기업이 자체 private 망을 구축하고 가스 비용 처리를 다르게 가져간다면 문제가 되지는 않을것 같다.
그럼 한번 시나리오를 가정해 보자. DApp을 개발해 본 사람 혹은 사용해 본 사람은 누구나 알고 있는 사실. Transaction을 흘릴때 마다 가스비용이 발생한다는 것이다. 기업에서 DApp을 사용하는 것을 상상해 보자.
기업의 각 업무 담당자는 DApp을 구축되어 있는 특정 업무 기능을 사용하기 위해서 Transaction을 흘릴때 마다 메타마스크에서 가스비를 입력한다.
입력된 가스비가 적절해서 쉽게 체결될수도 있지만, 가스비가 부족해서 체결이 계속 미뤄지면서 업무시간이 낭비 될수도 있다. 가스비를 높여서 체결 시간을 빠르게 가져가면 업무시간이 단축될수 있지만, 매번 많은 가스비용을 지급해야 하는 문제가 발생한다. 그렇다고 가스비용을 줄이면, 체결하는 속도가 느려지고, 그 만큰 업무시간을 많이 소비하게 된다.
그럼 몇가지 고민해봐야할 부분을 나열해 보자.
첫번째, 가스비를 지불하는 account는 개인 계좌로 해야 할까? 아니면 회사에서 발급한 계좌로 해야 할까?
두번째, 가스비 지급을 위한 ether를 회사에서는 어떻게 각 업무 담당자에게 지급할것 인가? 어떠한 Rule을 가지고 지급할 것인가?
세번째, 동일한 업무를 하고 있는 두명의 담당자가 매달 사용한 가스비가 다르다면, 이를 어떻게 받아드릴 것인가?
네번째, 업무 담당자 계좌에 보내진 Ether를 담당자가 인출해 가버렸다면? 그 관리 감독은 어떻게 할것인가?
내가 요즘 만들려고 계획중인 DApp은 기업에서 각 업무 담당자가 DApp을 사용할때 생길수 있는 문제를 관리해 주는 DApp이다.
이 DApp에는 아래와 같은 기능이 포함되어져야 할것 같다.
첫번째, 관리자는 업무 담당자 수 만큼 신규 account를 발급할 수 있어야 한다. 해당 account는 직접 ether를 인출해 갈 수 없으면, transaction에 들어가는 가스비용으로만 사용할 수 있게 되어야 한다.
두번째, 관리자는 각 업무 담당자가 사용하고 있는 transaction 별 가스비용을 모니터링 할 수 있어야 하고, 각 업무 담당자의 남아 있는 ether를 확인 할 수 있어야 하겠다. 그리고 ether가 부족한 담당자에게 정기적으로 손쉽게 ether를 전송해 줄 수 있어야 한다. 또한 각 업무 담당자는 본인 업무 account의 ether가 부족하면 관리자에게 추가로 ether 요청을 할 수 있고, 승인 절차에 의해 ether가 지급될 수 있어야 한다.
세번째, 동일한 업무를 담당하고 있는 사람들, 즉 관리되고 있는 account에서 특정 그룹을 선택해서 해당 그룹의 가스 사용량(transaction 결 가스량)을 비교하는 기능을 제공해야겠다.
네번째, 첫번째 항목과 연결이 되는데, multisig wallet을 개념이 들어간 업무용 wallet을 제공해야 할것 같다. 기본적으로 업무용 account는 ether에 대한 전송 기능은 없고, transaction에 사용되는 가스비만 사용될 수 있도록 구현되어져야 할것 같다.
체계적으로 정리를 하지 않고, 지금 생각나는데로 글을 써 내려가다 보니, 좀 두서가 없지만, 잠깐 생각한 것만으로 위에서 작성한 해결해야할 문제들이 보였다. 이제 막 블록체인을 시작한 사람이여서, 위에서 제기한 문제가 이미 문제가 아닐 수도(이미 해답이 있는) 있지만, 블록체인을 시작해서 약 한달이 지난 지금 시점까지, 실제 DApp을 가지고 업무용 적용이 되어서 운영되고 있는 환경에 대한 정보를 볼수가 없었고, 이런 실제 비즈니스 환경에서 DApp을 적용하기 위해 생각해 봐야 할 많은 부분이 블록체인 코어만을 분석하느라 상대적으로 등한시 되고 있는게 아닌가 걱정이 된다.
난 뭐 애초부터 블록체인 코어는 딱 내게 필요한 정도만 알려고 하고 있고, DApp을 만드는데 더 많은 시간을 투자할려고 하고 있다. 원래 내가 제일 잘하던 분야였고, 블록체인 메인넷 싸움판에서 이길 자신도 없고(결국 메인넷은 몇몇 메인 벤더가 다 장악할것 같고), 그동안 기업 비즈니스에 대한 내 경험을 바탕으로 생각해 보면 DApp을 적용할 수 있는 분야도 너무 많고, DApp을 적용하기 위해 필요한 관리 차원에서의 필요한 DApp도 너무 많다.
이런걸 준비하는 것도 너무 너무 벅차다. 그런데 이런 고민 같이 할 사람이 주변에 많이 있었으면 좋겠다.

