Blockchain/Ethereum(9)
-
ENS(Ethereum Name Service)
※ 원글 작성 : 22년 11월 21일 ENS ENS(Ethereum Name Service) 란 웹서비스를 위한 DNS처럼 human-readable한 이름(도메인)을 ethereum address와 mapping하여, 이름 검색 시 연결된 ethereum address를 확인해 주는 서비스이다. .eth 같은 TLD(Top Level Domain)의 하위에 'alice.eth'처럼 하위 도메인을 구성할 수 있고, 이 도메인을 소유한 사람은 'pay.alice.eth'처럼 여러 하위 도메인을 생성/제어 가능하다. 또한 다른 NFT처럼 도메인을 구매하고 OpenSea 등에서 판매도 할 수 있다. ENS는 EIP-137에서도 제안 되어졌다. 요즘같은 대하락 시대의 코인판에서도 ENS는 "나름" 선방하고 있..
2023.06.15 -
Ethereum의 PoS 전환을 반기며
※ 원글 작성 : 22년 9월 19일 Ethereum merge Ethereum merge가 22년 9월 15일에 완료되었다. 기존에 출시한 메인넷과 ethereum 2.0(재단에서는 2.0이나 eth2 등의 용어 사용을 지양했지만 기존과 구분하고자 2.0을 사용하려 한다.)의 PoS 컨센서스를 위한 beacon chain의 통합이 바로 merge의 주요 내용이다. 메인넷(eth1)이 계속 운용중일 때 20년 12월 1일에 PoS 전환을 위한 beacon chain(eth2)이 출시 되었다. Beacon chain의 테스트를 병렬로 꾸준히 진행하여 보안성 확보를 진행하고, merge 됨과 동시에 eth1에서 사용하던 PoW를 완전히 PoS로 대체시켰다. 그리하여 eth1은 더이상 consensus alg..
2023.06.15 -
Ethereum Gas
※ 원글 작성 : 22년 8월 3일 Gas는 ethereum 네트워크를 구성할 시 필수적으로 사용되는 비용이다. Gas의 여러 정보들을 확인해본다. Gas Ethereum의 gas란 EVM 상에서 transaction을 동작시키기 위해 소모되는 비용이다. 예를 들어, solidity contract를 작성 후 ethereum 상에 바이트코드를 deploy 하면 해당 바이트코드를 동작하는 OPcode 마다 정해진 gas를 소모한다. 이렇게 OPcode 등의 계산에 대해 수수료를 gas로 요구하면 solidity 내의 무한 루프를 방지하여 계산으로 인한 throughput을 줄여 네트워크 혼잡도를 낮출 수 있고, 악의적으로 네트워크를 스팸하는 것 또한 방지가 가능하다. Gas는 ethereum의 네이티브 코..
2023.06.15 -
Ethereum Bootnode 기능 확인
※ 원글 작성 : 22년 5월 4일 Bootnode 부트노드는 이더리움에 참여하려는 노드가 처음으로 연결되는, 이더리움 code안에 주소가 박혀있는 노드이다. 참여 노드는 부트노드에 연결하여 다른 노드들을 find 하고 다른 이더리움 노드의 주소(enode 식별자)를 전달받아 해당 노드와 연결된다. 블록 동기화도 찾아낸 노드들로부터 정보를 얻어서 진행하기 때문에 부트노드의 연결은 이더리움 생태계 안에 들어가기 위한 시작점이라고 볼 수 있다. 부트노드가 새로 참여하는 노드에게 주변 live 노드 정보를 전달해 준다면, 개발자가 임의로 healthy한 노드를 찍어서 전달해 줄 수 있지 않을까? Geth 내에 부트노드 코드를 보며 어떠한 방식으로 노드간 연결이 진행되는지 분석해보고, 실제로 임의의 노드를 전달..
2023.06.14 -
Ethereum [5] (Go-Ethereum)
※ 원글 작성 : 22년 4월 27일 Smart contract Solidity 이더리움 smart contract를 개발하기 위한 언어 솔리디티 변수는 context에 따라 메모리 or 파일 시스템에 저장 상태변수 : contract 최상위단에 선언된 변수 = Storage 저장 로컬변수 : 함수 아래에 선언된 변수 = Storage 저장, memory keywordfh 메모리 저장 가능 데이터 유형 bool uint8, uint16, uint24, ..., uint256 - 부호없는 8, 16,, 비트의 정수) ufixed0x8, ufixed0x16, ..., ufixed0x256 - 부호없는 실수 fixed0x8, ...., fixed0x256 - 부호있는 실수 address : 16진수 할당, 최..
2023.06.13 -
Ethereum [4] (EVM)
※ 원글 작성 : 22년 4월 27일 EVM Smart contrat bytecode를 실행하는 32바이트 스택 기반 실행환경 스택의 최대 크기는 1024 이더리움 각 노드는 EVM을 포함 바이트코드를 OP코드로 변환하고 스택 기반으로 각각의 OP코드 실행 구조 Volatile(휘발성) Stack : OP코드 실행하는 stack영역 Args : contract call 시 인자 저장 Memory : 아이템을 저장하는 바이트 배열 Non-volatile(비휘발성) Storage : State 저장 code : smart contract의 컴파일된 바이트코드 저장 동작과정 바이트코드를 내부 OP코드로 재해석 e.g. 1+2 ? 1+2를 계산하는 바이트코드 '6001600201' 바이트코드를 치환하여 OP코드..
2023.06.13