Ethereum 트랜잭션 논스(nonce): 발신 EOA에 의해 발행되어 메세지 재사용을 방지하는 데 사용되는 일련번호 가스 가격(gas price): 발신자가 지급하는 가스의 가격(웨이, wei) 가스 한도(gas limit): 이 트랜잭션을 위해 구입할 가스의 최대량 수신자(recipient): 목적지 이더리움 주소 값(value): 목적지에 보낼 이더의 양 데이터: 가변 길이 바이너리 데이터 페이로드 v,r,s: EOA의 ECDSA 디지털 서명의 세 가지 구성요소 v : 식별자 (엄밀히 따지자면 서명은 아님) r, s : 서명 클래이튼 트랜잭션 type : 뭐하는 트랜잭션인지 구분해주는 역할 명시적이다. , GasPrice를 바꿀수 없다 - 상수 취급 : 전체노드들이 합의하면 가격이 바뀔수 있음 본..
(Recall) Ethereum 어카운트의 종류 External Account : 사용자(end user)가 사용하는 어카운트 (a.k.a. EOA) 트랜섹션을 실제로 만들고 기록하는 주 어카운트, 즉 사용자 Contract Account : 스마트 컨트랙트를 표현하는 어카운트 Ethereum은 EOA 와 스마트 컨트랙트의 상태를 기록 및 유지 스마트 컨트랙트는 특정주소에 존재하는 실행 가능한 프로그램 프로그램은 상태를 가지기 때문에 Ethereum/Klaytn은 스마트 컨트랙트를 어카운트로 표현 EOA는 블록에 기록되는 TX를 생성 블록에 기록되는 TX들은 명시적인 변경을 일으킴 (e.g., 토큰 전송, 스마트 컨트랙트 배포/실행) 프로그램 - 데이터, 함수 스마트컨트랙트 = 프로그램 어카운트 = 함수..
Klaytn BFT Klaytn은 확장가능한 BFT를 사용 N개의 노드 가운데 S개의 부분노드 집합을 확률적으로 선택 (where N is large, and S is sufficiently small) 전체 집합을 거버넌스 카운실(Governance Council), 부분 집합을 커미티(Committee)로 정의 커미티 선택은 VRF(Verifiable Random Function)로 구해진 무작위 값에 기반 : 공개키 사용 매 블록마다 새 커미티를 뽑아 BFT를 실행 기존의 BFT에 비해 확장성을 크게 개선Klaytn의 합의 : 거대한 전체집합에서 → 무작위로 부분집합을 뽑는다 → BFT를 실행해서 빠르게 블록 생성 → 합의된 결과를 나머지 네트워크에 전파 본 포스트는 GroundX 강의 학습내용을 ..
Blockchain State (어카운트 기반) 블록체인의 상태 블록체인은 트랜잭션으로 변화하는 상태 기계 (State Machine) 항상 초기값이 있고 나중값이 있다. 아무것도 없는 초기값에 → 제네시스 블록 생성 Coinbase = Mining i = none → f : Alice : 100 i = Alice : 100 → f : Alice : 170, Bob : 30 i = Alice : 170, Bob : 30 → f : Alice : 170, Bob : 30, Charlie : 20 앞의 블록의 최종값 → 뒤의 블록의 초기값 무한 반복 상태 기계 블록체인은 초기 상태에서 변경사항을 적용하여 최종 상태로 변화하는 상태 기계 이전 블록의 최종 상태(Final State)는 현재 블록의 초기 상태(..
블록체인과 공개키 암호 블록체인은 암호학적 기법을 토대로 만들어진 기술 Bitcoin은 네트워크 참여자 모두가 같은 ‘원장’을 공유함으로써 투명한 거래가 가능 원장은 어느 주소에 BTC가 있는지 기록하지만 그 주소가 누구에게 속하는지는 기록하지 않음 (anonymity) Bitcoin은 공개키암호를 사용하여 명시적인 비밀교환과정 없이 BTC의 소유권 증명을 실행 공개키암호화를 사용한 소유권 증명 대부분의 블록체인 주소는 공개키로부터 도출된 값 Bitcoin : Hash 160 of a public key where Hash 160 = RIPEMD 160 + SHA256 Etthereum : Rightmost 160 bits of Keccak hash of a public key Bitcoin의 경우 임의..
암호 고전적인 암호 : 카이사르 암호 암호화하려는 내용을 알파벳별로 일정한 거리(distance, d)만큼 밀어서 다른 알파벳으로 치환하는 기법. 암호를 풀거나 만들 떄 알아야 하는 정보 : 키(Key) 대칭키 암호 / 비대칭키 암호 평문(Plain Text)이란 암호화 되어 있지 않은 문자열 의미 암호화 : 평문 → 암호 (cipher, encrypt) 복호화 : 암호 → 평문 (dechipher, decrypt) 대칭키 암호 : 암호화 사용 키 == 복호화 사용 키 비대칭키 암호 : 암호화 사용키 =! 복호화 사용 키 비대칭키(공개키) 암호 두 개의 키를 사용하여 암/복호화 실행 공개키(PK) = 암호화에 사용되는 키 비밀키(SK) = 복호화에 사용되는 키 비밀키 ⇒ 공개키 : 쉬움 공개키 ⇒ 비밀키..
Public vs. Private Disclaimer : this is a subjective matter 퍼블릭과 프라이빗의 구분은 블록체인에 다음을 수행할 수 있는지 확인하여 결정 : 누구든지 기록된 정보(블록)를 자유롭게 읽을 수 있는지? 명시적인 등록 또는 자격취득 없이 정보를 블록체인 네트워크에 기록할 수 있는지? 블록체인의 정보가 공개되어 있고 네트워크가 정한 기준(e.g., gas fee)에 따라 정보를 기록요청할 수 있다면 그 블록체인은 퍼블릭/공개형이라 한다. 이와 반대로 정보가 공개되어 있지 않고 미리 자격을 득한 사용자만이 정보를 기록할 수 있다면 그 블록체인은 프라이빗/비공개형이라 한다. Permissionless vs. Permissioned Disclaimer : this is ..
Nons = garbage값을 해쉬에 집어넣는것 PoW(Proof of Work, 작업증명) PoS(Proof of Stake, 지분증명) BFT-variants(Byzantine Generals Problem, 비잔틴 장애 허용) 제안자격 취득 방법 계산이 어려운 문제를 풀 것 새로운 Nons를 계속 주고 만약 앞에 00000이 몇개 있으면 인정. 플랫폼 토큰을 보유한 양과 기간에 따라 결정적으로 또는 확률적으로 뽑힐 것 정해진 순번 또는 정해진 확률에 의해 뽑힐 것 네트워크 참여 제한 없음 없거나 낮음 높음 합의에 필요한 연산량 높음 낮음 낮음 위협 전체 연산량의 51%를 한 참여자가 소유할 경우 중앙화됨 전체 토큰의 51%를 한 참여자가 소유할 경우 중앙화됨 전체 참여노드의 1/3 이상이 담합할 경..