# pip install moviepy


test.py

from moviepy.editor import *

VideoFileClip('mov.mp4').speedx(4).write_gif('out.gif') // 4배속도로 gif 생성


'python' 카테고리의 다른 글

python moviepy mp4를 gif 로 변경하기  (0) 2019.05.16
python 파일 한글 깨짐  (0) 2018.07.04
파이썬 GC  (0) 2018.02.22
python package update all  (0) 2017.02.26
python day 로 for each while  (0) 2017.02.25
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

grep -E "key1|key2|key3" ../log/log.out.2019.05.*

-E 속성을 준다음 파이프(|)로 묶어서 찾는다.


'linux' 카테고리의 다른 글

grep 여러 키워드 찾기  (0) 2019.05.09
vi 공백제거 :g/^$/d  (0) 2017.08.09
Mysql DB 덤프 쉘 스크립트 (다수 테이블)  (2) 2016.04.29
bad superblock on /dev/sdb1  (0) 2014.11.19
top 5초마다 프로세스 사용량 파악  (0) 2014.02.11
원격지에 열려있는 포트 확인  (0) 2014.01.23
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

<<truffle 셋팅, 업로드>> ()


[환경설치]

# npm install -g solc@[version] ## solidity 버전에 맞는 다운로드

[abi, bin 파일 생성]

# solcjs -o ./deploy/ --bin --abi --optimize CustomSolidity.sol --overwrite


[web3j ~.java 파일 생성]

# web3j truffle generate --javaTypes ./build/contracts/CustomSolidity.json -o [project-src]/src/main/java -p [package-name]


[truffle 사용한 solidity 배포] 

-truffle.js 파일에 호스트와 배포정보가 입력되어있어야 한다.


# truffle migrate --reset --network development

# truffle compile --all




'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.


SDK 도입과 활용에 대한 이해

  1. 왜 SDK 를 써야 하는가 ?
  2. iframe 을 사용하는 이유는 ?
  3. 부모창 측의 송수신 방법
  4. 자식창 측의 송수신 방법

1. 왜 SDK 를 써야 하는가 ?

CORS (Cross-Origin Resource Sharing) 비교적 최근 브라우져는 보안 상의 이유로 외부 출처의 컨텐츠를 가져오는데 제약을 둔다. 외부 사의 컨텐츠를 사용하는 중계서비스 의 특성상 이는 감수해야 할 이슈이며, 이를 회피하기 위해 외부사는 SDK를 사용하여 본 서버 와 통신을 한다.

2. iframe 을 사용하는 이유는 ?

중계서비스의 특성 상 외부 게임을 내부로 런칭 한다. 테두리에는 중계사, Portal 이 있고, 내부에 컨텐츠 웹게임이 노출되는 형태로 제공한다.

3. 부모창 측의 송수신 방법

부모창의 송수신

$(document).ready(function() {
    //addEventListener 로 자식창에서 발생하는 이벤트를 해당 function 으로 받겠다는 선언을 한다. 
    window.addEventListener('message', _receiveMessage, false);  
});

// 수신 :: 이벤트 발생시 실행시킬 callback function 을 지정한다.
    var _functions = {
        'matchedFunction' : _matchedFunction
    };
    function _receiveMessage(event) {
        var postMessageData = event.data;
        if (!postMessageData) {
            return;
        }
        var targetSrc = document.getElementById("gameIFrame").src;
        if (targetSrc === undefined || targetSrc.indexOf(event.origin) !== 0) {
            return;
        }

        var postMessageDataObject = _parseRequest(postMessageData, event.origin);

        if (!postMessageDataObject.header) {
            return;
        }

        var functionName = postMessageDataObject.header.functionType; // 호출할 function name
        _functions[functionName](postMessageDataObject); // 실행할 function
    }
    function _matchedFunction(postMessageData) {
        var ver = postMessageData.head.version;        
        $.ajax({
            url: "/sdk/" + ver,
            type: 'POST',
            data:JSON.stringify(postMessageData),
            dataType: "json",
            timeout: 5000,
            contentType: "application/json; charset=utf-8"
        }).done(function(response) {            
            document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);
        }).fail(function(err) {
            console.log(err);
        });
    }

 // 송신 :: 서버를 호출해 받은 response 를 자식 iframe 에 전송한다. 
 document.getElementById("gameIFrame").contentWindow.postMessage(response, postMessageData.body.requestOrigin);

4. 자식창측의 송수신 방법

