일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코틀린
- pwable.kr
- 페니빙
- kotlin
- cmd1
- Drive-By-Download
- pwnable.kr
- Docker
- col -1 from CursorWindow
- 10814
- SQLiteConstraintException
- pwnable
- Make sure the Cursor is initialized correctly before accessing data for it.
- Couldn't read row 0
- python
- 나이순 정렬
- 파이썬
- java.lang.IllegalStateException
- 포너블
- 쏘큩
- 백준
- 액션바 필요없숴
- tlqkf
- 클라우드란?
- 클라우드가 뭐야
- cmd2
- 6566
- UNIQUE constraint failed
- 애너그램 그룹
- 블록체인
- Today
- Total
푸르미르
블록체인과 이더리움 본문
블록체인 - 탈중앙화된 데이터베이스로서 모든 거래의 기록을 읽기 전용으로 안전하게 보존한다.
인터넷과 블록체인의 비교
인터넷은 TCP/IP와 개방형 시스템 상호연결(OSI) 모델 스택에서 정보를 공유할 목적으로 나온 기술이다. TCP/IP는 인터넷의 첫 프로토콜 모음으로 비슷한 네트워크 간의 통신을 표준화 하기위해 구축되었다. 한편 ISO에서는 벤더, 모델, 기술에 무관하게 시스템간의 통신을 표준화하는 프레임 워크를 제공하기 위해 OSI모델을 개발했다. 조직들은 클라이언트/ 서버 통신으로 신뢰성과 안전성을 챙긴다. 하지만 P2P네트워크에서는 이와 다르게 중앙 권력이 존재하지 않는다. 이 네트워크에서 블록체인이 쓰이는 것이다.
그렇다면 IP패킷과 블록을 비교해보자.
우리가 인터넷에서 행하는 모든것은 TCP/IP모델의 IP패킷을 타고 간다. IP패킷은 인터넷에서 보낼 수 있는 데이터의 최소 단위다. IP패킷은 IP헤더와 페이로드로 구성된다. 이 데이터를 보내려면 출발지, 목적지IP주소가 필요하다. 블록은 블록체인을 형성하기위해 체인으로 엮인다. 블록은 블록헤더와 블록몸체로 이뤄진다. 값이나 거래를 보내기 위해 출발지를 식별하기 위한 디지털 서명과 공개키를 추가한다.
웹앱과 디앱의 비교
웹앱(web app)은 웹 기반 애플리케이션으로 클라이언트 서버 모델에서 사용자에게 서비스를 하기 위해 널리 사용된다. 그렇지만 탈중앙화된 애플리케이션(dApp)은 P2P네트워크에서 수행된다. 전통적인 웹 애플리케이션에서는 CSS,HTML,자바스크립트를 사용해 프런트엔드 페이지를 표출한다. 웹앱에서는 API호출을 통해 데이터베이스로부터 데이터를 조회한다. 디앱의 프론트엔드는 페이지를 렌더링하는데 똑같은 기법을 사용하지만 API를 호출하는 대신 블록체인에 연결하는 스마트 계약을 사용한다.
암호화
암호학의 해싱은 임의의 길이의 입력 스트링으로부터 고정 길이 출력을 생성하는 방법이다. 그 출력을 해시 또는 메세지 다이제스트라고 하며 파일, 미디어, 텍스트 등 어떤 종류의 데이터든 그것의 무결성을 지키도록 설계한다. 입력 데이터에 대해 작은 변경이 일어나도 그 결과가 엄청나게 달라지므로 데이터가 쌓이는 중에는 물론 변화 없을 때조차 데이터를 예측하는 것이 거의 불가능하다. 해시를 만들어 내는 방법은 여러 알고리즘이 있는데, SHA-256알고리즘이 그중 하나이다. 이 알고리즘으로 고정길이 256비트 해시를 생성한다.
I don't like hash. => 933F8FAB623FE2F5FFAECEE12B06E2EF45B790490A9ECD67130B5062BF5705F4
I do like hash. => 7154E4C54C432CE3C6BFAAC59460BE8C91CB2873B4129131549055AD589F262A
전송된 파일이 손상되지 않았음을 보증하기 위해 수신자는 항상 계산된 해시를 비교함으로써 파일 작성자 또는 그 내용을 확인한다. 블록체인에서 해싱은 불변성 구현의 근간이다. 해싱 프로세스는 원장의 블록 중 그 어느것도 변경되지 않았음을 보증한다. 해싱을 통해 바로 전블록의 해시값을 가짐으로써 해당 블록이 조작되지 않았음을 이야기 할 수 있는것이다.
합의
분산환경에서 동의를 달성한다. pos, pow, dpos, PBFT이 있다.
스마트계약
작성자가 지정한 동작을 수행하도록 작성된 프로그램이다. 다른 블록체인에서도 계약코드를 작성할 수 있지만 확장성 있는 처리능력으로 인해 이더리움을 가장 선호한다. 이더리움에서는 개발자가 자신의 스마트계약코드를 작성할 수 있다.
이더리움의 각 계약에는 고유하게 식별할 수 있는 주소가 있다. 이 주소는 해시 생성자의 주소와 수행된 거래의 수에 의해 계산된다. 스마트 계약을 공중 블록체인 환경에 배포할 때 그것에 대한 주소를 얻는다. 이제 스마트 계약에서 특정 인스턴스와 상호작용하는 코드를 작성할 수있게 되었다. 계약이 따라야할 ERC20 등의 표준이 있으며 요구되는 메서드를 구혀나는 것도 중요하다.
'Block Chain' 카테고리의 다른 글
CIA 보안 3요소 (0) | 2021.03.31 |
---|---|
하이퍼레저: 비지니스용 블록체인 (2) | 2021.03.24 |
보안과 진화 (0) | 2021.03.22 |
사이버 위협 환경과 보안 과제 (0) | 2021.03.06 |
전자서명과 해시, 블록체인 기반 기술 (0) | 2021.02.25 |