본문 바로가기

Blockchain8

[Ethereum] - metamask 메시지 서명과 검증 메타마스크를 활용하면 특정 메시지에 서명한 값을 가지고 서버에서 메시지를 검증하여 사용자가 맞는지 확인하여 로그인, 사용자 검증 등에 사용할 수 있다. 아래는 메타마스크의 인스톨 여부와 권한을 요청하는 구문이다. 아래와 같이 2단계에 걸쳐 연결을 설정한다. 서명 inject된 metamask web3를 가지고 서명 요청을 보내는 기본적인 스크립트이다. method의 경우 personal_sign 말고도 구조화된 메시지를 보내는 여러 함수들이 있다. (* 참고 docs.metamask.io/guide/signing-data.html) 서명을 하게 되면 아래와 같은 결과 값을 받게 되는데 result에 해당 하는 값이 서명된 메시지이다. sign 함수를 보면 nodejs로 구성된 localhost 서버로 보.. 2021. 1. 7.
[ Blockchain ] Blockchain Trilemma 문제란? 블록체인을 이용하여 탈중앙화, 보안성, 확장성 세가지를 모두 만족할 수 없다는 용어이다. "Scalability Trilemma"는 Ethereum의 설립자인 Vitalik Buterin 이 사용한 문구로 기본적으로 그는 블록체인은 한번에 3가지 중 2가지만 달성할 수 있다고 말했다. 탈중앙화 (Decentralization) 중앙화된 조직과 비교하자면 일반적으로 이러한 조직은 관리 팀인 최상위 개인 그룹이 존재하고 그들에 의해 제어가된다. 하지만 블록체인은 사용자, 소유자, 제 3자에 의해 선출된 참여자에 의해 네트워크가 제어가 된다. 관리의 주체에 따라 탈중앙화의 정도가 정해진다. 하지만 관리 권한을 모두 갖고 있다면 보안성이 떨어질수 있는 문제가 있다. 보안성 (Security) 51% 네트워크 문.. 2019. 11. 19.
[ Geth ] RPC 통신 Nginx 인증 보안 처리 geth rpc 통신을 사용할 경우 외부에 노출되어 해커들의 목표가 된다. 토큰, 이더리움을 빼가기 위해 RPC 통신이 노출된 노드들을 수없이 찾고 찾을 경우 지갑의 계정에 대하여 토큰, 이더리움 전송 트랜잭션을 계속하여 요청한다. 지갑이 잠겨있는 경우와 geth 최신 버전을 사용하여 암호를 파라미터로 트랜잭션 처리를 했다면 문제가 없겠지만 예전 버전의 geth를 사용할 경우 전송 전 지갑을 열고 전송 후 지갑을 닫는 과정에서 해커가 요청한 전송 트랜잭션이 들어올 경우 지갑에 있던 자원이 해커에게 넘어가버리는 상황이 발생하게 된다. 되도록이면 RPC 통신을 사용하지 않는 것이 중요하겠지만 특정 외부 서버와 RPC 통신을 할 경우 해당 서버만 RPC 통신이 가능하도록 하는 대안책을 제시하도록 한다. 사용 .. 2019. 10. 29.
[ Geth ] 파헤치기 4 번 - geth 함수 살펴보기 관련글 2019/04/15 - [Blockchain/Ethereum] - [ Geth ] 파헤치기 1 번 - Geth 실행 및 디버깅 방법 2019/05/06 - [Blockchain/Ethereum] - [ Geth ] 파헤치기 2 번 - 시작 Log 분석하기 2019/06/14 - [Blockchain/Ethereum] - [ Geth ] 파헤치기 3 번 - geth Main 함수 살펴보기 2019/06/24 - [Blockchain/Ethereum] - [ Geth ] 파헤치기 4 번 - geth 함수 살펴보기 저번 게시글에서 Main 함수를 알아보았고 app, cli 객체를 선언하고 geth 함수 진입부까지 살펴보았다. 오늘은 geth 함수가 어떤 역할을 하고 어떤 소스가 호출되는지 알아보자 설명.. 2019. 6. 24.