// 우선 sdk 를 import 한다
<script src="/js/sdk/sdk.js"></script>
    // 선언
    var sdk = new SDK();
    // 송신 :: startFunction의 parameter 에 송신할 정보를 넣는다.
    // 수신 :: callbackFunction 에 수신할 정보와 처리할 방법을 넣는다.
    sdk.startFunction(document.getElementById('param1').value, callbackFunction);  
    function callbackFunction(data, err) { 
        if (!err) {
            alert(data);
        }
    };


블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

docker  를 활용한 private test net 운영

[구성]

#{ipaddr} 에 geth-contract-dev docker 구성. 

>sudo docker exec -it geth-contract-dev bash

> ./root/geth/geth-start.sh

[접속]

>geth attach rpc:http://{ipaddr:port}



'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

Solidity 정리

block-chain 2019.01.30 10:23


# Solidity 

- 동작방식

    - 트렌젝션별 각각의 스마트 컨트렉은 각자다른 state, logic 있다. binary 형태로 존재하며 EVM 의해 실행된다. 

    - tx smart contract 코드가 있으며 EVM 의해 실행된다. 해당 인자는 해당 트렌젝션에 보관된다.

    - 라인단위로 **gas** 소모 된다.

- 저장된 스마트 컨트렉은 트렌젝션을 조회 하면 모두 있다.

   - 민감정보를 쓰기에는 어려워 보인다. (개인정보, 계급별 수수료 비율 )

- EVM (Ethereum Virtual Machine)

  - 저장영역

    - storage

      - 모든 컨트렉에 있는 영역, 함수호출에 변하지 않지만 비용이 많이듬

      - 구조체, 변수 매핑타입 지역변수가 저장됨 (별도 선언 없을시)

    - memory

      - 일시적인 값을 저장, 외부함수 호출시 지워짐, 비용이 적게듬

      - 함수 인자가 저장됨 

      - 함수 내부에서만 사용할 있음 (밖에서 사용시 컴파일 에러)

    - stack

      - 지역변수 저장, 비용이 거의 안듬, 저장갯수가 한정적

      


## truffle 환경 셋팅

### truffle ? 

> 서양 송로 버섯 solidity 컴파일/배포를 쉽게 할수 있게 지원해주는 Framework

- 설치 (npm 설치 선행, mac 기준 데모)

    - https://truffleframework.com/docs/truffle/getting-started/installation

    - #npm install -g truffle


- 명령어 순서 (폴더/프로젝트 이동후)

  1. #truffle unbox metacoin

  2. #vi truffle.js [테스트넷 설정]

     - 테스트넷에 붙을 host, port, network_id 작성(수정) 한다.

     - [folder]/contracts/[some].sol solidity 파일을 작성한다.     

  3. #truffle compile  

     - ~/build/ 폴더에 컴파일된 파일이 생성된다.

  4. #truffle migrate




### **소수점을 지원하지 않는다! ** (..아직)


```

The main difference between floating point (float and double in many languages, more precisely IEEE 754 numbers) and fixed point numbers is that the number of bits used for the integer and the fractional part (the part after the decimal dot) is flexible in the former, while it is strictly defined in the latter. Generally, in floating point almost the entire space is used to represent the number, while only a small number of bits define where the decimal point is.

[파파고]

부동 소수점(많은 언어의 플로트와 더블, IEEE 754 숫자) 고정점 번호의 주요 차이점은 정수와 부분 부분 부분(십진수 뒤의 부분) 사용되는 비트의 수가 전자에서 유연하지만 후자에서 엄격히 정의된다는 것이다. 일반적으로 부동 소수점에서는 소수점 위치를 정의하는 반면, 거의 전체 공간은 숫자를 나타내기 위해 사용된다.

```




## solidity 작성


- ERC20 토큰 방식을 따른다.

  - https://theethereum.wiki/w/index.php/ERC20_Token_Standard

- 언어 특징 : 완전한 언어를 꿈꾸며 보수적으로 시작하였으나 현재 (0.5.~) 버전에서는 이것저것 붙이고 있다.

  - 처음에는 for 문도, string 자료형도 없었다.

- 작성법 

  - public private

  - function event 

  - uint uint8 uint256 address string bool byte bytes32

  - struct - 구조체 , 선언 위치에 따라서 storage, memory 할당

  - for while - 반복문 

  - require - 예외처리 ex. assert

  - mapping - key, value 이루어진 해쉬 테이블 

  - enum

  - 전송 - address

    - address 확장자로 선언된 인자에 transfer 콜해서 사용한다.

    - transfer - (send > deprecated)

    



