분류 전체보기 258

21.09.12 우분투에서 curl, node, go 설치

하이퍼레저 패브릭을 사용하기 위해 프라이빗 네트워크를 구축하기 전에 필요한 개발 환경부터 구축한다. docker 설치는 아래 게시물에서 확인!! 2021.09.12 - [블록체인/Project] - 21.09.12 우분투에서 도커 설치 1. curl을 설치하고 sudo apt-get install curl 2. node.js를 설치한다. sudo apt-get update sudo apt-get install build-essential libssl-dev curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh bash install_nvm.sh source ~/.profile nvm ins..

Ubuntu 2021.09.13

21.09.12 우분투에서 도커 설치

오라클 VM에서 우분투 터미널 창을 켠 후 도커와 필요한 패키지를 설치해준다. sudo apt install docker.io sudo apt install docker-compose //여러 컨테이너를 실행시켜줄 수 있는 툴 sudo apt install software-properties-common 현재 접속 중인 사용자에게 도커를 설정할 수 있는 권한을 준다. sudo usermod -aG docker $USER 그리고 다시 터미널을 재실행시킨 후 도커 버전을 확인한다. docker version 도커를 실행한 후 확인한다. sudo service docker start sudo service docker status

Ubuntu 2021.09.12

21.09.06 블록체인 적용 어플리케이션 아키텍쳐

퍼블릭 및 프라이빗 블록체인을 이용하여 기존 서비스를 확장, 저장, 관리하는 시스템으로 데이터의 신뢰성을 증가시킨 형태의 어플리케이션으로 볼 수 있다. ✔어플리케이션의 실행 구조 1. Application and Presentation Layer: 스마트 컨트랙트, 체인코드, 디앱, 유저 인터페이스, 지갑 2. Consensus Layer: Pow, PoS, DPoS, PoET, PBFT 3. Network Layer: P2P 형식으로 네트워킹 4. Data Layer : 디지털 서명, 해시, 머클트리, 트랜잭션 등의 데이터 5. Hardware / Infrastructure Layer: VM 머신, 컨테이너, 서비스, 메세징 ✔블록체인 웹서비스 RESTful 구조 1. 어플리케이션 사용자는 웹 브라우저..

카테고리 없음 2021.09.07

21.09.05 RSA [작성 중!]

RSA를 Javascript로 구현해보았다. 1. p, q 아주 큰 소수 2. n = p*q 3. φ(n) 오일러 피 함수(n 과 서로소인 1부터 n까지 정수의 개수) 4. φ(n) 값을 (p-1)(q-1)을 통해 구한 후, 1구현 중! 5. (e*d) mod(φ(n)) = 1 만족하는 d 구하기 /** * 21.09.05 JE * RSA 구현 * 1. p, q 아주 큰 소수 * 2. n = p*q * 3. φ(n) 오일러 피 함수(n 과 서로소인 1부터 n까지 정수의 개수) * 4. φ(n) 값을 (p-1)(q-1)을 통해 구한 후, 1 < e < φ(n)인 e 구하기 * 5. (e*d) mod(φ(n)) = 1 만족하는 d 구하기 */ //1 ~ 256 까지의 소수 //+ 소수 분류하는 함수로 추가하..

암호학 2021.09.06

21.09.05 RSA 알고리즘

RSA 암복호화 알고리즘에는 public key, private key를 사용하는데 key라고 해서 복잡한 무언가가 아니라 상수 두 개 만들고 각각을 key라고 한다. 그 두 상수를 생성하는 원리는 다음과 같다. ✔key 생성 원리 1. p와 q는 서로 다른 소수이다. 2. p와 q를 곱한 값인 N을 찾는다. 3. 오일러 피 함수에 N을 대입한 값 φ(N)을 찾는다. (p-1)(q-1)으로 계산할 수 있다! 4. φ(N) 보다는 작고 φ(N)와 서로소인 정수 e를 찾는다. 5. 확장된 유클리드 호제법을 이용하여 d x e를 φ(N)로 나누었을 때 나머지가 1인 임의의 정수 d를 구한다. ✔public key와 private key 위를 통해 N, e, d 값을 구할 수 있는데 public key는 이고 ..

암호학 2021.09.05

21.09.03 마이 포트폴리오 jemerald 제작 시작!

✔npm을 통해 리액트 프로젝트를 생성하고 홈 화면에 다른 컴포넌트로 바꿀 수 있는 링크를 추가하기 위해 모듈을 설치한다. react-router-native은 앱 개발 전용, react-router-dom은 웹 개발 전용, react-router은 두 가지가 모두 포함되어있다. >> npx create-react-app >> npm install react-router-dom ✔프로젝트를 실행하기 위해서는 콘솔창에 아래와 같이 입력한다. >> npm run start 하지만 다음과 같이 에러가 발생하였다. ✔Error: Invariant failed: You should not use outside a → Link를 불러올 때 BrowserRouter를 불러온 다음에 추가해야 한다! 1. Browser..

카테고리 없음 2021.09.04

21.08.10 생일 공격

암호해독공격 중 하나인 생일 공격에 대해 알아보겠다. 사람이 여럿 모였을 때 그 중에 생일이 같은 두 명이 존재할 확률을 생각해보자. 그 과정은 다음과 같다. 칠판에 365일을 쓰고 한 사람씩 자신의 생일을 지워나간다고 하면 첫번째 사람이 나와서 자기 생일을 지울 확률은 365일 중에 365일을 선택하므로 확률은 1이다. 다음 사람이 나와서 첫번째 사람의 생일을 제외한 생일을 지울 확률은 364/365이다. n명의 사람들 중 생일이 모두 다를 확률은 아래와 같이 표현할 수 있다. 최종적으로 생일이 같은 사람이 둘 이상 있을 확률은 전체 확률 1에서 생일이 모두 같지 않을 확률을 제외하므로 따라서 365명보다 적은 수인 최소 23명만 모여도 생일이 같은 두 사람이 있을 확률이 50%가 넘고 57명이 모이면..

암호학 2021.08.12

21.07.28 diamond problem

내 컨트랙트를 만들 때 ElmoToken에 openzeppelin 의 기존 소스 코드를 다음과 같이 상속해주었다. 다음과 같이 작성한 이유는 함수를 작성한 순서대로 그에 따라 필요한 소스코드를 추가하였기 때문이다. contract ElmoToken is ERC20, AccessControl,Ownable, IERC20 { 하지만 아래와 같은 밑줄의 오류가 발생하였다. "Linearization of inheritance graph impossible" https://ethereum.stackexchange.com/questions/63564/question-regarding-linearization-of-inheritance question regarding linearization of inherita..

solidity 2021.07.28