본문 바로가기

Blockchain

(28)
Etherscan - Ethereum Gas Tracker https://etherscan.io/gastracker Ethereum Gas Tracker | Etherscan Gas Snapshot Price at 3/29/2023 3:59:46 PM UTC - Low: 37 gwei | Avg: 37 gwei | High: 38 gwei etherscan.io gwei는 하나의 단위로, 1ETH = 1000000000Gwei이다. 10억 gwei가 1ETH이다. 메타마스크 공식문서에서 알게되었다. 가스비도 결국 코인 따라가므로 가격 변동성이 있으니, 이더리움 가스 트래커를 통해 항상 거래하기 전에 가스비를 추적하라는 것이다. 이더리움 트랜잭션의 경우 블록체인상에서 거래가 성공했든/실패했든 가스비가 발생한다.
EthSum - 이더리움 주소 검사합(checkSum) https://ethsum.netlify.app/ EthSum Simple Ethereum Address Checksum Tool ethsum.netlify.app EthSum Simple Ethereum Address Checksum Tool ethsum.netlify.app 굉장히 간단한 UI의 앱이다. 이더리움 주소를 42자로 넣고, (이더리움 주소는 0x로 시작한다) 해당 이더리움 주소가 유효한지를 검사하는 페이지이다. 테스트 트랜잭션 주소를 넣어보니 이미 checksummed 되었다는 문구가 표시된다. 팀원 덕분에 이 사이트를 알게 되었다.
Abi 파일의 역할 스마트컨트랙트 문서를 함께 보며 개발을 진행해야 하다보니, 스마트컨트랙트의 Abi 라는 파일을 알고 있어야 한다. Abi 파일은 무엇이고, 그 역할은 무엇인지 정리해보자. Abi(Application binary interface) 블록체인 외부(오프체인)와 Contract간 상호작용을 위해 EVM의 Contract와 상호작용하는 표준 방법 -> solidity로 작성된 컨트랙트를 remix 등의 IDE로 컴파일하게 되면 나오게 되는 결과로 일종의 코드이다. 컨트랙트 코드를 어떻게 해석해야 하는지에 대한 정보를 담고 있다. Abi의 역할 컨트랙트에 있는 메소드나 다른 정보들을 json형태로 가지고 있는데, 이 abi 파일을 이용해서 컨트랙트의 메소드를 불러서 사용할 수 있으며 & 메소드에 어떤 파라미터가..
블록 생성 -> 블록체인으로 이루어지는 5단계 과정 '블록체인'이라는 단어를 들으면 블록들이 체인으로 연결되어있구나~를 생각할 수 있겠다. 하지만 블록 하나하나에는 여러 정보가 담겨져있으며, 그 여러 정보가 담긴 블록들이 체인 형태로 이루어져 하나의 거대한 분산 장부를 만들어내고, validator가 검증하는 구조이기 때문에 그 시작점인 '블록이 어떻게 생성되는가'에 대해 정리할 필요가 있다. 블록 생성 단계 -> 이 블록들이 모여 블록체인의 구조를 이룬다. 1. Transaction(거래내역) 생성단계 위의 그림에서는 1,2단계에 해당한다. ex) 특정 주소 A > B에게 송금한다고 가정. (주소는 지갑 주소를 의미한다) A는 private key(비밀키)로 해당 Transaction을 암호화 (Sign) A에게 암호화된 Transaction을 받은 B..
스마트컨트랙트 구조 + 접근제어 지정자(external,internal ..) // 1. 컨트랙트 선언 contract Sample { // 2. 상태 변수 선언 uint256 data; address owner; // 3. 이벤트 정의 event logData(uint256 dataToLog); // 4. 함수 변경자 정의 modifier onlyOwner() { if(msg.sender != owner) throw; _; } // 5. 생성자 function Sample(uint256 initData, address initOwner){ data = initData; onwer = initOwner; } // 6. 함수(메소드)정의 function getData() returns (uint256 returned) { return data; } function setData(ui..
Smart Contract의 구조 + contract 정의 스마트컨트랙트 문서를 접하다보면 스마트컨트랙트의 구조가 따로 있지 않을까?를 생각해봤다. contract {} 코드 안에 event가 들어가고, event와 emit은 또 짝을 이루고.. 등등 상태 변수(State Variable) 구조체(Struct Type) 열거형(Enum Type) 함수(Function) 함수 제어자(Function Modifier) 이벤트(Event) 에러(Error) 상속(Inheritance) 위의 요소들이 스마트컨트랙트를 이루는 요소들이다. contract 정의 contract SimpleStorage { uint storedData; // 상태 변수 //함수 function set(uint x) public { storedData = x; } //변수 function ge..
event의 역할 + Transaction log 스마트컨트랙트 문서를 읽다보면 event 라는 용어가 자주 언급된다. event는 말 그대로 '행사','사건'이라는 뜻인데 solidity에서 event가 어떤 역할인지 찾아보았다. solidity's event란? solidity에서 event를 이용하여 블록에 데이터를 저장하거나, EVM logging 기능을 사용하여 저장된 트랜잭션에서 데이터 호출 가능한 문법 event의 특징 - 데이터 저장만 가능하며 삭제&업데이트 불가 - 데이터 조회는 온체인에서 불가능하며, 오프체인에서 JS를 통해 해당 블록의 트랜잭션을 조회하여 데이터를 확인한다. event를 사용하는 이유 Contract의 data storage에 저장하는 것보다 gas fee가 훨씬 저렴하다. 그렇기 때문에 블록체인에서 영속성을 가진 데..
bytes32 자료형을 사용하는 이유? vs bytes solidity로 작성된 스마트 컨트랙트 문서를 보다보면 bytes32로 선언된 function이나 event들을 자주 접하게 된다. 그러던 중에 bytes32이면 32바이트인가? 왜 '32'라는 숫자를 좋아할까? 궁금해서 구글링을 해보았다. 한 블로그의 예시에서는 Polygon의 PoS 브릿지에서는 토큰타입등과 같이 이벤트로 남기는 값에 있어서 주소값을 제외하고는 bytes32를 남긴다고 한다. bytes32를 사용하는 이유 일반 byte에 비하여 용량을 적게 사용한다고 한다. 가스비를 최대한 줄여야 하기 때문에 bytes32를 사용한다고 한다. bytes vs bytes32 bytes bytes는 byte[]와 같은 의미를 가진다. bytes와 같은 가변(동적) 길이의 배열은 interface나 AB..
VRF(Verifiable Random Function)이란? + Algorand 얼마전 컨트랙트 문서에서 'VRF'라는 단어를 접하게 되었다. 팀원들끼리 이게 무슨 단어인고 생각해보다가.. 혹시 Verify의 약자를 표현한건가? 나름의 추측을 내렸었지만 기획안을 다시 읽어보니 비슷한듯 아니었다. VRF는 Verifiable Random Function의 약자라고 한다. (머쓱) 결론적으로, VRF 구조체는 온체인으로 저장이 불가능한 영역이라 백엔드에서 오프체인에서 처리해야 한다고 한다. Verifiable Random Function 정의 검증 가능한 의사 랜덤 출력, 검증 가능한 랜덤 함수 -> 입력을 맵핑하는 암호화의 원시함수 VRF의 첫 도입 알고랜드의 창립자인 실비오 미칼리와 라빈 등에 의해 1999년 처음 도입되었다. 참고 https://m.blog.naver.com/Pos..
블록체인 재단의 역할 DAO 백서를 읽다보면 '재단의 역할은~' '재단은 해당 비전에 동참하여~'와 같은 문구가 나온다. 여기서 블록체인의 재단의 역할이 무엇일까?는 생각이 들었다. 재단 설립의 목적 자금 사용의 투명성 확보 & 국가별로 다른 가상화폐 규제에 휘둘리지 않기 위한 방어막 역할 실제로도 리눅스 재단의 경우, 리눅스의 발전을 제고하기 위해 설립된 비영리 연합체이며 OpenJS재단의 경우 JS재단(자바스크립트)과 Node.js 재단의 합병으로 2019년 설립된 단체라고 한다. 생태계에 도움을 주는 프로젝트와 펀드 활동을 호스팅함으로써 JS와 웹 생태계를 장려한다고 한다. 결론적으로 '재단' 자체의 의미를 보자면 일정한 목적을 위하여 바쳐진 재산으로 만들어진 집단이니 -> 결국 블록체인에서의 재단 역할도 해당 프로젝트..