본문 바로가기
반응형

블록체인/이더리움9

이더리움 Merkle-Patricia Trie Merkle Tree - Merkle Proof 는 머클트리에 존재하는 데이터가 올바른 데이터인지 입증하는 절차 - Merkle proof에는 다음 값들이 필요함 > 증명하려는 데이터와 그것의 해시값 > 머클트리의 루트 해시값 > branch(데이터에 해당하는 리프노드에서 루트노드까지의 경로 노드들을 계산하는데 필요한 해시값들) > 데이터의 해시값과 branch 해시값들을 이용해 경로에 해당하는 노드들의 해시값을 구할 수 있고, 이를 반복해 루트 노드의 해시값을 구할 수 있음 > 구한 루트노드의 해시값과 기존에 알고 있던 루트노드의 해시값이 같다면 검증한 데이터가 올바른 데이터임을 입증 할 수 있다. - 머클 트리의 한계 > 상태 정보는 [키와 값] 의 Map 구조 키 : 어카운트 주소 값 : 이더 잔액.. 2021. 6. 20.
이더리움 블록헤더 엉클블록 - 블록 생성에 성공하였고 검증에 오류가 없어서 이더리움 네트워크를 통해 다른 노드에 브로드 캐스팅은 되었으나, 메인 체인으로 채택되지 못한 블록들이 엉클 블록(uncle block, stale block)이 됨 - Bitcoin은 보상 지급 X, 이더리움은 조금의 보상이 있음. 엉클블록이 많아지는 경우 - 블럭을 생성하는 속도가 빨라지면 엉클블럭은 많아진다. - 속도가 빠르다면 블록에 컨펌받고, 검증 후 메인체인이 되기전에 새로운 블록이 생성되기 때문이다. 엉클블록이 많아지면 생기는 문제점 트랜잭션 처리를 지연 될 수 있다. • 동시에 두 마이너가 블록을 생성한다면 마이너 들에게는 서로 다른 트랜잭션이 포함하지만 엉클블록에 포함된 트랜잭션은 처리 되지 않기 때문에 처리속도가 늦어짐 • Conf.. 2021. 6. 19.
이더리움 Transaction 2 트랜잭션의 시작부터 state 변경 까지의 과정 트랜잭션의 전송부터 시작하는 LifeCycle 새로운 트랜잭션의 처리과정 (일반 풀 노드, 마이닝 노드) 검증과정 1. Access & Create : 크롬의 Metamask나 이더리움 클라이언트를 통해서 Tx A를 생성한다. 2. TxA (v,r,s) : 사용자의 Private key를 암호화 해서 전송한다 3. RPC로 블록체인 네트워크에 자신의 TX를 전송함 4. 마이너가 이더리움 프로토콜을 통해서 Validate(검증) 과정을 마친다. (A->B에게 보내는것이 맞나, 돈이 있긴한가) 5. 마이너가 자신의 로컬DB(TX Pool)에 TX를 담는다. 6. 수수료가 높은 순서대로 정렬한다. 블록의 크기가 정해져 있기 때문에 모든 TX를 처리하진 못한다. .. 2021. 6. 11.
이더리움 Transaction 비트코인과 이더리움의 트랜잭션 구조 비교 이더리움의 트랜잭션 Signed MSG - 은행 계좌에서 돈을 전송하는 것과 비슷한 과정. - 지갑에서 상대의 주소를 입력하고 Eth의 수량을 정해 보내는 과정 - Private Key로 서명하는 것. - 스마트 컨트랙트에 있는 함수를 사용하는것 - 스마트 컨트랙트를 만드는것 Unsigned MSG - 서명하지 않고 바로 TXN을 보내는 것이 Internal Txn (문제가 많이 발생해 최근엔 Signed로 바뀜.) Transaction 구성요소 - AccountNonce : 발신자에 의해 보내진 트랜잭션의 개수로 0부터 시작 - gasPrice : 각 실행단계에서 지급되는 Gas 비용 - gasLimit : 트랜잭션 수행시 지급가능한 최대가스범위 - to : 메.. 2021. 6. 11.
이더리움의 Account Account의 종류 외부소유계좌 (EOA : Externally Owned Account) - 개인키(Private key)를 가지고 통제할 수 있는 계좌 - 다른 계좌로의 Ether 송금, 메시지 전송 가능 계약 계좌 (Contract Account) = EOA + @ (컨트랙트 코드, 저장공간) - 계약 계좌가 특정 메시지를 받게되면 계좌내 코드가 실행 - 내부 저장공간에 정보를 읽고 쓸수 있다. Account 구성요소 - 넌스 : Address 에서 전송된 트랜잭션 수. Mining 할때의 넌스값이랑은 다른 값이다. - 이더량(Ether Balance) : 계좌가 보유하고 있는 이더양 - 계약 코드(Contract code, CA only) : 실제로 실행될 계약 내용이 적힌 솔리디티 코드 - 저.. 2021. 6. 11.
이더리움 가스 이더리움 가스 (Etherium Gas) 이더리움 내의 수수료 - 이더리움은 자체 암호화폐인 이더가 있으며, 계좌간 송금 또는 스마트 컨트랙트 사용 및 이더리움의 자원을 사용할 경우 가스를 지불한다. - 가스는 수수료로 지불하는 적은 양의 이더리움을 지칭한다. - 이더리움을 비롯한 대부분의 블록체인은 데이터의 저장 및 가공의 높은 중복성(Redundancy)이 특징이다. - 전세계 참여자가 동일한 데이터를 저장, 연산을 중복되게 실시하므로 사용할 수 있는 자원에 한계가 있음. - 비허가성 블록체인이기 때문에 누구나 블록체인을 읽고 쓸수 있기에 공유지의 비극이 생길 수 있고, 이를 막기 위해 한정된 자원에 비용을 매길 필요가 있다. - 비트코인 같은 경우에는 거래 수수료를 지불하고, 이더리움 같은 경우에는.. 2021. 6. 10.
반응형