확장성 문제는 크게 두 가지로 생각할 수 있습니다.
이 두 가지 중 "블록에 거래가 포함될 때의 속도 지연" 대한 확장성 솔루션을 알아보도록 하겠습니다.
두 번째 문제에 대한 솔루션은 https://velog.io/@vamprodo47/확장성-솔루션-2 를 참고하기 바랍니다.
세그윗은 분리된 증인이라는 뜻입니다. 전자서명을 input에 포함시키지 않고 따로 모아 관리합니다. 이 전자서명들은 1MB 이내로 모아서 관리됩니다. 세그윗은 소프트포크이기 때문에 기존 버전과 호환이 가능합니다.
(1) 세그윗 적용 전에는, 블록 안에 1MB이내의 거래와 서명을 모두 input에 포함하여 기록했습니다. 전자서명이 입력 부분에 포함되어 있을 때 발생 가능한 문제는 아래 이미지를 통해 알아보겠습니다.
(2) 세그윗 적용 후에는, 중복되는 서명 부분을 한번에 빼서 거래와 분리된 증인으로 나눕니다. 이를 통해 4MB에 해당하는 거래를 블록 안에 담는 거와 같은 효과를 낼 수 있습니다. 이렇게 블록 내에 담기는 데이터의 사이즈를 효과적으로 줄여서 사용하고 있습니다. 거래 가변성 문제도 해결되었습니다.
4가지 종류가 있습니다.
두 사용자 만이 사용할 수 있는 채널을 열어서 오프체인 트랜잭션을 수행합니다. 최종 결과에 해당하는 트랜잭션만 메인 체인의 트랜잭션으로 만들어서 반영합니다. 확장성을 위해 어느 정도의 탈중앙화를 포기합니다.
(ex) 라이트닝 네트워크, 라이덴 네트워크
-라이트닝 네트워크
Bob과 CoffeeShop이 거래를 한다고 해보자. 둘 만의 채널을 열어서 비트코인을 관리하는 시나리오를 살펴봅시다.
외상 장부에 Bob과 CoffeeShop을 등록시킨 후에, 스마트 컨트랙트에서 사인을 받아서 따로 관리합니다. 그 후 Bob이 비트코인을 넣어두고 매번 사용할 때마다 이를 계산합니다. 적절한 시기에 외상 장부를 확인하여 최종 결과만을 블록체인에 등록합니다.
이것은 2가지 장점을 갖고 있습니다.
첫 번째로, 블록체인에 가해지는 부하가 줄어듭니다.
두 번째로, 최신의 장부만 유지되기 때문에 거래에 있어서 안정적이게 보장되고, 트랜잭션 횟수가 줄어듭니다. 블록체인의 속도 및 확장성 문제가 개선 되었다고 볼 수 있다.
추가로 더 유용하게 활용되는 예시가 있습니다. 만약 Alice가 CoffeeShop과의 거래에 새로 참여할 경우, 이미 형성된 Bob과 CoffeeShop의 채널에 단지 Alice를 연결해서 사용할 수 있습니다.
(ex) 라이트코인, 퀀텀
라이트닝 네트워크는 다중 키(Multi-signature)와 시간 잠금 계약(Hashed Timelock Contract)를 활용해 신뢰를 확보합니다. A와 B의 공동 계좌를 만들고 다중 키로 설정합니다. 이 장부를 청산하기 위해서는 A와 B의 다중 키가 모두 필요합니다.
-라이덴 네트워크
이더리움의 라이트닝 네트워크라고 생각하면 된다.
다른 점은 잔액증명(balance of proof)라는 해시락 기술을 기반으로 거래된다는 것인데, 이는 온체인에 예치된 금액으로 거래가 담보되는 것입니다.
(ex) 20 ETH를 보유하고 있는 철수와 5 ETH를 보유하고 있는 영희가 라이덴 네트워크 채널을 열면, 철수와 영희는 이들 계좌 잔액의 총합이 25 ETH를 넘지 않는 한도 내에서 몇 번이고 거래를 할 수 있습니다. 온체인에는 최종 거래 결과만 기록합니다.
(cf) 지능형 지속 공격 APT(Advanced Persistent Threat)
소수의 노드일지라도, 여러 노드에 APT를 가하는 해킹 방법은 현재의 기술로는 쉽지 않습니다. 그러나 탈중앙화는 다른 문제입니다. 검증 노드가 적으면 탈중앙화는 덜 되었다고 보는 것입니다.
TPS가 높은 합의 방식(DPoS 등)을 채택하는 블록체인 네트워크를 구성해서 오프체인 트랜잭션을 빠르게 수행하고, 최종 결과 값만 메인 체인에 반영합니다.
(ex) Loom Networks의 sidechains(DappChains, ZombieChain)
중첩 블록체인이라고도 표현합니다. 사이드 체인은 속도가 빠른 하나의 체인을 이용했다면, 차일드 체인을 분산/병렬 처리가 가능한 하위 체인들을 많이 생성합니다. 분산해서 빠르게 처리한 후 최종 합산 결과만 메인 체인에 반영합니다. 메인 체인은 분쟁 해결이 필요한 경우가 아니라면 네트워크 기능에 참여하지 않습니다.
(ex) OMG plasma
믿을만한 제3자를 설정하여 메인 체인 바깥에서 트랜잭션을 수행하고, 결과값만을 메인 체인에 기록합니다.
참고자료
세그윗 https://steemit.com/coinkorea/@misskiwi/segwit
오프체인 https://steemit.com/kr-dev/@modolee/onchain-offchain