





Blockchain(58)
-
Tendermint Consensus overview
※ 원글 작성 : 22년 5월 10일 앞서 포스팅한 Cosmos blockchain의 기본 개념글에서 Tendermint의 consensus algorithm에 대한 대략적인 프로세스를 확인하였다. 해당 프로세스에 대해 조금 더 디테일하게 확인해보고 싶어 관련 안내 문서를 확인했다. Byzantine Consensus algorithm Terms 네트워크는 선택적으로 연결된 노드로 구성된다. 특정 노드에 직접 연결된 노드를 peers라고 한다. 다음 블록(height H)을 결정할 때의 합의 프로세스는 하나 또는 여러 round로 구성된다. NewHeight,Propose, Prevote, Precommit 및 Commit은 라운드의 state machine 상태를 나타낸다. (aka RoundStep ..
2023.06.14 -
CosmWasm smart contract 배포하기
※ 원글 작성 : 22년 5월 10일 Terra에 CW smart contract를 배포해보려 한다. NFT contract는 CosmWasm NFT를 참고로 작성할 것이다. Store NFT images IPFS를 설치하여 ipfs add IMAGE_NAME.jpg로 등록을 할 수 있지만 편의를 위해 NFT를 위한 file 등록 사이트를 사용하여 NFT image를 저장한다. Image를 등록하면 위 그림과 같이 CID가 생성되고, CID를 통해 IPFS 내의 이미지 or 파일을 확인할 수 있다. https://ipfs.io/ipfs/[your_image_CID]로 파일 확인이 가능하다. NFT 등록을 위해서는 JSON 형식의 Metadata도 필요하다. Metadata 형식은 표준화 되어 있으며 Op..
2023.06.14 -
2-way Peg concept
※ 원글 작성 : 22년 5월 4일 본 글은 Adam Back의 논문을 바탕으로 작성되었다. 블록체인 간 자산 이동의 방법은 많은 이론이 나오고 있다. HTLC를 이용한 atomic swap이나 2-way peg가 대표적일 것이다. 그 중 유명한 암호학자 Adam Back이 제출한 논문에 대해 확인해 보는 시간을 가질것이다. 2-way peg 비트코인 내의 SPV proof는 PoW된 결과를 보여주는 블록헤더들의 list와 list된 블록 중 하나에서 생성되었다는 암호화 증명으로 구성된다. 이 SPV proof의 증명을 사용하여 2-way peg를 구현한다. Symmetric 2-way peg 한 체인에서 다른 체인으로의 "SPV peg"를 사용할 수 있다. 부모체인의 코인을 사이드체인으로 전송하기 위해..
2023.06.14 -
Rollup의 개념과 특성
※ 원글 작성 : 22년 5월 4일 Roll up Series [Blockchain/Roll up] - Rollup의 개념과 특성 [Blockchain/Roll up] - ZK rollup - 1. 목적/library [Blockchain/Roll up] - ZK rollup - 2. ZKP [Blockchain/Roll up] - ZK rollup - 3. zkEVM 프로젝트 [Blockchain/Roll up] - ZK rollup - 4. zk-SNARK의 Circuit & QAP 해당 글은 비탈릭 부테린의 An Incomplete Guid to Rollups를 참고하였다. 블록체인에서 확장성을 증가시키는 방법은 끊임없이 연구해야하는 분야일 것이다. 이전 포스트인 샤딩도 그렇고 사이드체인, stat..
2023.06.14 -
Ethereum Bootnode 기능 확인
※ 원글 작성 : 22년 5월 4일 Bootnode 부트노드는 이더리움에 참여하려는 노드가 처음으로 연결되는, 이더리움 code안에 주소가 박혀있는 노드이다. 참여 노드는 부트노드에 연결하여 다른 노드들을 find 하고 다른 이더리움 노드의 주소(enode 식별자)를 전달받아 해당 노드와 연결된다. 블록 동기화도 찾아낸 노드들로부터 정보를 얻어서 진행하기 때문에 부트노드의 연결은 이더리움 생태계 안에 들어가기 위한 시작점이라고 볼 수 있다. 부트노드가 새로 참여하는 노드에게 주변 live 노드 정보를 전달해 준다면, 개발자가 임의로 healthy한 노드를 찍어서 전달해 줄 수 있지 않을까? Geth 내에 부트노드 코드를 보며 어떠한 방식으로 노드간 연결이 진행되는지 분석해보고, 실제로 임의의 노드를 전달..
2023.06.14 -
Sharding
※ 원글 작성 : 22년 5월 2일 Vitalik Buterin의 블로그 상에서 샤딩이 좋은 이유에 대한 설명을 참고한다. Sharding 샤딩은 데이터 저장기법 중 하나로 여러개의 작은 조각으로 나누어 분산 저장하여 관리하는 것을 말한다. 블록체인에서 샤딩을 적용 시에는 네트워크를 분할한 뒤 트랜잭션들을 별도로 저장하고 이를 병렬적으로 처리하여 블록체인 확장성을 부여하는 개념이다. 예를 들어, 20만큼의 데이터와 10개의 노드가 참여했을 시 기존의 블록체인은 10개의 노드가 20의 데이터를 모두 들고 있어야 되지만, 샤딩은 20을 조각내서 각 노드가 2개의 데이터만 보관하여 가벼워지고, 거래처리 속도가 향상될 수 있다. 각 샤드별로 MPT를 만들고 해당 샤드의 root들로 만들어진 MTP의 root만 ..
2023.06.14