일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 분산원장
- Algorithm
- solidity
- DEFI
- pow
- ethereum
- Crash
- viewcontroller
- view 이동
- 알고리즘
- Report
- 블록체인 기술
- 재진입공격
- ios
- 이더리움
- 암호화폐
- POS
- DPOS
- dsYM
- reentrancy
- 블록체인
- External Call
- .dsym
- 백준
- PBFT
- Mining
- Blockchain
- 프로그래머스
- 비트코인
- Xcode
- Today
- Total
개발하기좋은날
트릴레마 (Trilemma) 와 해결 방법 본문
트릴레마는 선택해야 하는 길은 3가지가 되는데 어느 쪽을 선택해도 남은 두 가지 또한 한 가지의 문제를 악화시키는 상황을 말함
블록체인에서 트릴레마는 현재 모두를 만족시키는 것이 가장 이상적이지만 현실적으로 한 번에 해결할 수 없을을 말함
- 확장성 : 사용자 수가 늘어나더라도, 유연하게 대응할 수 있는 정도, 확장성이 높으면 사용자가 증가해도 트랜잭션이 늘어나도 무리 없이 전송 처리 용량을 증가 시킴을 말함 , 이때 TPS가 높다고함
- 보안성 : 블록체인 내의 데이터나 프로그램을 권한이 없는 이용자가 사용할 수 없도록 하는 제한
- 탈중앙성 : 중앙 집권화를 벗어난 자율적으로 운영되는 방식 CS방식이 아닌 P2P 방식
현재 블록체인의 특징은 보안성을 조금 포기하고 확장성과 분산화를 강화시키거나 탈중앙성을 포기하고 확장성과 보안성을 가져가는 방향을 가져 타협을 보는 관계성을 가지고 있다
보통 많은 노드수를 가져가면 탈중앙성을 강화되지만, 확장성은 저하되게된다, 탈중앙성을 확립하기 위한 타협점을 확장성입니다
- 비트코인과 이더리움은 확장성과 타협했기 떄문에 굉장히 느립니다
- 리플은 탈중앙성 보다 보안성과 확장성을 선택
- 이오스는 탈중앙성과 보안성을 희생하고 확장성을 선택
옛날의 비트코인 같은경우는 사용자수도 적고 트랜잭션도 적어서 확장성 문제에 대해 고려할 필요가없지만
현재는 너무 많은 사용자와 트랜잭션이 증가함에 따라 확장성 문제에 직면 한 상태
블록체인 네트워크는 확장성, 보안성, 탈중앙성 3가지중 2가지 요소만 만족하는 관계에 있으며
이러한 부분은 해결하기위해 레이어1, 레이어2 솔루션 들을 제시하였다
레이어1 (Layer-1) 솔루션
- 블록체인 네트워크 그 자체를 개선하기 위한 방법
- 비트코인, 이더리움 같은 블록체인
- 각자의 메인넷을 가지고있다
- 보통 레이어1의 솔루션은 기존의 블록체인의 규칙 또는 메커니즘을 직접적으로 개선하는것을 의미
레이어1 (Layer-1) 솔루션 사례
- 비트코인과 이더리움 POW 방식 -> POS 방식의 합의 프로토톨 개선
- 샤딩 또한 레이어1 확장 솔루션
레이어2 (Layer-2) 솔루션
- 다른 블록체인 위에 구축된 네트워크를 말함
- 레이어1 블록체인 위에서 작동하며 확장성과 효율성을 향상하게 시키는 네트워크및 기술을 말함
- 비트코인의 라이트닝 네트워크는 트랜잭션 속도 향상을 위한 레이어2 솔루션임
레이어2 (Layer-2) 솔루션 사례
- 롤업 (Rollup)
- 레이어1 외부에서 트랜잭션을 실행, 레이어1에 트랜잭션 데이터를 저장 하는 방식
- 레이어1의 보안성을 건들지 않고 확장성을 강화하는 장점
- 동작 방식
- 레이어1 외부애서 트랜잭션 실행
- 트랜잭션 데이터는 레이어1에 저장
- 레이어1의 트랜잭션 데이터를 사용하여 레이어2에서 올바른 트랜잭션 실행을 할 수 있는 롤업 스마트 계약
- 기술 종류 : 옵티미스틱 롤업, ZK롤업(영지식 롤업)
- 중첩 블록체인
- 메인 블록체인을 활용, 실행은 보조 체인의 상호 연결된 웹에서 수행 (분산형 인프라)
- 메인 블록체인에서 여러 블록체인 네트워크(Level)가 존재하며 각각 독릭적으로 수행하고 상위 체인에 보고하는 형식
- 부모 체인(메인 체인) - 자식 체인(보조 체인) 구별하여 트랜잭션 처리는 보조 체인이 수행하고 결과만 메인 체인에 저장
- 상태 채널
- 블록체인과 오프체인 트랜잭션 채널간의 양방향 통신을 사용
- 상태 채널은 트랜잭션을 검증하는 채굴 노드의 개입 필요X
- 다중 서명 또는 스마트 계약 메커니즘을 사용
- 트랜잭션 또는 트랜잭션 배치가 상태 채널에서 완료가 되면 채널의 최종 상태와 모든 고유한 전환이 기본 블록체인에 기록됨
- 상태 채널은 확장설 달성을 위해 어느 정도의 탈중앙화를 희생
- 비트코인 라이트닝 네트워크, 이더리움 라이덴 등이 상태 채널임
- 두 사용자만이 사용할 수 있는 채널을 열어서 오프체인 트랜잭션을 수행하고 최종 결과에 해당하는 트랜잭션을 메인 체인의 트랜잭션으로 만들어서 반영
- 게임을 예로 들어보자
- 철수와 영희가 이더리움 위에서 오목을 게임을 한다, 이기면 1이더리움을 받는다
- 게임을 이더리움 위에 스마트 컨트렉트로 프로그래밍 할수있지만 그건 너무 비효율 적이지않는가?
- 수를 한 번 둘때마다 가스비를 지불하고 다음 수를 두기 전에 블록이 생성되어 이전 거래 트랜잭션 처리가 완료 될때 까지 기다려야한다
- 대신 상태 채널을 통해 오프체인 에서 게임의 상태를 업데이트하고, 필요시 확실성이 보장된 이더리움 메인넷으로 되돌아가 처리가 가능하다 (이러한 방식을 상태 채널이라함)
- 이더리움 메인넷에 "심판" 을 하는 스마트 컨트렉트 코드만 구현하고 참가자및 필요한 정보만 기억한다
- 이후 게임을 시작하고 철수는 첫수를 두고 이것을 서명한걸 영희에게 보낸다 이후 영희는 받은 기록에 서명을 하고 자기 서명으로 업데이트된 버전을 다시 철수에게 보낸다 그리고 업데이트 본의 사본(상태)을 보관 한다 이후 영희도 두번쨰수를 철수와 같은 방법으로 둔다
- 매 회차마다 그들은 서로의 "게임 상태"를 업데이트 하는것이다 이떄 논스값은 트랜잭션이(게임의 수) 어떤 순서로 발생했는지 확인할때 사용
- 게임이 끝난뒤 최종 상태와 트랜잭션을 "심판"이 처리한다 이때 "조정 기간"을 가진다
- 조정 기간은 승부 조작 위험성 떄문에 필요, 이떄 최신 논스 값을 가진 트랜잭션으로 증명이 가능
- 이처럼 게임 처리는 오프 체인으로 결과는 온체인에서 하는것이 상태 채널 이다
- 사이드 체인(서비스 체인)
- 블록체인의 메인체인 옆에 나란히 붙어서 작동하는 하위체인을 말한다
- 사이드 체인만의 독립된 노드를 구성하지 않고, 기존 메인체인의 노드에 사이드체인의 노드가 추가되는 방식으로 동작
- 처리방식 : 메인체인에 있는 자산을 사이드체인으로 옮겨 트랜잭션을 처리한다, 사이드 체인에서 트랜잭션이 모두 끝나면 다시 중요한 정보만이 메인체인에 남게됨 즉, 메인체인에서 모든 트랜잭션을 처리하는 것이 아니라 사이드체인이 메인체인이 할 일을 나누어 도와주는 것이라고 할 수 있음
- 정리 : 사이드 체인은 직접 자산을 생성하지않음, 트랜잭션 처리는 자산을 메인넷에서 가져와서 사이드체인에서 처리후 결과만 메인체인에 남겨놓는 방식
- 구현 방식 : 브릿지를 통해 블록체인을 연결, 트랜잭션 처리를 위임함
정리하자면 레이어2 솔루션은 레이어1의 확장성 문제를 별도의 체인과 솔루션을 사용하여 해결하는것이다
대표적인 해결방법인 롤업, 상태 채널, 사이드체인 전부 메인 체인 외부에서 처리후 중요한 결과들만 레이어1에 저장하는 방식을 사용하는데 이러한 이유는 레이어2는 메인넷에 부하를 최대한 줄이고 검증적인 요소들만 관리하는길 바라는 목적이 같기 떄문이다 세가지 솔루션 모두 같은 느낌의 해결방향을 가지지만 기술적, 동작 방식의 차이로 구분 되어 진다
'BlockChain' 카테고리의 다른 글
분산 네트워크 합의 그리고 BFT(비잔틴 장애 허용) (0) | 2022.07.28 |
---|---|
블록체인 - 완벽한 합의 프로토콜은 불가능? (0) | 2022.07.26 |
니모닉 생성 - 2 (니모닉 개발) (0) | 2022.07.20 |
니모닉 생성 - 1 (니모닉 이란) (1) | 2022.07.15 |
다양한 지갑 (0) | 2022.07.13 |