일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 미쉬킨의화폐와금융 #미쉬킨 #화폐금융론 #화폐와금융 #경제학 #교양 #경제지식 #경제공부
- 자료구조 #알고리즘
- #경제상식 #화폐 #금융 #화폐금융론 #경제학 #경제기본 #경제지식 #경제근육 #투자지식 #경제공부 #경제학전공 #금융이란 #화폐란 #금융시장 #금융시장역할 #화폐역할 #화폐역기능 #금융역기능 #
- 블록체인 #layer2 #레이어2 #이더리움스케일링
- html #js #parsing
- 페이스북유니버시티 #마케팅교육 #마케팅캠프
- vp #vc #did #신원인증 #블록체인
- #국제채권시장 #유로본드 #유로커런시 #유로달러 #외국채 #금융중개기관 #간접금융 #거래비용#다우존스공업평균지수 #나스닥종합지수 #FTSE100 #DAX #CAC40 #straittimes #항생지수 #거래비용 #유동성 #위
- Today
- Total
평행우주 : world 1
[블록체인이론] 디지털 서명 본문
디지털 서명 용도
디지털 서명은 이더리움에서 세 가지 용도로 사용된다
1. 서명은 이더리움 계정과 개인키의 소유자가 이더 지출 또는 컨트랙트 이행을 승인했음을 증명
2.부인 방지를 보장한다. 즉, 허가의 증거는 부인할 수 없다
3.서명은 트랜잭션이 서명된 후에는 트랜잭션 데이터가 수정되지 않았고 어느 누구도 트랜잭션 데이터를 수정할 수 없음을 증명한다
디지털 서명 작동 방법
디지털 서명은 두 단계로 구성된 수학적 체계다
1 단계 : 메세지(트랜잭션)에서 개인키(서명키)를 사용하여 서명을 만드는 알고리즘
2 단계 : 누구나 메세지와 공개키만 사용하여 서명을 검증할 수 있게 해주는 알고리즘
서명 확인
서명을 확인하려면 서명(r, s)과 시리얼라이즈된 트랜잭션, 그리고 서명을 만드는 데 사용된 개인키에 상응하는 공개키가 있어야 한다.
본질적으로 서명 확인은 공개키를 생성한 개인키의 소유자만이 트랜잭션에서 서명을 생성할 수 있음을 의미한다
서명 검증 알고리즘은 메세지(우리가 사용하기 위한 트랜잭션 해시), 서명자의 공개키 및 서명(r,s)을 가져와서
서명이 메세지와 공개키에 유효하면 true를 반환한다
트랜잭션 서명 실습
유효한 트랜잭션을 생성하려면 발신자는 ECDSA를 사용하여 메시지에 디지털 서명을 해야한다
'트랜잭션에 서명하시오' 라는 의미는 'RLP 시리얼라이즈된 트랜잭션 데이터의 keccak-256해시에 서명하시오'와 같다
즉, 서명은 트랜잭션 자체가 아니라 트랜잭션 데이터의 해시에 적용된다
발신자는 이더리움에서 트랜잭션을 발생하기 위해 반드시 다음 과정을 거쳐야 한다
1. nonce, gasPrice, gasLimit, to, value, data, chainID(v), 0(r), 0(s)의 9개 필드를 포함하는 트랜잭션 구조를 만든다
2. RLP로 인코딩된 트랜잭션 데이터 구조의 시리얼라이즈된 메시지를 생성한다
3.이 시리얼라이즈된 메세지의 kaccak-256 해시를 계산한다
4.원래 EOA의 개인키로 해시에 서명하여 ECDSA 서명을 계산한다
5.ECDSA 서명의 계산된 v,s,r 값을 트랜잭션에 추가한다
+) 특수 서명 변수 v
ECDSArecover함수가 서명을 확인하는 데 도움이 되는 복구 식별자와 체인 ID를 나타낸다
공개키 복구
드랜잭션 메시지는 발신자(from) 필드를 포함하지 않는다
발신자의 공개키가 ECDSA서명을 통해 직접 계산될 수 있기 떄문이다
공개키가 있으면 쉽게 주소를 계산할 수 있다
서명자의 공개키를 복구하는 프로세스를 공개키복구라고 한다
'텃밭 1 : BlockChain > 이론' 카테고리의 다른 글
[블록체인이론] 스마트컨트랙트의 생명주기 (0) | 2022.03.27 |
---|---|
[블록체인이론] 오프라인 서명( 서명 및 전송 분리 ) (0) | 2022.03.27 |
[블록체인이론] 특별 트랜잭션 : 컨트랙트 생성 (0) | 2022.03.27 |
[블록체인이론] 키와 주소 그리고 공개키 암호화 (0) | 2022.03.27 |
[블록체인이론] 이더리움 트랜잭션 가스, 수신자, 값과 데이터 (0) | 2022.03.18 |