## 사용할 있는 블록 트렌젝션  

Block and Transaction Properties

block.blockhash(uint blockNumber) returns (bytes32): hash of the given block - only works for 256 most recent blocks excluding current

block.coinbase (address): current block miner’s address

block.difficulty (uint): current block difficulty

block.gaslimit (uint): current block gaslimit

block.number (uint): current block number

block.timestamp (uint): current block timestamp as seconds since unix epoch

gasleft() returns (uint256): remaining gas

msg.data (bytes): complete calldata

msg.gas (uint): remaining gas - deprecated in version 0.4.21 and to be replaced by gasleft()

msg.sender (address): sender of the message (current call)

msg.sig (bytes4): first four bytes of the calldata (i.e. function identifier)

msg.value (uint): number of wei sent with the message

now (uint): current block timestamp (alias for block.timestamp)

tx.gasprice (uint): gas price of the transaction

tx.origin (address): sender of the transaction (full call chain)




'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

블록체인 정리

block-chain 2018.11.02 10:30

블록체인

Decentralize (탈 중앙화)

  • 각 노드에 기록, 전체를 해킹하지 않는 한 데이터의 오염이 없다.
  • 이중 지불 방지
  • 화폐 디지털 거래에 강점이 생긴다.
  • 검열 저항성 - 개인간에 자유롭게 무엇이든 거래 (판문점선언문 기록)

블록체인을 사용하는 이유

  • 데이터가 시간순으로 정렬될 필요가 있다.
  • 데이터에 대한 감시가 필요하다.
  • 중앙에서 데이터를 관리할 필요가 없다.
  • 자율관리가 필요하다.
  • 트렌젝션처리등 빠른성능이 필요한가?
  • 암호화폐나 운영토큰이 필요한가?
  • 전체 원장을 공유하고 보관
  • 화폐의 가치

가격변동성 때문에 성립할 수 없다.

1. 교환의 매계 
2. 계산단위 (x)
3. 가치의 저장 (x)

블록체인 속도

내 행동이 블록체인에 저장되기까지 얼마나 걸리는가?

현재 TPS = 최근 블록에 담긴 트렌젝션 수 / 블록생성시간

  • TPS 초당 트렌젝션 수
    • 평균대기시간 = 블록생성시간 / 2
    • 노드가 가까우면 빠를수도 있음
    • 최대 TPS (모 카드사-30만, 보통1000)
    • 현재 TPS = 최근 블록에 담긴 트렌젝션 수 / 블록생성시간
    • 신형 코인은 설계상 빨라도 1이하인 경우가 많음 (적어서, 아무도 안캐서)
    • TPS처리속도가 높아도 생성시간이 길어진다면 트렌젝션이 블록체인에 저장되는데 까지 걸리는 시간은 더 길다
  • 블록 생성 시간
  • 확정 시간 (Confirm)
    • 최신 블록에 포함 되었더라도 안전하게 저장되었다고 확신할 수 없음
      • 메이저 포크에 있다는걸 확신할 수 없음
    • 자체적으로 정한 횟수 만큼 컨펌을 기다림
    • 컨펌이 된다면 트렌젝션이 무효화 되는 일이 없을것이라 가정
    • 최종확정시간 = N(신뢰도수) * 블록생성 시간 (5초라 치면 6번컨펌은 30초)
    • ex. ETH > 25 , 비트코인 > 6
    • 컨펌타임을 기다리지 않고 내부에서 정한 다른 정책을 적용함
      • ex.아이콘 = 2초이내여야함 (기존기술은 사용못함.)

#코인의 종류

지불형 유틸리티 자산형

  1. Cryptocurrencies : P2P거래를 위한 토큰
  2. Platforms : 이더리움과 같이 Dapp 혹은 Middleware 구현
  3. Utility Tokens : Augur 같이 서비스가 운영되기 위해 필요한 토큰
  4. Security Tokens : 증권과 같이 가치상승을 하는 토큰
  5. Natural Asset Tokens : 원유, 광물 등 천연자산에 대한 소유를 증명하는 토큰
  6. Crypto Collectibles : Cryptokitties 와 같이 수집활동을 위해 발행된 토큰
  7. Crypto Fiat Currencies And Stablecoins : 가격을 안정적으로 유지하기위해 발행된 토큰. 지정된 가격을 안정적 유지
  • public 퍼블릭 코인

    • 모두에게 정보를 공개
    • 가장 광범위하게 채택
    • 암호화폐가 필수적 (사용자의 참여를 유도-인센티브)
    • POW(작업증명) 방식은 전기가 많이 들어 POS(지분증명) 방식으로 변경을 고려
    • 민주적 의사결정이 필요하기 때문에 합의실패시 하드포크를 초래함.
  • private 프라이빗 코인

    • 특정 참여자들만 공유
    • 참여자간 식별 가능, 특화된 데이터 공유
    • ex. 나스탁 Linq
    • 단순 분산형 DB 와 같다고 보는 시각
  • consortium 컨소시엄 코인

    • 퍼블릭과 프라이빗의 중간형태
    • 미리 선정된 노드들이 권한을 가짐
    • 속도를 개선

