본문 바로가기

블록체인8

Java를 이용한 블록체인 [이론] SSAFY 4기 박상우 블록체인 중앙집권 방식이 아닌 분산 방식으로 진행 모든 거래 정보를 특정 제 3 기관이 아닌 거래를 하는 개인(Peer)이 감독 및 소유 및 배포 대표적인 블록체인 사용 범위 비트코인 P2P (Peer to Peer) : Server - Client 중앙 집중 관리 방식이 아닌 상호 연결된 노드들이 자원을 공유하는 형태 분산원장 : 분산 DB 환경 노드에 자료를 분산 특징 누구나 장부를 만들 수 있다. 누구나 장부를 볼 수 있다. 문제점 해당 장부를 믿을 수 있는가? 2개의 장부가 다르면 누굴 믿을 것인가? 합의 알고리즘 : 채굴을 통한 합의 알고리즘 진행 공개되있는 데이터를 각각의 노드 모두가 업데이트를 진행할 수 있다. 그렇다면 누가 그 업데이트를 주관할 것인가 라는 문제점이 .. 2021. 3. 14.
Java를 이용한 블록체인 개발 [ Wallet ] Wallet의 기능 공개키, 개인키의 의미는 트랜잭션의 검증수단 트랜잭션이 생성되고 처리되는 과정에서 개인키로 트랜잭션에 서명하고 공개키로 올바른 서명인지 확인한다. 트랜잭션을 일으키는 지갑이 본인의 개인키로 디지털 서명을 암호화, 공개키로 해당 트랜잭션을 복호화 하여 유효한 트랜잭션인지 확인한다. 보통 이 키 쌍을 가르켜 keyPair라고 한다. 키 쌍을 만드는데에는 타원 곡선 암호(Elliptic-curve cryptography)가 사용된다. Wallet은 블록체인의 가장 밑바탕이 되는 프로그램이다. 지갑 프로그램은 각 클라이언트들이 모두 설치가 되어 있다는 가정에 진행된다. 지갑에서 Transaction을 생성한다. 수신자는 오픈되어 있는 공개키를 알고 있어야 복호화가 가능하다. Wallet의 상.. 2021. 3. 14.
Java를 이용한 블록체인 개발 [ TransactionOutput ] 받는 사람의 주소가 그사람의 계좌주소와 같은지 확인 2021. 3. 13.
Java를 이용한 블록체인 개발 [ Transaction ] method 설명 Transaction Transaction 생성 processTransaction Transaction 검증해주기, 중간에 에러가 발생하면 정지 getInputValue TransactionInput에 담겨있는 UTXO의 value값을 total로 합쳐줌 verifySignature sender와 reciepient와 value를 넣어줘서 String으로 선언한 변수 data에 넣어줌 generateSignature 서명 생성 2021. 3. 13.