분류 전체보기 155

[Incognito Project] 이더리움 2.0 전환

이더리움 2.0 은 한 번에 출시되지 않고 총 4단계를 거쳐서 출시됨. 각 단계에서 각각 다른 기능들이 구현될 예정임. 0단계 : 비콘체인 도입(2020.12.01 출시), 새로운 합의 알고리즘(Gasper) 출시에 집중함. Gasper란? - 작업 증명(PoW)에서 지분 증명(PoS)로 전환하기 위한 알고리즘. - Casper FFG 와 LMD Ghost 라는 규칙이 결합된 알고리즘. - 포크(fork) 발생 시 LMD Ghost로 어떤 포크를 선택할지 결정하고 Casper FFG로 블록의 완결성 검증함. 비콘체인이란? - 지분 증명(Pos) 방식의 네트워크로 16,384명 이상의 검증자(노드)가 524,288ETH 이상의 이더를 이더리움의 예금 컨트랙트에 예치함으로써 비콘 체인의 제네시스 블록이 생성..

Incognito Project 2022.09.24

[Incognito Project] 솔리디티 문법 03 - mapping 과 msg.sender

1. mapping(매핑) mapping(address => uint256) public addressToAmountFunded; - "키-값" 구조로 데이터를 저장할 때 쓰는 타입임. addressToAmountFunded[msg.sender] += msg.value; - 매핑값을 읽고 쓰기 위해서는 매핑이름[키] 의 형태로 접근할 수 있음. 2. msg.sender - 솔리디티에는 모든 함수가 이용가능한 전역 변수가 존재함. (솔리디티 전역 변수의 종류에 대해 조사할 필요가 있어보임.) - 그 중 하나인 msg.sender 는 현재 함수를 호출한 사람 (또는 컨트랙트) 의 주소를 가르킴. 솔리디티에서 함수는 언제나 스마트 컨트랙트 외부에서 호출됨. 컨트랙트는 누군가가 컨트랙트의 함수를 호출할 때까지 ..

Incognito Project 2022.09.24

[Incognito Project] 솔리디티 보안 - Keccak256 함수로 난수 생성

블록체인에서 보안은 매우 중요함. 따라서 솔리디티는 Keccak256 이라는 강력한 해시 함수를 내장하고 있음. 참고 : Git의 커밋번호를 생성할 때 쓰는 해시 알고리즘은 SHA-1, Keccak256 은 SHA-3 를 사용한다고 함. (조사가 더 필요할듯) keccak256("aaaab"); //6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5 keccak256("aaaac"); //b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9 - 문자의 끝을 b 에서 c 로만 바꿨을 뿐인데 해시값이 완전히 달라졌음. - C++ 등 다른 프로그래밍 언어에서는 현재 시각 등 추측할 수..

Incognito Project 2022.09.24

[Incognito Project] 솔리디티 문법 02 - 함수

1. 함수 - function 이라는 키워드를 이용하여 함수를 정의할 수 있음. function retrieve() public view returns (uint256){ return favoriteNumber; } 1-1. 함수의 접근자 지정 public & private : - 함수는 기본적으로 public 속성으로 선언됨. - private 을 붙이면 컨트랙트의 외부에서 함수 호출 불가능함. (FundMe.sol에서 Fund() 함수 접근 지정자가 public 인 이유인듯) - 접근 지정자는 매개변수 바로 다음에 정의함. external & internal : - internal 은 private 과 유사하나 자식 컨트랙트는 사용 가능함. - external 은 컨트랙트의 외부에서만 호출됨. (pu..

Incognito Project 2022.09.24

[Incognito Project] 솔리디티 문법 01 - 자료형과 연산

솔리디티(Solidity)란? 이더리움 계열의 블록체인의 스마트 컨트랙트 대부분은 솔리디티로 작성되어 있으며, 계약 지향 프로그래밍 언어임. 자바의 클래스와 매우 유사한 문법을 가지고 있음. - 정적 타입의 언어 - Ethereum Virtual Machine (EVM) 위에서 실행 - 문장의 끝은 세미콜론(;) 우리의 인코그니토 프로젝트의 목표는 스마트 컨트랙트 작성 시 취약점 발생에 유의하며 시큐어 코딩 가이드 라인을 제시하는 것임. 따라서, 스마트 컨트랙트의 작성 및 배포를 테스트 네트워크(Ropsten - 실제 이더리움 메인넷과 유사한 구조)에서 진행 할 것이고 이는 Remix 에서 손쉽게 할 수 있음. https://remix.ethereum.org/ Remix - Ethereum IDE rem..

Incognito Project 2022.09.24