스테이블 코인 Stable Coin

값이 바뀌지 않는 코인, 현재 있는 가치에 연동 시킨다 (금 등)

  • 거래소의 지원을 받기 위한 최적의 암호화폐 : 가격 안정성, 확정성, 탈 중앙화 (ex.비트코인,이더리움)
  • 대표적: 메이커 다오, 헤븐, 베이스코인(1달러), Tether 테더(1달러)
  • 종류
    1. 법정화폐담보 - Tether TrueUSD
    2. 암호자산담보 - BitShares Maker
    3. 무담보 - Basecoin Kowala
    4. 스테이블 코인 - STATICOIN
  • 단점
    • 중앙화가 되어있다. 개인간 결제를 위해 태어난 시스템의 철학에 위배된다.
    • 투명성이 적다.
    • 탈중앙화가 되어 있지 않아 리스크가 존재한다. (해킹공격에 부분적으로 취약하다.)

비트코인

만든사람 - 사토시 나가모토 (추정)

  • 스마트계약이 없다.
    • 비트코인에도 스마트 계약 기능이 있다. (컬러드코인) > 하지만 성공하지 못함
    • 스마트 계약을 넣어 보안만 약해졌다고 주장.
  • 발행량 2100만개

Genesis Block - 가장 처음에 생성된 블록

기원 발생, 창세기 , 2009-01-03 18:15:05 생성

  • hashed 결과 값을 맞춘다.
  • 2100만개까지 가능, 2150년 고갈 예상
    • 블록해쉬 (이 해쉬가 블록을 대표하는 번호)
    • 코인생성 : 신규블록 생성 (50BTC)
    • 코인을 받을 주소

이더리움

만든사람 - 비탈릭 부테린

Smart Contract

화폐지만 계약의 기능 - 플랫폼화

조건을 달아놓으면 계약이 체결된다.

  • 토큰 - ERC-20
  • White paper - 백서 어떤일을 하겠다. 라고 기록, 선언
  • Consensus 알고리즘 - 합의 알고리즘

White paper

  • 30장 내외
  • 왜 이걸하는지, 어떤 서비스를 하는지, 철학 내용 등
  • 사업계획서, 투자요청서 개념
  • 팀 멤버, 관계사 등

Consensus Algorithm

  • 트렌젝션이 일어나는 드는 속도
  • 커뮤니티 의사결정이 일어나는 속도
  • 채굴 방식에 대한 언급

채굴

POW 에서의 W (작업)

암호/문제를 푸는 행위

  • 비트메인 우지한
  • 채굴용 머신을 도입
  • 채굴에 대한 큰 영향력을 행사하자 이를 무력화하는 기술을 [segwit]을 도입했다.
  • 우지한은 이에 반발하여 비트코인을 [hard fork] 하여 [비트코인 캐쉬]를 만들었다.

Proof Of Work (작업 증명, 지분 증명)

-  암호를 맞추는 행위
-  모든 노드에 확인을 받는다.
    - Proof Of Stake - 지분을 많이 가진 사람에 대한 작업 증명
    - Deligate POS - 위임된 작업증명 , 충분히 증명된 사람에게 증명을 받는다.        
        = 충분히 증명된 - 투표하여 뽑는다.
        = [스팀잇] 의 경우가 여기에 해당한다.

IPO / ICO

Initial Public Offer 
Initial Coin Offering

