분류 전체보기 47

오펀 블록(Orphan Block)

오펀 블록 블록체인에서는 여러 개의 블록이 구성되어 있으며, 각 블록은 이전 블록과 연결이 되어 있어야 한다. 오펀 블록은 이전 블록과 연결되어 있지 않은 블록을 의미하며, 이것은 블록체인의 일관성과 안정성을 보장하는데 중요한 역할을 한다. 오펀 블록은 일반적으로 채굴 과정에서 발생하는데, 여러 채굴자가 동시에 블록을 채굴 하는 경우, 먼저 채굴된 블록이 유효한 채굴로 이전블록과 연결되게 되고, 그렇지 않은 블록은 오펀 블록이 될 수 있다. 이때 오펀 블록은 블록체인에서 제외된다. 즉, 다른 노드에 해당 블록이 유효하지 않다는 것을 알리고, 유효한 블록과 연결되도록 다시 채굴을 시도하게 된다.

Blockchain 2023.05.07

블록체인. 대체 뭘까?

그러면 블록체인이 뭔지 설명해보세요. 오늘 면접을 보는데 내 프로젝트에 대한 설명이나 직무에 대한 것들, 그리고 회사 프로젝트의 방향성에 대해 얘기를 하다가 면접관분께서 "그럼 블록체인이 뭐라고 설명할 수 있을까요?" 라고 질문을 던졌다. 사실 블록체인 개발자로서 면접을 10번 이상 봤는데 면접관분들이나 나나 블록체인이 뭔지 모르는 사람들은 아니기 때문에 이런 질문은 받아본 적이 없다. 사실 블록체인이 아닌 다른 개발 직무를 지원했거나 IT에 대해 모르는 사람이 블록체인이 뭐냐고 물었을 때의 대답은 쉽게 나왔을 것 같은데 오히려 블록체인에 대해 잘 알고 있는 현업 종사자 분이 블록체인이 어떤건지에 대해 물어보니 좀 당황을 했던 것 같다. IT에 조금이라도 관심이 있거나, 음... 그것도 아니지. 사실 블..

개발 일기장 2023.02.08

Solidity - 용어 정리

Address - 20바이트 형식의 변수 타입 (이더리움 주소 크기) - Solidity 에서 address를 선언하는 것은 변수를 이더리움 주소가 되도록 설정하는 것. Mapping - 키-값을 쌍으로 저장한다. - ex) mapping(address => uint) - 주소를 정수로 매핑. Scoping (변수의 범위) - State Variables (상태 변수) : 계약 저장소에 그 값이 영구적으로 저장됨. contract SolidityTest { uint storedData; constructor() public { storedData = 10; } } - Global Variables (전역 변수): 함수 외부에서도 쓸 수 있음. Constructors - Solidity에서 생성자는 계약 ..

Blockchain/Solidity 2023.01.08

Solidity - What is modifier?

Solidity 언어에는 다른 언어와 달리 modifier가 존재한다. Modifier는 함수안에 동작을 변경시키기 위해 사용되는데 즉, Modifier를 사용하면 함수를 실행시키기 전이나 후에 특정한 동작을 하게끔 만들 수가 있다는 뜻이다. 예를 들어, 함수를 동작시키기 전에 지정한 boolean 타입의 변수가 true인지 false인지 확인하고 동작시킬 수 있다. 위 코드처럼 require이 조건문처럼 쓰이고 조건에 부합하면 _; (underscore)를 통해 함수를 동작하게한다. 즉, 조건이 맞을 경우에 실행된다.

Blockchain/Solidity 2023.01.07

Solidity - Why write SPDX?

Solidity 코드를 작성할 때 맨 위에 SPDX 라이센스를 습관적으로 작성했는데 왜 작성하는지에 대한 의문점이 들었다. 찾아보니 Solidity 버전 0.6.8 이후 부터 코드 상단에 SPDX 라이센스를 요구 하는 것이 명시되었다고 한다. Solidity Docs에 의하면 라이센서를 명시함으로써 SmartContract에 대한 신뢰도를 높일 수 있고, 소스가 워낙 오픈되어 있기 때문에 저작권과 같은 문제를 해결하기 위해 명시를 한다고 설명되어 있다. SPDX 라이센스 리스트: https://spdx.org/licenses/ SPDX License List | Software Package Data Exchange (SPDX) SPDX License List The SPDX License List is..

Blockchain/Solidity 2023.01.03

React / Router

