4 Blocks, State and Transactions 4.1. World State (1) The world state (state) - Addr(160bits)와 계정 상태(RLP로 직렬화된 데이터 구조)의 매핑 - 블록체인에 저장되지 않지만, 구현체는 수정된 Merkle Patricia tree에서 이 매핑을 유지할 것으로 가정 - 트리에서 바이트 배열과 바이트 배열을 유지하는 데이터베이스 백엔드 필요 -> state database - 루트 노드는 암호화적으로 모든 내부 데이터에 의존하며, 따라서 해시는 전체 시스템 상태에 대한 보안 ID로 사용될 수 있음 - 불변 데이터 구조, 루트 해시를 그에 따라 변경하여 모든 이전 상태를 호출할 수 있음 (2) World State의 네가지 구성 필드 ..
3 Conventions - ‘top-level’ 최상위 레벨의 State 값 : bold lowercase 그리스 문자로 표시 - denoted σ (or a variant thereupon) and those of machine-state, µ - 함수는 상태 전이 함수 Υ와 같이 upper-case 그리스 문자로 표시 - 대부분의 함수는 대문자 사용 ex.C - 튜플은 일반적으로 대문자로 표시되며, 이더리움 트랜잭션을 나타내는 데 사용됨 - 대문자 첨자는 첨자가 있는 구성 요소가 있는 튜플을 나타냄 - Scalars and fixed-size byte sequences : 소문자료 표시 - 그리스어는 주어진 작업을 수행하기 위해 스택에 필요한 항목의 수 나타낼 수 있음 - 임의의 길이의 시퀀스는 굵..
1 Introduction - consensus mechanisms, 사회의 자발적 존중, 인터넷으로 계약을 체결할 수 있음 - cryptographically secure, transaction-based state machine - 분산 가치 전달 시스템은 암호학적으로 안전한 transaction 기반 상태의 머신의 전문화된 버전임 - Ethereum is a project which attempts to build the generalised technology - a trustfulobject messaging compute framework. - 개체간 통신 컴퓨팅 프레임워크 1) Driving Factors - 핵심 목표는 서로 신뢰 수단이 없는 개인들의 동의를 얻어 이들 사이의 거래를 촉진하..
1) 전체 코드 - 새로운 Workspace를 만들어 HotelRoom.sol 코드를 작성함 - pragma solidity ^0.6.0 에 맞추어 컴파일러 옵션을 0.6.1로 변경함 2) 코드 설명 Payable 이더 코인을 전송하는 스마트 컨트랙트를 작성하기 위해서 반드시 사용해야 함 payable을 작성한 함수에서만 이더를 보낼 수 있으므로 코인 이동에 필수적인 키워드 address 타입: 지불 가능한 주소 타입, send()와 transfer()함수를 내장함 function 타입: 지불 가능한 함수 타입 Enum 솔리디티의 열거형 데이터 타입 개발자가 정의할 수 있는 자료형으로 특정한 값들만 갖는 변수를 만들고 싶을 때 사용함 함수 내에서는 선언이 불가하며 전역공간에 선언할 수 있음 이 코드에서는..
1) Remix IDE에서 MyCoin.sol 작성 - 이 컨트랙트가 배포되면 100개의 MyCoin이 생성되고, 배포된 스마트 컨트랙트의 transfer 함수를 통해 다른 계좌로 송금 가능 pragma 모든 소스코드 최상단에 사용하며, 솔리디티 컴파일러의 특정 버전을 명시함 특정 버전 이상의 pragma를 사용할 때는 ^를 사용 → ^0.4.0 contract 솔리디티에서 사용되는 모든 변수와 함수는 Contract에 속함 모든 프로젝트의 시작점으로 볼 수 있음 mapping 키(Key) - 값(value) 형태로 쌍으로 저장되고 제공된 키(Key)를 가지고 값(value)을 얻어낼 수 있음 자바스크립트의 Object 나 파이썬의 딕셔너리와 유사함 constructor 생성자 계약서가 배포될 시에 호출..