블록체인 플랫폼이나 Dapp 들이 Fund rasing 방식으로 내부에 유통될 Token 을 공개/비공개로 발행하면서 구현에 필요한 자금을 모집하는 방식

  • 대중에게 살 수 있는 기회를 제공한다.

  • 토큰을 어떻게 지급하는지, 사용하는지 에 대한 설명

  • 사용자에게 보상이 어떻게 지급되는지

  • 부가가치가 어떻게 생성되는지, 어떻게 지급하는지

  • ex.TTC 광고+코인채굴에 의한 보상

  • 보통 50% 25% 정도만 판다.

  • 전체량 퍼센테이지

    • (토큰세일 > 리워드풀 > 재단 > 에코시스템 > 핵심인원 어드바이저 > 현유저 및 바운티 프로그램)
  • 초기유저들에게 많은 보상을 준다.

  • 홈페이지구성

    • TTC Hardcap, 총량, 비율 공개, 누적 연간 월간 발행량 공개
    • 어떠한 코어기술을 가지고 있는지
    • 블록체인 도구
  • 생태계를 구축, Dapp 과 ICO와 Token 을 구성한다. 토큰 이코노미를 구축한다.

Reverse ICO

  • 서비스를 가진 상황에서 블록체인 생태계 활성화를 위해서 블록체인 코인을 발행

  • ex. 텔레그램

    • 보안이 확실하다. 블록체인의 철학과 유사하다.
  • 온/오프라인에 영향을 미칠수 있는가를 가늠

  • 신뢰성이 보장 되어야 한다. (기술성)

  • 주주의 목적과 방향성이 맞지 않을 수도 있다.

Dapp

ideation > whitepaper > Token sales > Dapp release Decentralized Application 탈중앙화 어플리케이션

  • 블록체인을 사용한 데이터 저장, 암호 화폐/토큰 발행
  • 게임, 브라우져 등 (크립토 키티)
  • 처리속도, 저장용량등 문제가 있다.

Token Economics

서비스 안에 비지니스 모델을 만들어 사용자가 상호작용할수 있는 권한을 부여

  • 모든 사용자가 보상과 혜택을 받을 수 있는 가치 생성
  • 협동조합 조합원과 유사한 개념과 경제 단체

Blockchain Token Ecosystem Map

코인을 타입별로 분리하여 Map을 그려놓음.

IFO (Initial free offering)

무료 코인 발행, 토큰 장점 유지, 단기 자금조달 부담 감소

  • IFO 를 통한 부담을 낮춰 초기 사용자 인입
  • ICO - 돈을 받아 발행하는건 미래의 자금을 땡겨오기 때문에 피해를 발생 시킬 수 있다.
  • 서비스 유지 확률을 높여준다.

Smart Contract

  • 비탈린 부테린 이 비트코인을 fork - 복사 하여 Smart Contract 를 넣었다. (다른 노선을 걸었다.)

  • 계약에 대한 조건을 명시하여 공인/공증 , 중간 계약자가 필요 없는 생태계를 만들었다.

  • gas - 비트코인 스크립트를 수행할때 드는 수수료

  • 비트코인 스크립트

    • 반복문 사용 불가 [무한루프]
    • 잔고 이외 다른 정보를 관리 못함.
  • 각 라인을 수행할때 마다 수수료(gas) 를 발생시켜, 네트워크 상 수수료 한계를 두어 무한루프를 막았다.

fork / segwit

fork : 거래장부를 똑같이 복사하는 행위

비트코인 광풍에 물리적 한계(속도문제 등)를 해결하기 위해 등장

hard fork

  • 그 당시의 스냅샷을 찍어 기존의 향로와는 다른 길을 간다.
  • 비트코인은 여러번 발생했다.
  • 이더리움의 경우 해킹이 발생했을때 수행했다. (이더리움 클래식)

soft fork

  • 문제가 발생한것을 해결한후 기존의 향로로 다시 복귀 한다.
  • 버전의 소숫점이 바뀌는 것 정도

segwit (Segregated Witness)

  • 증인 분리
  • Malleability 문제 해결 (가단성) -단조/가공에 적합한 재료의 성질
  • 이해관계, 기술적 발전을 위해 발생
  • 개선을 위한 것

DAO

  • Decentralized Autonomous Organiztion 탈중앙화 자율조직
  • 투표할 수 있게 만들었다.

이더리움 클래식

  • 스마트 컨트랙 스크립트의 논리적 오류로 인해 탈취가 발생하자, 다시한번 하드포크하여 롤백 하였다. 하지만 논리적 오류또한 수용한 것이 이더리움 클래식 이다.

AirDrop