React Router React에서 URI에 따라 다른 화면을 보여주도록 연결을 해주는 것.React Router 설치 npm install react-router-domTips of Routing 로그인 여부에 따라, route 접근을 결정하는 것이 좋음. e.g. 로그인이 안되어있을때만, 회원가입 route 접근하게 하기Link에 path를 관리하는 파일 (routes.js)를 만들어서, 프로젝트 내부에서 링크 연결을 더 정확하게 만들 수 있다.참고: https://defineall.tistory.com/886

React 2022.11.16

Web 3.0이란?

WHAT IS WEB3.0? Web3.0은 컴퓨터가 시멘틱 웹 기술을 이용하여 웹페이지에 담긴 내용을 이해하고 개인 맞춤형 정보를 제공할 수 있는 지능형 웹 기술이다. 세계 곳곳에 흩어진 네트워크 참여자들의 컴퓨터 자원을 활용하는 블록체인 기술로 인해 자료나 정보가 분산 저장되고, 이더리움같은 가상화폐에 내재된 자동화 프로그래밍기술(스마트 컨트랙트)로써 관리자의 개입이 없는 웹 이용이 가능하다. 암호화 기술을 활용한 대체 불가능 토큰으로 데이터의 온전한 소유권도 주장할 수 있고, 사용자는 자신의 개인 데이터를 컨트롤하고 신원에 대한 주권을 갖게 된다. Web3.0의 암호화 및 블록체인 블록체인 기술은 Web3.0을 뒷받침하는 원동력이다. 중앙 관리의 필요성 제거: 모든 거래 또는 이동을 온라인 원장(le..

Blockchain 2022.10.23

NFT의 종류 (ERC-1155D, ERC-721A, ERC-721R)

모든 대체불가능한토큰 (NFT)의 거래 중 78%는 이더리움 블록체인에서 이뤄진다. 많은 NFT 프로젝트들이 이더리움이 아닌 다른 블록체인 상에서 구축되긴 하지만, 거의 대다수는 NFT에 적합한 ERC-721 프로토콜 표준을 따른다. 하지만 ERC-721 표준만 있는 것은 아니다. WHAT IS ERC-721? ERC-721 토큰 표준은 NFT만의 자체 표준이 있어야 한다고 느낀 여러 사람들(William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs)에 의해 제안 되었다. 이 표준아래에 있는 모든 토큰들은 이더리움상의 대체불가 디지털 자산을 나타낸다. ERC-721과 동일한 자산은 없기 때문에 다른 유사한 자산과 교체할 수 없다. 많은 NFT들이 PF..

Blockchain 2022.10.23

퍼블릭 블록체인과 프라이빗 블록체인

퍼블릭 블록체인이란? 퍼블릭 블록체인이란 모두에게 공개되어 있는 블록체인을 의미한다. 즉, 누구나 허가없이 블록체인 네트워크에 참여하여 데이터를 읽고 쓸 수 있다. 퍼블릭 블록체인의 대표적인 두 가지는 이더리움과 비트코인이다. 장점 탈중앙성 앞서 언급했듯이 누구나 퍼블릭 블록체인에 참여할 수 있다. 네트워크에 참여할 주체를 중앙 집적형태의 권한자가 정하는 것이 아니기 때문에 탈중앙성을 유지할 수 있다. 보안성 수 많은 사람들이 모여 네트워크를 유지하기 때문에 보안성이 뛰어나다. 한번 네트워크에 생성된 블록은 바뀔 수 없을뿐더러 블록을 생성할 시에 과반수가 동의해야 한다. 단점 에너지 비효율성 일부 퍼블릭 블록체인은 많은 전력을 소비한다. 네트워크에 많은 사람이 모일수록 블록을 생성하기 위한 경쟁이 치열해..

Blockchain 2022.10.19

블록체인 트릴레마(발생 사례, 해결 방안) - 작성 미완료

트릴레마(Trilemma)란 세 가지 목표 중에서 두 가지 목표는 해결할 수 있지만, 세 가지를 한꺼번에 해결할 수는 없는 문제를 뜻하고, 블록체인 트릴레마라고 했을 땐 확장성(Scalability), 탈중앙화(Decentralization)와 보안성(Security)라는 블록체인의 세 가지 특성을 동시에 해결하기 어려움을 뜻한다. 블록체인 트릴레마 세 가지 요소 확장성: 블록체인이 얼마나 많은 트랜잭션을, 얼마나 빠르게 처리할 수 있는가를 의미한다. (TPS: Transaction Per Second, 하지만 "TPS = 확장성"은 아님!!!) 즉, 확장성이 높다는 건 트랜잭션을 많이, 더 빠르게 수행할 수 있다. 낮다 => 반대의 의미. 확장성을 높이려고 시도할 수 있지만, 그 동시에 탈중앙화와 보안..

Blockchain 2022.10.18