세그윗(Segregated Witness)이란?
- 블록체인의 속도와 확장성 개선을 위한 기술
- 블록의 사용가능한 용량을 증대시켜 속도와 확장성을 개선하는 방법
- 블록에서 디지털 서명 부분을 따로 분리하여 블록당 저장가능한 트랜잭션을 늘리는 기술
- 비트코인은 세그윗 기술을 적용하여 2017년 8월 1일 기준으로 소프트 포크(소프트웨어 업그레이드) 됨
세그윗 기술 장점
- (속도와 확장성 개선) 서명 데이터가 전체 블록의 75%를 차지하기 때문에, 이를 분리하여 한 블록에 더 많은 트랜잭션을 담을 수 있게 됨
- (거래 가변성 문제 해결) 세그윗은 거래ID를 서명과 함께 따로 저장하기 때문에, 거래ID(TXID) 조작하여 발생할 수 있는 거래 가변성 문제 해결.
머클트리란?
- 여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조
- 블록체인 데이터의 위변조 방지하고 무결성 보장
블록체인에서 머클트리 작동구조
- 블록의 해시값은 블록 헤더(이전 블록의 hash, 버전, 난이도, 머클루트, time, Nonce 값 등)의 모든 값들을 연결하여 해싱한 값
- 머클 루트는 블록에 포함된 모든 트랜잭션을 머클트리로 만들어서 나온 머클 루트 값
이더리움의 헤더
- 이더리움의 헤더에는 거래를 관리하는 stateRoot, receiptsRoot, transactionRoot가 있음.
1) stateRoot : account의 잔고에 대한 정보를 담고있는 루트
2) receiptsRoot : 트랜잭션에 대한 세부정보(가스비 등)가 담긴 루트
3) transactionRoot : account간 트랜잭션이 저장된 루트
이더리움의 머클 패트리샤 트리
- 이더리움은 트랜잭션, account에 대한 정보를 해시값으로 저장할 때 비트코인에서 사용하는 바이너리 머클트리가 아닌, 상태전이 일반 머클 확장 페트리샤 트리를 사용
- 비트코인의 머클트리는 블록의 상태가 변경되면 새로운 값으로 변경하지만, 상태전이 일반 머클 트리는 새로운 값을 넣는게 아닌, 공통된 값은 그대로 기록하고 변경된 값은 상태를 변경시켜 기록함
- 또한 패트리샤 트리는 공통의 노드로 중복된 값을 줄여 공간을 절약할 수 있음.
슈노르 서명
- 기존에 비트코인 및 이더리움은 ECDSA 서명 방식 사용
- 2021년 비트코인은 대규모 업데이트를 통해 슈노르 서명 방식으로 변경
- 슈노르 서명 방식을 통해 공동 공개 키를 생성하여 하나의 서명으로 공동 서명할 수 있게 되었으며, 세그윗 기술의 연장선 상에 있는 방식.
- 슈노르 서명 방식의 도입을 통하여 블록 크기 제한의 변경 없이 효율성 증가를 도모할 수 있게 됨.
MAST(Merkelized Alternative Script Tree)
- MAST는 비트코인 스크립트*에서 해시 값을 추출하는 별도의 자료 구조이다. 이는 모든 조건을 직접 실행하지 않고, 필요한 부분만 먼저 검증할 수 있도록 하는 것
- MAST를 통해 비트코인은 개인 정보를 보호하는 방식으로 계약의 유연성과 유용성을 확장함.
- 세그윗 업데이트와 MAST가 연계되어 비트코인은 스마트 컨트랙트를 구현할 수 있게 됨.
*스크립트(Script): 비트코인의 모든 거래를 유효화시키는 프로그래밍 언어
출처
https://hamait.tistory.com/959
'TIL' 카테고리의 다른 글
TIL) 암호학 기초 (0) | 2022.06.17 |
---|---|
TIL) 블록체인 토큰 이코노미 설계 시 고려해야 할 점 (0) | 2022.06.17 |
TIL) Blockchain oracle 개념 및 관련 솔루션 (0) | 2022.06.14 |
TIL) 분산 원장(DLT)의 개념 및 다양한 구현 방법 (0) | 2022.06.13 |
TIL) 웹 호스팅 관련 사이트 : netlify, replit (0) | 2022.06.12 |