코인을 나눠줌.

  • 유저의 계좌로 넣어준다.
  • 이오스 댄나니퍼 (스팀잇)
    • 이오스는 생태계를 구축한 상태
    • 플랫폼을 이더리움 쪽에서 이오스쪽으로 오면 이오스를 Airdrop 해 준다고 꼬심
    • 이오스를 가지고 있는 사람에게 이오스위에 올라가 있는 DApp의 코인도 준다.
      • 이오스만 가진 사람들이 이오스의 부가가치를 올려주는 코인도 있으니 좀더 충성도가 높아짐
      • [아직 주진 않음.]
  • 부가가치, 경제적 효과를 높여주는 효과가 생긴다.
  • 생태계를 구축 할 수 있게 해준다.

개인키/공개키, 블룸필터, 머클트리 등의 알고리즘

메인넷

독립 생태계를 갖추게 되는것

  • 블록체인 생태개 절차를 거친 후 (백서, 채굴, ICO 등 거래소 상장)
  • 지갑 주소가 나오고, 거래가 가능하게 되는것 .
  • ERC-20 토큰 형태로 거래가 가능하게 되고, 거래소 상장을 하고,

ERC-20 - Ethereum Request for Comment 20

이더리움 코인 네트워크에서 발행하는 코인의 표준 2015년 개발 . ICO 토큰의 가장 기본적인 룰

  • 토큰 거래 규약

KYC (Know Your Customer)

적격투자자가 맞는지 검증 하는 절차 
불법적인 자금 여부 판단(도박/마약 등) 
여권 등 정보로 검증 (미국여권은 안됨) 

Utility Token 유틸리티 토큰

소유권에 대한 증명, 앱 토큰 유저 토큰

  • 시큐리티 토큰에 속한다.
  • 사용자에게 서비스의 제품이나 상품에 대한 권리를 준다.
  • ex상품.콘도 회원권, 골프장 회원권
  • 상품의 사용성을 높인다. 국가의 장려/비지니스 입각한 장려 중 (긍정적인 효과)

Equity Tokens 애쿼티 토큰

  • 시큐리티 토큰에 속한다.
  • 회사의 주식을 보유한것과 같은 효과

스캠

암호화폐 사기 ICO

  • 필요성이 있는 코인인가?를 검토 (블록체인이 적용되야 하는가?)
  • 실현 가능성을 검토하자.
  • 커뮤니티가 활성화 되어있는가

바운티 프로그램 bounty program (보상금)

페이스북의 제한적 광고에 반발하여 나타난 홍보 수단

원래 온라인 게이밍 플랫폼 개발 참여, 도움 시 대가로 주는 보상금

  • ICO 를 집행하기전에 많은 사람의 관심을 유도하기 위한 것.
  • 미래 가치를 보고 코인을 지급. 성공 보수 수단. 수익 배분 프로그램 (옵션 같은 느낌)
  • 커뮤니티 정보 제공자 에게 게시물의 참여자 정도에 따라 보상금 조정

DEX (Decentralized Exchange)

분산화된 거래소 - 코인의 모든 입출금은 블록체인에서만 이루어지면 된다.

  • 거래소가 제공하는 토큰화된 내부지갑이 아닌 블로게인 상에서 직접접속하는 개인지갑에서 바로 거래하게 해줌.
  • 인큐베이팅 단계, 활성화 된것 BaterDEX

핫월렛/콜드월렛 Hot Wallet/ Cold Wallet

핫 월렛 : 인터넷이 연결된 지갑 

  • 가동되고 있는 지갑
  • 인터넷에 연결되어 거래정보를 주거나 이체할수 있는 상태

콜드 월렛: 인터넷이 연결되지 않은 지갑

  • 필요할때 인터넷을 연결하는게 아니라 완전히 단절되어 연결하지 않음
  • 거래 발생 시 핫월렛에 넘겨줘서 온라인상에 뿌려야함.
  • 오프라인 전송 : 전송할것을 오프라인상으로 만듬 (파일 > USB), 전송 또는 트렌젝션 발행


'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

블록체인
===
## Decentralize (탈 중앙화)
- 각 노드에 기록, 전체를 해킹하지 않는 한 데이터의 오염이 없다.
- 이중 지불 방지
- 화폐 디지털 거래에 강점이 생긴다.

## 블록체인을 사용하는 이유
- 데이터가 시간순으로 정렬될 필요가 있다.
- 데이터에 대한 감시가 필요하다.
- 중앙에서 데이터를 관리할 필요가 없다.
- 자율관리가 필요하다.
- 트렌젝션처리등 빠른성능이 필요한가?
- 암호화폐나 운영토큰이 필요한가?


# 비트코인
만든사람 - 사토시 나가모토 (추정)

