無知

갈 길이 먼 공부 일기

기술 공부 79

반도체 (0) | 모스펫까지의 역사와 반도체 제조 공정

** 여기서의 반도체란? 반도체 물질이 아닌, 트랜지스터와 같은 반도체 소자를 의미한다. 1. 역사 - 컴퓨터와 같은 해석기관은, "무언가의 흐름을 제어하는 도구"를 여러 개 연결하여 만들어 낼 수 있다. - 컴퓨터의 시초라 할 수 있는 에니악은 진공관을 기반으로 전기 신호를 제어했다. - 최초의 트랜지스터 BJT는 일정 수준 이상의 전압을 받으면 컬렉터와 이미터 사이의 전류 흐름을 변경한다. 즉, 전기로 전기의 흐름을 제어한다. - 1959년 개발된 모스펫, MOSFET은 전계 효과 트랜지스터로, 실리콘 표면에 산화, 식각, 세정 처리를 거쳐 제작된다. - 실리콘 웨이퍼 표면에 수만개 모스펫 생산이 가능해 이전 트랜지스터의 성능과 생산 효율이 대폭 상승한다. - 노광 해상도가 높을수록 모스펫 크기를 감..

스마트 컨트랙트 (7) | 보안성을 갖춘 컨트랙트 작성법

1. 이더리움 내 모든 데이터는 공개되어 있음을 명심하자 - private variable로 선언되었더라도, getStorageAt 함수를 통해 해당 컨트랙트의 변수를 읽어낼 수 있다. - 구체적으로는 상기 함수를 통해 컨트랙트 내 변수가 인코딩된 값을 받게 되는데, 데이터타입에 따라 복잡도는 다를 수 있어도 충분히 해석할 수 있다. 2. 이더리움 송금은 transfer method를 사용하자 * 송금 방법 1 : address.send(value) - 송금 실패 시 false만 반환하고 exception을 발생시키지 않음. * 송금 방법 2 : address.transfer(value) - 송금 실패 시 exception을 발생시키고 중단됨 - 2300 가스만 보내서 실행되므로 컨트랙트의 무한 호출을 ..

스마트 컨트랙트 (6) | 보안 : 해킹 및 버그 사례

