728x90

Block Chain ETC 7

블록체인 개념 정리#4

- PoS는 토큰을 많이 소지하고 있으면 중앙화의 위험이 있다. 이같은 이유 떄문에 보통의 코인들은 PoW로 시작하여 토큰이 고르게 분배되면 PoS로 전환하는 방법을 채택한다. - 하지만 클레이튼은 BFT를 채택했다. 이유는 간단히 말하면 "빨라서" 이다. 하지만 BFT는 확장성의 문제가 있다. 클레이튼은 이 문제를 해결했다. - 클레이튼은 N개의 노트 가운데 S개의 부분 노드 집합을 확률적으로 선택한다. Committe(부분집합) 선택은 VRF(verifiable random function)으로 구해진 무작위 값에 기반한다. 매 블록마다 새 Committe를 뽑아 BFT를 실행하여 확장성을 개선했다. - 블록체인 상태 - 블록체인은 트랜잭션으로 변화하는 State Machine이다. (컴파일러 개론의..

Block Chain ETC 2022.07.04

블록체인 개념 정리#3

- 암호 - 고전적인 암호의 대표적인 예로 카이사르 암호(Caesar cipher)가 있다. 이는 알파벳을 key 값만큼 밀어서 치환하는 기법이다. ex) E(A, key=3) => D - 암호에는 크게 대칭키암호와 비대칭키(공개키)암호로 분류된다. 블록체인에서는 공개키 암호를 사용한다. 암호화에 사용되는 키는 공개키(PK), 복호화에 사용되는 키는 비밀키(SK) 라고 한다. - 이러한 비대칭키 암호의 목적은 "누구든지 암호화할 수 있지만 비밀키를 아는 사람만 복호화할 수 있어야한다" 이다. 비밀키로부터 공개키를 도출하는 것은 쉽지만, 공개키로부터 비밀키를 찾는 것은 매우 어렵다. - 여기에 해쉬를 넣어서 무결성을 확인할 수 도 있다. - 그렇다면 이러한 공개키 암호가 블록체인에 어떻게 사용될까? - 비..

Block Chain ETC 2022.07.01

블록체인 개념 정리#2

- 일반적으로 블록의 해시값은 해당 블록의 생성일시, 버전, 비츠(bits), 루트해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등을 조합한 후 해시로 변환하여 생성한다. 해당 블록의 생성일시, 버전, 난이도, 루트해시와 이전 블록의 해시값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. - 합의 알고리즘 - PoW, PoS 합의 알고리즘은 많이 들어 봤지만, BFT-variants는 처음 들어보는 합의 알고리즘이었다. PoW는 네트워크를 비동기화 상태에 두어도 합의를 여전히 이끌어낼 수 있다는 장점이 있다. 하지만 연산비용이 너무 비싸다는 점이 있다. PoS는 누구든지 참여할 수는 없다..

Block Chain ETC 2022.06.30

블록체인 개념 정리#1

- 블록체인이란 정보를 블록 단위로 저장하여 저장된 블록을 체인 형태로 묶은 저장 기술이다. - LinkedList와 똑같은 방식으로 구현되있다. 하지만 기억하는 방법다르다. 블록체인에서는 해시함수로 이를 기억한다. - 해시함수 - 해시(Hash) 함수란 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. - 해시 함수는 하나의 데이터에서 단 하나의 해시가 도출된다. - 사용 예로는 URL을 줄여주는 것이 있다. ex) www.bit.ly/A42B5 => 원래 길었던 URL을 해시변환을 통해서 짧게 줄여줌 - SHA-256, Keccak 등의 해시 함수가 있는데 같은함수로 다른 데이터를 해시했을 경우, 다른함수로 같은 데이터를 해시했을 경우 모두 다른 값이 나온다. 하지만 모두 256비트 ..

Block Chain ETC 2022.06.30

Solidity 문법 정리

- 라이센스 : 스마트 컨트랙트에 대한 신뢰를 높이고, 저작권과 같은 문제를 해소하기 위해 코드 최상단에 라이센스를 명시한다. (아래 예시말고도 다양한 라이센스 존재) ex) // SPDX-License-Identifier: MIT - solidity compile version : 특정 컴파일러의 버전을 표기할 때 사용, 0, "Token is not on sale"); // 구매자가 돈이 충분하지 않은 경우 require(price msg.sender) slimeBaseAddress.safeTransferFrom(tokenOwner, msg.sender, _tokenId); // 판매 했으므로 가격 초기화 slimeTokenPrices[_tokenId] = 0; } - 자료형 : (1) bool (2..

Block Chain ETC 2022.06.29

BlockChain Trilemma

블록체인에서 트릴레마란 확장성(Scalability), 탈중앙화(Decentralization), 보안성(Security)의 세 가지 문제는 한번에 해결할 수 없음을 뜻한다. 현재 1세대 암호화폐 비트코인과 2세대 암호화폐 이더리움이 암호화폐 피투피(P2P) 거래에 가장 널리 쓰이고 있지만 사용자로 하여금 해당 블록체인 기술의 한계를 체감하게 하고 있다. 비트코인과 이더리움이 직면한 기술적 한계의 대표적인 예가 네트워크가 확장됨에 따라 초당 거래 처리 속도(TPS : Transaction Per Second)가 느려지는 확장성 문제를 꼽을 수 있다. 이를 해결하기 위한 대안으로 나온 3세대 블록체인 이오스 또한 충분한 해결책이 되지 못하고 있다. 현재 시중에 나와 있는 암호화폐들은 탈중앙화, 보안성, 확..

Block Chain ETC 2022.05.30

Mainnet

메인넷이란 기존 사용 플랫폼(이더리움, 퀸텀, 네오 등)에서 나와 독립적으로 생태계를 구성하는 것을 말한다. 본래 메인넷은 테스트넷과 대비되는 용어로 실제 사용자들에게 배포하는 버전의 네트워크를 말한다. 모든 코인이 메인넷을 가지고 있는 것은 아니며 각 코인의 용도나 필요에 따라 결정하게 된다. 대부분은 이더리움 같은 다른 플랫폼 위에서 돌아가는 토큰의 형태를 띈다. 암호화폐공개(ICO)를 통해 공모되는 코인은 일반적으로는 이더리움 기반 토큰이 가장 많으며 퀀텀도 과거 이더리움 기반 토큰(ERC-20)에서 시작했다. 메인넷은 기존에 존재하는 플랫폼에 종속되어 있지 않고, 독립적으로 생태계를 구성하는 것이다. 자체 프로토콜(protocol)인 메인넷을 보유하고 있다면 '코인'(이더리움, 퀸텀, 리플, 네오..

Block Chain ETC 2022.01.03