## Genesis Block - 가장 처음에 생성된 블록
>기원 발생, 창세기 , 2009-01-03 18:15:05 생성
- hashed 결과 값을 맞춘다.
- 2100만개까지 가능, 2150년 고갈 예상
- 블록해쉬 (이 해쉬가 블록을 대표하는 번호)
- 코인생성 : 신규블록 생성 (50BTC)
- 코인을 받을 주소


# 이더리움
만든사람 - 비탈릭 부테린


## Smart Contract
> 화폐지만 계약의 기능 - 플랫폼화
>> 조건을 달아놓으면 계약이 체결된다.
- 토큰 - ERC-20
- White paper - *백서* 어떤일을 하겠다. 라고 기록, 선언
- Consensus 알고리즘 - 합의 알고리즘

## White paper
- 30장 내외
- 왜 이걸하는지, 어떤 서비스를 하는지, 철학 내용 등
- 사업계획서, 투자요청서 개념
- 팀 멤버, 관계사 등


## Consensus Algorithm
- 트렌젝션이 일어나는 드는 속도
- 커뮤니티 의사결정이 일어나는 속도
- 채굴 방식에 대한 언급

### 채굴
>POW 에서의 W (작업)
>>암호/문제를 푸는 행위
- 비트메인 우지한
- 채굴용 머신을 도입
- 채굴에 대한 큰 영향력을 행사하자 이를 무력화하는 기술을 [segwit]을 도입했다.
- 우지한은 이에 반발하여 비트코인을 [hard fork] 하여 [비트코인 캐쉬]를 만들었다.



## Proof Of Work (작업 증명, 지분 증명)
- 암호를 맞추는 행위
- 모든 노드에 확인을 받는다.
- Proof Of Stake - 지분을 많이 가진 사람에 대한 작업 증명
- Deligate POS - 위임된 작업증명 , 충분히 증명된 사람에게 증명을 받는다.
= 충분히 증명된 - 투표하여 뽑는다.
= [스팀잇] 의 경우가 여기에 해당한다.
# IPO / ICO
> Initial Public Offer <br/>
> Initial Coin Offering
- 대중에게 살 수 있는 기회를 제공한다.
- 토큰을 어떻게 지급하는지, 사용하는지 에 대한 설명
- 사용자에게 보상이 어떻게 지급되는지
- 부가가치가 어떻게 생성되는지, 어떻게 지급하는지
- ex.TTC 광고+코인채굴에 의한 보상
- 보통 50% 25% 정도만 판다.
- 전체량 퍼센테이지
- (토큰세일 > 리워드풀 > 재단 > 에코시스템 > 핵심인원 어드바이저 > 현유저 및 바운티 프로그램)
- 초기유저들에게 많은 보상을 준다.

- 홈페이지구성
- TTC Hardcap, 총량, 비율 공개, 누적 연간 월간 발행량 공개
- 어떠한 코어기술을 가지고 있는지
- 블록체인 도구

## Reverse ICO
- 서비스를 가진 상황에서 블록체인 생태계 활성화를 위해서 블록체인 코인을 발행
- ex. *텔레그램*
- 보안이 확실하다. 블록체인의 철학과 유사하다.
- 온/오프라인에 영향을 미칠수 있는가를 가늠
- 신뢰성이 보장 되어야 한다. (기술성)
- 주주의 목적과 방향성이 맞지 않을 수도 있다.


## Smart Contract
- *비탈린 부테린* 이 비트코인을 fork - 복사 하여 Smart Contract 를 넣었다. (다른 노선을 걸었다.)

- 계약에 대한 *조건*을 명시하여 *공인/공증* , *중간 계약자*가 필요 없는 생태계를 만들었다.
- *gas* - 비트코인 스크립트를 수행할때 드는 수수료

- 비트코인 스크립트
- 반복문 사용 불가 [무한루프]
- 잔고 이외 다른 정보를 관리 못함.
- 각 라인을 수행할때 마다 수수료(gas) 를 발생시켜, 네트워크 상 수수료 한계를 두어 무한루프를 막았다.

## fork / segwit
> fork : 거래장부를 똑같이 복사하는 행위
>> 비트코인 광풍에 물리적 한계(속도문제 등)를 해결하기 위해 등장
#### hard fork
- 그 당시의 스냅샷을 찍어 기존의 향로와는 다른 길을 간다.
- 비트코인은 여러번 발생했다.
- 이더리움의 경우 해킹이 발생했을때 수행했다. (이더리움 클래식)
#### soft fork
- 문제가 발생한것을 해결한후 기존의 향로로 다시 복귀 한다.
- 버전의 소숫점이 바뀌는 것 정도

