지갑의 의미 넓게 보면 지갑은 이더리움에서 주요 UI로 작용하는 소프트웨어 앱이다. 지갑은 사용자의 자산을 관리하고 키와 주소 관리, 자산 추적, transaction 서명등을 한다. 좁게 보면(개발자의 관점에서 보면) 사용자의 키를 보관하기 위한 시스템이다. 모든
트랜잭션의 정의 트랜잭션은 EOA가 생성하여 이더리움 블록체인으로 보낸 서명된 메시지이다. 트랜잭션은 상태의 변화와 EVM에서의 컨트랙트를 실행하게 해준다. 즉, 이더리움이라는 블록체인의 상태를 변화시키는 것이 트랜잭션이다. 트랜잭션의 구조 트랜잭션은 Nonce, G
버전 0.4.19로 작성 정의 이더리움 네트워크 프로토콜의 일부인 EVM 컨텍스트 상에서 결정론적으로 작동하는 불변적 컴퓨터 프로그램 불변의 컴퓨터 프로그램 : ‘컨트랙트’ 단어가 주는 일반적인 느낌과 다르게 컴퓨터 프로그램이고 일반적인 소프트웨어와 다르게 배포되면 변
바이퍼(vyper)란? 바이퍼는 EVM을 위한 프로그래밍 언어로 개발자가 읽기 쉽고 안전한 코드를 작성하기 위해 만들어졌다. 솔리디티와 비교 솔리디티의 기능들을 생략하여 안전성을 도모하였다. (자유도를 낮추고 보안도를 높였다.) 변경자 변경자에서 다른 함수를 호출하
스마트 컨트랙트 보안 프로그래밍시 준수해야 할 점(방어적 프로그래밍) 단순성 단순성은 버그와 의도치 못한 결과와 반비례한다. 따라서 버그를 줄이기 위해 최대한 코드의 줄 수를 줄이는 노력을 해야 한다. 코드 재사용 만들어져있는 라이브러리와 스마트 컨트랙트를 재사용
짧은 주소/파라미터 공격 컨트랙트와 상호작용하는 3자를 공격하는 패턴이다. 취약점 스마트 컨트랙트에 파라미터를 전달할 때 파라미터는 ABI 사양을 따른다. 이 때 예상되는 파라미터 길이보다 짧은 인코딩된 파라미터가 보낼수 있다. 이 경우 EVM은 인코딩된 파라미터 뒤
토큰이란? 토큰이란 기호, 상징이란 뜻으로 특수한 사용처에서 가치를 갖는 특수 용도의 동전과 같은 물건을 지칭한다. 일반적인 예시로는 게임에서 사용되는 토큰이 있다. 물리적 토큰의 한계 / 블록체인 토큰 물리적 토큰은 제한된 사용처에서 의미를 갖고 쉽게 교환될 수 없
오라클이란? > 오라클은 외부의 데이터를 스마트 컨트랙트로 제공하는 시스템으로 신뢰가 필요없는 시스템이다. 오라클의 필요성 EVM은 결정론적이고 이더리움 상태와 트랜잭션의 컨텍스트에 기반을 둔다. 이는 다음의 두가지 결과를 낳게 된다. > 1. EVM 및 스마트 컨트
댑(DApp)이란? 댑은 대부분/완전히 탈중앙화된 애플리케이션이다. 댑에 관해 댑의 장점 >- 지속성 : 스마트 컨트랙트로 제어되기 때문에 백엔드는 블록체인 플랫폼에서 탈중앙화 방식으로 관리된다. 따라서 가동 중지 시간이 없고 플랫폼이 작동하는 동안 계속 사용가능하다.
EVM이란? EVM이란 스마트 컨트랙트 배포와 실행을 담당하는 이더리움의 부분이다. 크게 보면 이더리움 체인 위의 EVM은 수백만 개의 실행가능한 객체가 포함된 거대한 탈중앙화 컴퓨터라고 할 수 있다. EVM은 유사-튜링 완전한 상태 기계이다(quasi-Turing complete state machine). 그 이유는 실행 과정에서 사용할 수 있는 가스...
합의 의사결정을 하는 신뢰가능한 중앙 주체가 없는 이더리움과 같은 탈중앙화 시스템에서 합의 과정은 중요하다. 이 특징은 권위적이고 검열을 할 가능성도 있는 중앙 주체가 없다는 장점이 있지만 편리한 방법이 아닌 다른 의사 결정 과정을 통해야 한다는 단점 또한 있고 여기서