반응형 전체 글27 개요 시스템 프로그래밍 어셈블러(assembler) 초기의 컴퓨터는 몇 개의 기본적인 명령어만을 해독할 수 있는 단순한 형태. 프로그래머들이 연속적인 0과 1의 배열로 기계어로 된 프로그래밍을 하여 기억 장치에 넣고, 버튼을 누르면 컴퓨터는 이것을 이해하여 실행. 2진수 형태의 기계어로 프로그램을 작성하는 것은 어렵고 작성된 프로그램의 의미를 이해하기 위해서도 많은 노력이 필요하기에 프로그래머들은 좀 더 간편한 프로그래밍 언어를 필요로 함. 각 기계의 명령에 대응하여 기호(mnemonic Or Symbol)를 사용하고 다시 기계어로 번역하는 방법. 위처럼 사용자의 기억을 돕는 기계어(mnemonic machine language)를 어셈블리 언어 또는 어셈블리어(assembly language)라 한다. 어셈.. CS 지식/시스템 프로그래밍 2023. 4. 5. 솔리디티 기본 문법 솔리디티 ( Solidity ) https://docs.soliditylang.org/en/v0.8.17/contracts.html?highlight=constant#constant-and-immutable-state-variables 변수 보통의 프로그래밍 언어라면 변수는 스택 ( Stack ) 힙 ( Heap ) 등의 메모리에 저장된다. 하지만 솔리디티에서는 변수는 메모리뿐만아니라 하드디스크같은 스토리지나 callData라는 영역에도 저장한다 스토리지 ( Storage ) 영속적으로 읽고 쓰기가 가능한 저장 공간이다 key - value 값 쌍으로 이루어진 mapping 구조를 갖고 있으며 각 키와 값은 32바이트의 크기를 가진다 스토리지는 함수 외부에 정의된 변수(상태변수), 함수와 같은 스마트 컨.. BlockChain/스마트 컨트랙트 2023. 3. 29. 솔리디티란? ( Solidity ) 솔리디티 ( Solidity ) 솔리디티란 객체 지향 프로그래밍 언어로써, 이더리움 블록체인 플랫폼에서 다양한 스마트 컨트랙트를 작성할 때 사용된다. 솔리디티는 C++, JS, Python 의 영향을 받았다. 솔리디티 특징 정적 타입의 중괄호 언어 기존 JS와 달리 컴파일 시 변수에 타입이 결정되는 언어이다. 소스 코드에 타입을 명확하게 정의해줘야 한다. 튜링 완전 언어 이더리움은 gas를 통한 과금 메커니즘을 도입하여 블록체인 네트워크에서 튜링 완전 언어를 가능하게끔 했다. 솔리디티는 비트코인 스크립트와 다르게 반복문 등의 작업을 수행할 수 있다. 컴파일 언어 솔리디티로 작성한 스마트 컨트랙트은 이더리움 가상머신 (EVM) 에서 동작하기 위해 바이트 코드 (Bytecode) 로 컴파일 된다. 솔리디티 .. BlockChain/스마트 컨트랙트 2023. 3. 28. 노드(Node)의 의미 노드(Node)란? 보통 노드란 하나의 단위로 여겨진다. 자료구조에서의 노드 보통 알고 있는 자료구조에서 사용되는 노드는 연결리스트(Linked List)라고 하며 순서를 갖고 있는 자료들의 저장과 탐색을 위해 사용된다. 각 노드는 다음 노드의 주소를 저장함으로써 다음 노드를 탐색할 수 있다. 다음 주소를 가리켜야 하므로 포인터를 이용해 구현할 수 있다. 노드가 가리키는 다음 주소가 NULL이면 이 노드는 마지막 노드라고 할 수 있다. 연결리스트를 구현하기 위해 다음과 같은 세 함수를 이용할 수 있다. 초기화 ( Init ) 삽입 ( Insert ) 삭제 ( Remove ) 블록체인에서의 노드 트리 구조에서는 하나의 노드가 A,B,C,D,E,F,G 각각을 의미한다. 블록체인에서는 수십만 개 이상이 존재하.. BlockChain/블록체인 2023. 3. 28. 비트코인 블록 구조 블록체인의 블록구조 비트코인의 블록 구조 비트코인의 블록 구조는 헤더 ( Header ) , 거래로 나누어져 있다. 블록 구조에는 바디(Body)라는 필드가 존재하지 않는다. 블록체인이 왜 체인이고 암호화되어 있다고 하는지를 헤더를 보면 알 수 있다. 비트코인 헤더의 구조 1. 버전 비트코인이 어떤 버전을 쓰고 있는지 표기한다. 소프트웨어 프로토콜 업그레이드 추적을 위한 버전 번호이기도 하다. 2. 이전 블록 헤더 해시 체인으로 만드는 중요한 개념이다. N번째 블록을 채굴하려는 노드가 N-1번째 블록을 전송받았을 때, 바로 이전 블록(N-1)에 대한 헤더 해시를 직접 계산하여 헤더에 넣는다는 뜻이다. 3. 타임스탬프 유닉스 타임(1970년 1월 1일) 기준으로 초 단위 해당 블록 채굴 시각을 기록한다. .. BlockChain/암호화폐 2023. 3. 28. 채굴 알고리즘 종류 채굴 알고리즘 SHA 256 SHA-256 은 현재 블록체인에서 가장 많이 채택하여 사용되고 있는 암호 방식이다. 출력속도가 빠르다는 장점을 갖고 있으며, 단방향의 성질을 띠고 있는 암호화 방법으로 현재까지 복호화 방법이 밝혀지지 않았다. SHA-384, 512, SHA-3 보다는 유효 보호 수준이 낮지만 현재까지 안정성 문제에서 큰 단점이 발견되지 않았다. 속도가 빠른 장점을 활용해서 인증서나 블록체인에서 활용하고 있다. X11 X11은 현존하는 X 계열 해시 알고리즘 중 가장 널리 쓰이고 있으며 훌륭한 여러 가지 장점을 가지고 있다. X11은 GPU를 이용한 채굴이 가장 효과적이다. CPU와 GPU의 효율성은 1:6 비율인데 X11 알고리즘이 처음 등장한 이후로 CPU/GPU의 간격은 더욱 벌어지고 .. BlockChain/블록체인 2023. 3. 28. 위임지분증명 ( DPoS ) 위임지분증명 ( DPoS ) 지분 증명 ( PoS )이 자산을 가진 사람들이 전부 참여할 수 있는 방식이라면, 위임지분증명 ( DPoS)는 특정 인원에게만 지분 증명을 할 수 있도록 권한을 위임하는 것 국민을 대표로 의원을 뽑아 의회를 구성하는 민주주의 제도와 유사하다. 위임지분증명을 사용하는 코인으로는 스팀, 비트셰어, 엘프, 리스크, 테조스, 라이크, 아크, 시프트, 보스코인 등이 있다. 위임증명방식 ( DPoS ) 장점 1. 소규모 참여자도 이득을 볼 수 있다. 2. 거래속도 ( TPS ) 가 빠르다. PoS에 비해 DPoS는 같은 시간에 더 많은 거래를 처리할 수 있다. 그리고 수수료가 없다는 장점이 있다. 위임증명방식 ( DPoS ) 단점 1. 네트워크 보안 지분을 위임받은 대표자들의 수가 제한.. BlockChain/블록체인 2023. 3. 28. 지분 증명 ( PoS ) 지분 증명 ( PoS ) 지분 증명은 Proof of Stake 의 약자이다 해당 암호화폐를 보유하고 있는 지분율에 비례하여 채굴을 할 수 있게 해주는 합의 알고리즘이다. PoS는 컴퓨팅 낭비가 심한 PoW와는 달리 자신의 지분(Stake), 즉 스테이킹한 자산의 양에 비례하여 블록을 생성(채굴) 할 권리를 가질 수 있다. 주주총회랑 비슷하다고 보면 된다. PoW 처럼 무의미하게 논스값을 찾거나 할 필요가 없어서 경제적이고 친환경적이다. 전체적으로 작업 증명 ( PoW )의 단점을 보완하는 합의 알고리즘이다. 스테이킹한 자산을 통해 블록을 생성하면 되기 때문에 비싼 하드웨어 장비가 필요하지 않는다. 코인을 일정 기간 네트워크에 스테이킹 해야 하기 때문에 다른 코인으로 이탈할 가능성도 작다. 지분 증명 단.. BlockChain/블록체인 2023. 3. 27. 작업 증명 ( PoW ) 다양한 채굴 종류 작업 증명 ( PoW ) 작업 증명은 Proof of Work 의 약자이며, 유효한 블록을 만드는데 충분한 계산 자원을 소모했다는 증명이다 PoW 의 대표적인 코인에는 비트코인, 비트코인 캐시 등이 있다. 비트코인 채굴 알고리즘 1. 비트코인 네트워크로부터 이전 블록의 헤더를 얻는다. 2. 네트워크 상에서의 트랜잭션 브로드캐스트 세트를 제안한 블록에 넣어서 합친다. 3. 블록 버전, 이전 블록의 블록 해시값, 머클루트 값, 타임스탬프, 난이도 비트, 새로운 논스를 합한 값에 SHA256 함수를 두 번 적용한다 4. 결과 해시값이 현재의 타겟 난이도보다 낮은지 확인하고, 낮으면 PoW를 푼 것이다. PoW 성공 시 발견된 블록은 네트워크에 브로드캐스트되고 보상받는다. 5. 결과 해시값이 .. BlockChain/블록체인 2023. 3. 27. 블록체인 채굴 채굴 ( Mining ) 채굴이란, 블록체인 네트워크에서 노드로 트랜잭션을 검증하며 분산원장에 기록하고 보상으로 암호화폐를 얻는 것 즉, 새로운 블록을 만드는 것이 채굴의 핵심이며 블록을 생성하여 체인에 연결한 노드는 행위에 대해 보상을 받는다. 비트코인은 블록이 생성될 때마다 다음 블록 생성을 위한 해시 퍼즐 문제가 함께 주어진다. 이 문제를 가장 먼저 해결한 작업자가 블록을 생성하는 권한을 갖고 생성한 블록을 체인에 올림과 동시에 채굴 보상을 받는다. 해시 퍼즐을 푼다는 것은 특정한 조건을 갖춘 해시를 찾아내는 일련의 과정이다. 비트코인은 난이도(Nonce)를 조정하여 약 10분 주기로 채굴이 가능하도록 프로그래밍 되어 있다. 암호화폐를 지급받는 노드들이 채굴자 ( Miner ) 이다. 비트코인 같은.. BlockChain/블록체인 2023. 3. 27. 블록체인 부동산 거래 플랫폼 AnBang 안(安)방 Project 프로젝트 기획 의도 2022년 말, 부동산 업계에 시끌벅적했던 전세 관련 사건 사고가 많았습니다. 대표적인 사건으로는 투명한 정보를 공개하지 않는 "깡통 전세 사기" 부터 부동산 공인중개사와 집주인이 공모하여 임대인을 상대로 사기를 공모했던 사건들이 있었습니다. 공인중개사는 법적으로 제한되어 있는 중개 수수료를 받기 위해 집값의 가격을 투명하게 반영하지 않는 경우도 있었습니다. 부동산 거래를 위해서는 거의 필수적으로 공인중개사를 이용하여 거래를 진행해야 하지만, 부동산 거래 질서가 교란된 상황에서 서로를 신뢰할 수 없게 되었습니다. 저는 이러한 문제들을 블록체인과 NFT를 도입한다면 제 3자의 중개없이 임차인과 임대인의 직거래가 가능한 플랫폼을 만들 수 있다고 생각하.. Web3 프로젝트 2023. 3. 27. Web3 기반 커뮤니티 프로젝트 GitHub : https://github.com/codestates-beb/beb-07-second--04 Web3 기반 커뮤니티 ? Web2 기반의 커뮤니티 ( ex 페이스북 트위터 인스타그램 ) 들은 많은 사람들이 현재까지 이용하고 있다. 기존 Web2 기반의 커뮤니티는 다양한 문제점들이 있다고 생각한다. 모든 정보들과 개인신상정보들이 하나의 중앙화를 기반으로 움직이다 보니 다양한 제약과 외부로부터의 공격 가능성을 갖고 있다. 이러한 문제점을 해결하기 위해 기존의 블록체인을 커뮤니티를 만드는 것이 이번 프로젝트의 핵심이었다. Wire Frame 설명 메인 페이지 게시글 리스트 게시글 작성할 수 있는 화면 개인 프로필 및 이용자 프로필 마이페이지 토큰을 다른 사용자에게 전송할 수 있는 기능 갖고 있는.. Web3 프로젝트 2023. 1. 13. 이전 1 2 3 다음 반응형