#### segwit (Segregated Witness)
- 증인 분리
- Malleability 문제 해결 (가단성) -단조/가공에 적합한 재료의 성질
- 이해관계, 기술적 발전을 위해 발생
- 개선을 위한 것



### DAO
- Decentralized Autonomous Organiztion 탈중앙화 자율조직
- 투표할 수 있게 만들었다.




#### 이더리움 클래식
- 스마트 컨트랙 스크립트의 논리적 오류로 인해 탈취가 발생하자, 다시한번 하드포크하여 롤백 하였다. 하지만 논리적 오류또한 수용한 것이 이더리움 클래식 이다.



### DApp
> Decentralized Application 탈중앙화 어플리케이션
- 블록체인을 사용한 데이터 저장, 암호 화폐/토큰 발행
- 게임, 브라우져 등

### AirDrop
> 코인을 나눠줌.
- 유저의 계좌로 넣어준다.
- 이오스 댄나니퍼 (스팀잇)
- 이오스는 생태계를 구축한 상태
- 플랫폼을 이더리움 쪽에서 이오스쪽으로 오면 이오스를 Airdrop 해 준다고 꼬심
- 이오스를 가지고 있는 사람에게 이오스위에 올라가 있는 DApp의 코인도 준다.
- 이오스만 가진 사람들이 이오스의 부가가치를 올려주는 코인도 있으니 좀더 충성도가 높아짐
- [아직 주진 않음.]
- 부가가치, 경제적 효과를 높여주는 효과가 생긴다.
- 생태계를 구축 할 수 있게 해준다.


개인키/공개키, 블룸필터, 머클트리 등의 알고리즘

## 메인넷
> 독립 생태계를 갖추게 되는것
- 블록체인 생태개 절차를 거친 후 (백서, 채굴, ICO 등 거래소 상장)
- 지갑 주소가 나오고, 거래가 가능하게 되는것 .
- ERC-20 토큰 형태로 거래가 가능하게 되고, 거래소 상장을 하고,

### ERC-20 - Ethereum Request for Comment 20
> 이더리움 코인 네트워크에서 발행하는 코인의 표준
> 2015년 개발 . ICO 토큰의 가장 기본적인 룰
- 토큰 거래 규약



#### KYC (Know Your Customer)
> 적격투자자가 맞는지 검증 하는 절차 <br/>
> 불법적인 자금 여부 판단(도박/마약 등) <br/>
> 여권 등 정보로 검증 (미국여권은 안됨) <br/>

#### Utility Token 유틸리티 토큰
>소유권에 대한 증명, 앱 토큰 유저 토큰
- 시큐리티 토큰에 속한다.
- 사용자에게 서비스의 제품이나 상품에 대한 권리를 준다.
- ex상품.콘도 회원권, 골프장 회원권
- 상품의 사용성을 높인다. 국가의 장려/비지니스 입각한 장려 중 (긍정적인 효과)
#### Equity Tokens 애쿼티 토큰
- 시큐리티 토큰에 속한다.
- 회사의 주식을 보유한것과 같은 효과

### 스캠
> 암호화폐 사기 ICO
- 필요성이 있는 코인인가?를 검토 (블록체인이 적용되야 하는가?)
- 실현 가능성을 검토하자.
- 커뮤니티가 활성화 되어있는가



'block-chain' 카테고리의 다른 글

eth 환경에서 smart contract 를 올려보자 truffle 셋팅, upload  (0) 2019.04.02
docker 를 활용한 private test net 운영  (0) 2019.02.21
Solidity 정리  (0) 2019.01.30
블록체인 정리  (0) 2018.11.02
블록체인 용어 정리  (0) 2018.10.26
블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.

function setUrlToParam(param, name) {
var url = window.location.href;
url = url.replace('#', '');
if (url.indexOf('?') > 0) {
window.location.href = url.slice(0, url.indexOf('?')) + '?'+ name + '=' + param;
} else {
window.location.href = url + '?'+ name + '=' + param;
}
}


url parameter 를 줌

블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.


커맨드 창을 열어 netstat -nao | findstr [열린포트] 

확인 후 리소스 모니터 를 열어 해당 포트를 쓰고있는 프로세스를 강제 종료 처리한다.

블로그 이미지

기계새

Java, Spring, iBatis, Maven, eclipse 개발관련 잡다한 메모공간입니다.