처리속도를 높이기 위한 오프체인 방법들은 무엇이있나요?
암호화폐의 확장성을 높이기 위해 오프체인을 따로 두어서 온체인의 과부하를 줄여주고 처리속도 및 확장성을 높여주는 방법이 있다고 들었습니다. 어떤 방법들이 오프체인에서 사용되는 방법들인가요?
안녕하세요. Off-chain을 사용하는 블록체인에 대하여 답변드리겠습니다.
<오프체인과 온체인>
오프체인(Off-chain Transaction)이란?
블록체인 네트워크를 사용하지 않고 트랜잭션을 발생하여 사전거래를 하는 방식입니다.
차후에 온체인과 연동하여 최종 검증을 통해 블록을 생성하게 됩니다.
온체인(On-chain Transaction)이란?
일반적으로 사용되는 블록체인 네트워크의 개념입니다.
오프체인에서 발생된 트랜잭션들을 검증하고 블록을 생성하게 됩니다.
쉽게 말해 소액의 거래나 자잘한 트랜잭션들을 오프체인을 통해 묶음형식(트랜잭션 덩어리)으로 만들어서 온체인상에 올리게 되고 이를 검증과 합의를 통해 블록을 생성하기 때문에 일반적으로 하나하나 개별로 처리하는 방식보다 속도가 빨라지게 됩니다. 이럴 경우 수수료가 저렴해지는 효과도 있습니다.
< 오프체인의 종류 >
오프체인에는 대표적으로 비트코인의 "라이트닝 네트워크"와 이더리움의 "라이덴 네트워크"가 있습니다.
라이트닝 네트워크(Lightning Network)란?
비트코인은 사이드 체인의 온/오프 체인 기술을 사용하여 거래를 하게 됩니다.
라이덴 네트워크(Raiden Network)란?
이더리움에서 사용되는 사이드체인으로 비트코인의 사이드체인(루트스탁)과 유사한 온/오프 체인을 이용한 거래방식입니다.
일부 사전거래를 오프체인에서 실시한 후 온체인상과 연동하여 보다 빠른 검증이 가능하게 됩니다.
오프체인 기술에는 채널 네트워크와 멀티 허브 라우팅을 사용하게 됩니다.
오프체인 기술
채널 네트워크 : 기본적인 1:1 양방향 채널로 확장되어 사용자간의 스테이트 채널이 유기적으로 작동을 의미합니다.
멀티 허브 라우팅 : 채널의 오픈과 관련된 예치 관련 가스 비용을 최소화하여 오프체인의 효과를 높이는 기술입니다.
라이덴 네트워크와 라이트닝 네트워크의 차이점
이더리움에서 사용하는 오프체인은 라이덴 네트워크라 불리우며, 비트코인의 라이트닝 네트워크와 유사한 방식입니다.
라이덴 네트워크는 블록체인 네트워크의 활용을 높이는 기술인 반면, 라이트닝은 빠른 거래를 목적으로 한다는 차이점이 있습니다.
추가적으로 차일드 체인(Child Chain)은 독자적인 블록체인 네트워크를 운영하지만 메인체인과 함께 운영되는 체인입니다. 하위개념인 자식체인의 차일드체인에서 발생된 트랜잭션들을 상위체인개념의 부모체인의 역할인 메인체인과 연동/기록하게 됩니다.
이로 인해 트랙잭션에 대한 이중기록으로 보안성이 높아지게 됩니다.
차일드체인을 활용한 코인
부모체인 : 아더(Ardor)
자식체인 : 이그니스(Ignis)
감사합니다.
트랜잭션 정보내의 저장정보는 모두 공개가 되어있씁니다. 하지만 오프체인내의 정보는 비밀을
보장할수있습니다. 온체인에 연결된 블럭저장에는 한계가 있고 이러한 단점을 보안하고 져 오프체인
시스템을 도입했습니다. 오프체인에는 온라인상에 공개되지 꺼리는 각종 개인정보를 저장하고
거래에 관련된 정보만 온체인에 연결하여 처리속도를 높이고 블럭저장공간을 해서하기 위한 방법입니다.
하지만 온체인블럭에 연결된 정보는 해킹이나 조작이 불가능하나 오프체인에 연결된 정보는 해킹이
중간저장순간에 조작이 가능합니다. 이러한 단점으로 인해 뜨거운 감자입니다.
그동안 블럭내부에 저장해야할 많은 정보가 증가함에 따라 많은 문제점이 증가하고 있습니다.
따라서 블럭의 내용에 따라 어떠한 용도의 정보가 저장되어질지 선별을 해야할 문제에 당면
하게 됩니다. 한마디로 확장성의 문제가 대두합니다.
온체인과 오프체인은 두 저장공간을 어떻게 연결하고 해결하는 가에 따라 얼마나 정확하고
유용성있는 코인인가가 증명될 정도로 발전해왔습니다.
비트코인도 이전에는 블럭용량이 1m의 용량이었습니다. 하지만 거래정보의 70%를 저장하는
플랫폼을 구사하여 지금은 블럭용량을 2m로 늘릴수 있었습니다.
이런 개념에서 등장하는 기술이 오프체인 기술이었습니다.
블럭에 관한 정보를 노드에 저장하고 이러한 정보를 p2p를 통하여 공유하는 방법을 사용합니다
ipfs같은 웹 분산화 프로토콜을 이용하면 큰 블럭의 용량을 작게 분산화하여 저장할수 있습니다.
파일의 해시값을 나눠저장할수있으므로 블록의 비대성을 해결할수있었습니다.
하지만 공유솔루션이기에 모든사람이 파일을 공유하므로 해킹의 위험성에 존재하게 됩니다,.
그래서 ipfs에 자료를 올리기전에 암호화해서 올리기 시작했습니다.
블럭의 확장성 해결문제와 더불어 오프체인의 정보를 온체인과 어떻게 접속하는가가
관건이 되었습니다. dapp들은 중재자 없이 디지털 명령어만으로 계약을 성사시키는
스마트컨트랙트를 현실화 하지만 이또한 오프체인 정보를 어떻게 불러오는가가
문제점으로 대두하게 됩니다. 외부 체인의 정보를 가져오지 못한 dapp들은 1차원적인 정보만을
제공하여 도퇴되어 가고 있었습니다. 또 외부체인의 정보를 가져왔다 하더라도 얼마나 신뢰할수
있을까하는 문제점이 대두하였습니다. 이렇게 외부체인의 정보를 온체인으로 가져올수 있는가에
대한 문제점인 오라클은 하드웨어오라클,소프트웨어오라클,아웃바운드오라클등으로 구분합니다.
이런 오라클의 문제를 해결하는 방법으로 dapp들은 여러가지 방법을 간구합니다.
@. 타업체와 공조하여 솔루션을 제공받는 미들웨어 방식
@. dapp가 일정부분 지분(pos)을 보유한 노드를 구성하는 방식(라이닝네트워크의 사이드체인)
여러가지 방법으로 온체인과 오프체인을 연결하는 오라클 문제를 해결하는 방안은 많은
시행착오를 거쳐 발전해 나가고있습니다.