해킹 및 버그 사례 해당 내용은, 블록체인 및 스마트 컨트랙트 분야에서 코드 및 시스템의 안정성과 보안, 호환성 등의 문제가 얼마나 중요한 사안인지를 체감할 수 있는 현실 사례들의 모음이라고 보면 된다. As many supporters argue, bugs are to be expected on any new platform. However, in ethereum, code issues have proven uniquely hazardous, since its smart contracts are supposed to be 'immutable' (that is, they can't be changed after the fact), including any and all errors. The most no..

스마트 컨트랙트 (5-7) | Solidity(솔리디티) 라이브러리, Libraries

1. Libraries - 솔리디티에서 라이브러리는 한번 설치되어 여러 다른 contract들에 의해서 사용. - 따라서, 동일한 코드가 반복해서 이더리움 네트워크에 설치되는 것을 방지. - 라이브러리 함수는 contract 메소드 호출과 유사하다 - 라이브러리는 자신의 storage를 갖지 못한다 - 라이브러리는 이더를 소유할 수 없다 - 라이브러리는 state variable을 가질 수 없다 - 라이브러리는 상속 관계에 있을 수 없다 - 라이브러리는 fallback 함수를 가질 수 없다 - 라이브러리는 payable 함수를 가질 수 없다 pragma solidity >=0.4.0 =0.6.0 bool) flags; } library Set { // Note that the first parameter..

스마트 컨트랙트 (5-6) | Solidity(솔리디티) Error Handling

Error handling require revert assert Use when control flow is simple control flow is complicated control flow is simple Check Pre-condition Pre-condition Post-condition Returns Gas Unused Return Return Does not Return - 솔리디티에서는 exception 발생 시 현재까지의 모든 transaction이 중단되고 transaction 이전 상태로 돌아간다. exception을 발생시키기 위한 함수 1. require 주어진 조건을 검사해서 이를 만족시키지 못하면 exception을 발생시킨다. 남은 gas는 반환된다. // require(..

스마트 컨트랙트 (5-5) | Solidity(솔리디티) Contracts, Inheritance, Interface

1. Contract Contracts can be created “from outside” via Ethereum transactions or from within Solidity contracts. IDEs, such as Remix, make the creation process seamless using UI elements. One way to create contracts programmatically on Ethereum is via the JavaScript API web3.js. It has a function called web3.eth.Contract to facilitate contract creation. When a contract is created, its constructo..

스마트 컨트랙트 (5-3) | Solidity(솔리디티) Units and Globally Available Variables

1. Units 솔리디티에서는 시간이나 이더의 단위를 나타내는 unit을 지원한다. (1) Ether Ether Units: A literal number can take a suffix of wei, gwei or ether to specify a subdenomination of Ether, where Ether numbers without a postfix are assumed to be Wei. assert(1 wei == 1); assert(1 gwei == 1e9); assert(1 ether == 1e18);​ https://docs.soliditylang.org/en/v0.8.13/units-and-global-variables.html 이더의 단위를 표현할 수 있어서 내부적으로 이를 왼쪽..

스마트 컨트랙트 (5-2) | Solidity(솔리디티) State Variable, Type

3. Contents 3-1. Contract 3-1-1. Variable 3-1-1-1. State Variable State Variable은 EVM 내 스토리지에 저장된다. 메모리에 저장되는 임시 값들과 반대된다. 스토리지는 컨트랙트의 모든 함수가 접근할 수 있다. 즉, EVM의 storage 영역은 contract 내의 모든 function 이 접근할 수 있으며 function이 변경한 값은 계속해서 저장되어 다음 번 function에서 저장된 값을 사용할 수 있다. 컨트랙트의 함수 바깥에서 선언되었다. State Variables State variables are variables whose values are permanently stored in contract storage. See th..

스마트 컨트랙트 (5-1) | Solidity(솔리디티) 레이아웃

1. Solidity Language 1-1. 특성 - 절차적 언어 ( VS 함수형 언어) - 정적 타입 언어 (컴파일 시 타입 결정. 오류 시 컴파일 에러) - 변수 이름의 대소문자 구분 - 객체 지향 언어 - 확장자 : sol 2. LayOut 2-1. pragma 파일 최상단에 위치, 컴파일러의 특정 기능을 활성화하는 데에 사용 Pragmas The pragma keyword is used to enable certain compiler features or checks. A pragma directive is always local to a source file, so you have to add the pragma to all your files if you want to enable it in..

쿠버네티스 (18) | CRD, 서비스 카탈로그, 오픈시프트, Helm

앞으로의 스터디 내용은 을 기반으로 진행합니다. 자세한 내용은, 해당 책을 확인해주세요! http://www.yes24.com/Product/Goods/89607047 1. 사용자 정의 API 오브젝트 1.1 CustomResourceDefinition 1.2. 사용자 정의 컨트롤러 1.3. 사용자 정의 오브젝트 유효성 검증 1.4. 사용자 정의 API 서버 2. 서비스 카탈로그를 통한 셀프 서비스 2.1. 서비스 카탈로그 소개 2.2 서비스 카탈로그 API 서버 및 컨트롤러 매니저 2.3. ServiceBroker와 OpenServiceBroker API 2.4. 프로비저닝과 서비스 사용 2.5. 바인딩 해제와 프로비저닝 해제 3. 쿠버네티스 기반 플랫폼 3.1. 레드햇 오픈시프트 컨테이너 플랫폼 3...

스마트 컨트랙트 (4-2) | 가스

1. 가스의 개념 1-1. 정의 - 가스란, 이더리움 블록체인 내 트랜잭션, 컨트랙트를 실행하는 데 필요한 계산 작업의 측정 단위 Gas refers to the unit that measures the amount of computational effort required to execute specific operations on the Ethereum network. Since each Ethereum transaction requires computational resources to execute, each transaction requires a fee. Gas refers to the fee required to conduct a transaction on Ethereum successful..