Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: translate ko/spec/ics-005-port-allocation/README.md #23

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
49 changes: 49 additions & 0 deletions ko/ECOSYSTEM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## 인터블록체인(Interblockchain) 통신 규약 생태계

### 핸들러(Handler) 구현

사양에 정의된 표준 IBC 프로토콜 및 핸들러의 구현입니다.

각 클라이언트 언어로 작성된 블록체인과의 통합에 적합합니다.

상태 | 언어 | 개발팀 | 링크
--- | --- | --- | ---
알파 버전 | Golang | [All in Bits](https://tendermint.com) | [이슈 트래킹](https://github.com/cosmos/ics/issues/145), [소스 코드](https://github.com/cosmos/cosmos-sdk/pull/4548)
예정 | Rust | [Interchain Foundation](https://interchain.io) | 미정
예정 | Haskell | [Kadena](https://kadena.io) | 미정
예정 | Javascript | [Agoric](https://agoric.com) | 미정
예정 | Rust | [CodeChain](https://codechain.io) | [소스 코드](https://github.com/CodeChain-io/codechain)

### 브릿지(Bridges)

IBC 프로토콜과 깔끔하게 통합된 특별한 브릿지입니다.

상태 | 블록체인 | 개발팀 | 링크
--- | --- | --- | ---
알파 버전 | Bitcoin | [Nomic](https://nomic.io) | [소스 코드](https://github.com/nomic-io/bitcoin-peg)
알파 버전 | Ethereum | [Swish Labs](http://www.swishlabs.com/) | [소스 코드](https://github.com/swishlabsco/peggy)
예정 | Substrate | [SpeckleOS](https://www.speckleos.io/) | 미정

### Relayers

독립된 프로세스 또는 지갑에 통합된 relayer 구현체입니다.

(추가 예정)

### 원장(Ledgers)

IBC를 사용하는 운영 분산 원장입니다.

(추가 예정)

### 어플리케이션(Applications)

IBC를 이용하는 탈중앙화 어플리케이션입니다.

(추가 예정)

### 탐색기(Explorers)

IBC 트랜잭션을 분석하고 추적할 수 있는 블록 탐색기입니다.

(추가 예정)
155 changes: 155 additions & 0 deletions ko/ibc/1_IBC_TERMINOLOGY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# 3 : IBC 용어

**IBC 사양에서 사용되는 용어에 대한 개요입니다.**

**아키텍처 개요는 [여기를](./2_IBC_ARCHITECTURE.md) 참조 하십시오.**

**광범위한 프로토콜 설계 원칙은 [여기를](./3_IBC_DESIGN_PRINCIPLES.md) 참조 하십시오.**

**사용 사례는 [여기를](./4_IBC_USECASES.md) 참조 하십시오.**

**디자인 패턴에 대한 설명은 [여기를](./5_IBC_DESIGN_PATTERNS.md) 참조 하십시오.**

이 문서는 IBC 사양 전체에서 사용되는 핵심 용어에 대한 한국어 정의를 제공합니다.

## Abstraction definitions

### 액터(Actor)

*액터* 또는 *사용자* (교환 가능하게 사용)는 IBC 프로토콜과 상호 작용하는 엔티티입니다. 액터는 일반 사용자, 블록 체인에서 실행되는 모듈 또는 스마트 컨트랙트 또는 트랜잭션에 서명 할 수있는 오프 체인 relayer 프로세스 일 수 있습니다.

### 머신(Machine) / 체인(Chain) / 원장(Ledger)

*머신*, *체인*, *블록체인* 또는 *원장* (상호 교환하여 사용가능)은 IBC 사양의 일부 또는 전부를 구현하는 상태 머신 (분산 원장 또는 "블록 체인"일 수 있지만 엄격하게 블록이 체인으로 연결된 형태를 필요로 하지 않을 수도 있음)입니다.

### 중계(Relayer) 프로세스

*중계 프로세스* 는 블록체인의 상태를 스캔하고 트랜잭션을 제출하여 둘 이상의 블록체인간에 IBC 패킷 데이터 및 메타 데이터를 전달하는 오프 체인 프로세스입니다.

### 상태 머신

특정 체인의 *상태 머신* 은 상태의 구조 뿐만 아니라 체인의 합의 알고리즘에 의해 합의 된 현재 상태를 기반으로 상태 전환(state-transitions)을 유발하는 유효한 트랜잭션을 결정하는 규칙 세트도 정의합니다.

### 합의

*합의* 알고리즘은 분산 원장을 운영하는 일련의 프로세스가 일반적으로 제한된 수의 비잔틴 결함이있는 상태에서도 동일한 상태로 합의하기 위해 사용되는 프로토콜입니다.

### 합의 상태

*합의 상태* 는 해당 합의 알고리즘의 결과에 관하여 증명하는데 필요한 합의 알고리즘의 상태에 대한 정보 집합입니다.

### Commitment

*A cryptographic commitment* 는 매핑에서 키/값 쌍의 멤버 자격 또는 비 멤버쉽을 저렴하게 확인하는 방법으로, 짧은 감시 문자열로 매핑을 커밋 할 수 있습니다.

### 헤더

*헤더* 는 "가벼운 클라이언트" 알고리즘에 의해 잘 정의 된 방식으로 검증 될 수 있는 현재 상태에 대한 약속을 포함하여 특정 블록 체인의 합의 상태에 대한 업데이트입니다.

### CommitmentProof

*CommitmentProof* 은 특정 키가 기록 대상 세트의 특정 값에 맵핑되는지 여부를 증명하는 증명 구조입니다.

### 핸들러 모듈

[ICS 25](../spec/ics-025-handler-module)를 구현한 IBC *핸들러 모듈* 은 클라이언트, 커넥션 및 채널을 관리하고, 증명을 확인하고, 패킷에 대한 적절한 기록을 저장하는 상태 머신 내의 {em1}모듈{/em1} 입니다.

### 라우팅 모듈

[ICS 26](../spec/ics-026-routing-module)를 구현한 IBC *라우팅 모듈* 은 상태 머신 내의 모듈로서, 라우팅 모듈의 외부 인터페이스를 이용하는 호스트 상태 머신상의 핸들러 모듈과 다른 모듈 사이에서 패킷을 라우팅 합니다.

### 데이터 그램

*데이터 그램* 은 일부 물리적 네트워크를 통해 전송되는 바이트 스트링이며 원장의 상태 시스템에서 구현 된 IBC 라우팅 모듈에 의해 처리됩니다. 일부 구현들에서, 데이터 그램은 다른 정보 (예를 들어, 스팸 방지 비용, 재생 공격(replay attack) 방지를 위한 논스, IBC 핸들러로 라우팅하기위한 타입 식별자 등)를 포함하는 특정 원장의 트랜잭션 또는 메시지 데이터 구조의 필드 일 수 있습니다. 모든 IBC의 하위 프로토콜 (예: 커넥션(Connection) 열기, 채널 만들기, 패킷 보내기)은 라우팅 모듈을 통해 들어온 데이터를 처리하기 위한 데이터 그램 및 프로토콜 세트로 정의됩니다.

### 커넥션(Connection)

*커넥션(Connection)* 은 다른 원장의 합의 상태에 대한 정보를 포함하는 두 체인의 영구 데이터 구조의 집합입니다. 한 체인의 합의 상태를 업데이트하면 다른 체인의 커넥션(Connection) 상태가 변경됩니다.

### 채널

*채널* 은 패킷 순서 지정, exactly-once delivery 및 재생 방지를 용이하게하기 위해 메타 데이터를 포함하는 두 체인의 영구 데이터 구조 세트입니다. 채널을 통해 전송 된 패킷은 내부 상태를 변경합니다. 채널은 다-대-일 관계의 커넥션(Connection)과 연관되어 있습니다. 단일 커넥션은 여러 개의 연관된 채널을 가질 수 있으며 모든 채널은 하나의 연관된 커넥션(Connection)을 가져야하며 이는 채널을 생성하기 전에 생성해야합니다.

### 패킷

*패킷* 은 순서 관련 메타 데이터 (IBC 사양에 의해 정의 됨) 및 패킷 *데이터* 라고 하는 오파크(opaque) 필드(응용 프로그램 계층에 의해 정의 된 의미, 예를 들어 토큰 양 및 명칭)를 갖는 특정 데이터 구조입니다. 패킷은 특정 채널(좀 더 확장하여 설명하면 특정 커넥션)을 통해 전송됩니다.

### 모듈

*모듈* 은 특정 블록 체인의 상태 머신의 하위 구성 요소로, IBC 핸들러와 상호 작용하고 전송하거나 받는 특정 IBC 패킷의 *데이터* 필드에 따라 상태를 변경 시킬 수 있습니다 (예: 토큰 발행 혹은 소각).

### 핸드셰이크(Handshake)

*핸드 셰이크* 는 여러 데이터 그램(Datagram)을 포함하는 특정 하위 프로토콜로, 일반적으로 두 개의 관련된 체인에서 서로의 합의 알고리즘에 대해 신뢰 할 수 있는 상태와 같은 일부 공통 상태를 초기화하는 데 사용됩니다.

### 하위 프로토콜

하위 프로토콜은 블록 체인을 구현하는 IBC 핸들러 모듈에 의해 구현되어야하는 데이터 그램 종류 및 함수 세트로 정의됩니다.

데이터 그램은 외부 relayer 프로세스에 의해 체인간에 중계 되어야 합니다. 이 relayer 프로세스는 임의의 방식으로 작동한다고 가정합니다.
프로세스는 일반적으로 적어도 하나의 올바른 relayer 프로세스에 의존하지만, 어떠한 안전 특성도 그 동작에 의존하지 않습니다

IBC 하위 프로토콜은 두 체인 `A` 와 `B` 간의 상호 작용으로 추론됩니다. 이 두 체인 간에는 사전에 구별이 없으며 동일한 IBC 프로토콜을 실행하는 것으로 간주됩니다. `A` 는 단순히 하위 프로토콜에서 첫 번째 체인이고 `B` 는 두 번째 체인입니다. 프로토콜 정의는 일반적으로 혼동을 피하기 위해 변수 이름에 `A` 와 `B` 를 포함하지 않아야합니다 (체인 자체가 프로토콜에서 `A` 인지 `B` 인지 알 수 없기 때문에).

### 인증

*인증* 은 실제로 데이터 그램이 IBC 핸들러에 의해 정의 된 방식으로 특정 체인에 의해 전송되도록하는 속성입니다.

## 속성 정의

### 완결성

*완결성* 은 validator 집합의 동작에 대한 특정 가정에 따라 특정 블록이 되돌리지 않을 것이라는 합의 알고리즘에 의해 제공되는 수량화 가능한 보증입니다. IBC 프로토콜은 절대적일 필요는 없지만 완결성을 요구합니다. (예를 들어, Nakamoto 합의 알고리즘의 임계값 완결성 장치는 채굴자의 행동 방식에 대한 경제적인 가정에 따라 완결성을 제공합니다.)

### 오작동

*오작동* 은 합의 알고리즘에 의해 정의되고 해당 합의 알고리즘의 라이트 클라이언트가 감지 할 수있는 합의 오류의 유형 입니다.

### Equivocation

*Equivocation* 은 유효하지 않은 방식으로 여러 개의 다른 후속 작업에 대한 투표를 단일 블록에 서명하는 validator가 저지른 특정 합의 오류의 유형입니다.
모든 Equivocation은 오작동 입니다.

### 데이터 가용성

*데이터 가용성* 은 일정 기간 내에 machine의 상태에서 데이터를 조회할 수 있는 오프 체인 replayer 프로세스 기능입니다.

### 데이터 기밀성

*데이터 기밀성* 은 호스트 상태 머신이 IBC 프로토콜의 기능을 손상시키지 않으면서 특정 당사자가 특정 데이터를 사용할 수 없도록 거부하는 특성입니다.

### 부인 방지

*부인 방지* 는 machine이 특정 패킷을 보냈거나 특정 상태를 커밋 한 것에 대해 이의를 제기 할 수없는 능력입니다. IBC는 부인 할 수 없는 프로토콜이며, 모듈로 데이터 기밀성 선택은 상태머신에서 선택됩니다.

### 합의 liveness

*합의 liveness* 는 특정 머신의 합의 알고리즘에 의한 블록 생성의 연속성입니다.

### Transactional liveness

*Transactional liveness* 는 특정 머신의 합의 알고리즘에 의해 들어오는 트랜잭션 (컨텍스트에 의해 명확해야 함)을 지속적으로 확인하는 것입니다. Transactional liveness는 합의 liveness 가 필요하지만, 합의 liveness가 반드시 Transactional liveness를 제공하지는 않습니다. Transactional liveness는 검열 저항을 의미합니다.

### Bounded consensus liveness

*Bounded consensus liveness* 는 특정 바운드 내의 Consensus liveness 입니다.

### Bounded consensus liveness

*Bounded consensus liveness* 는 특정 범위 내에서 Transactional liveness 입니다.

### Exactly-once safety

*Exactly-once safety*는 패킷이 한 번 이상 확인되지 않는 속성입니다(그리고 일반적으로 Exactly-once란 결국 Transactional liveness을 가정합니다).

### 전송 또는 시간 제한 안전성

*전송 또는 시간 제한 안전성* 은 패킷이 전송 및 실행되거나 발신자에게 입증 될 수있는 방식으로 시간이 초과되는 속성입니다.

### 상수 (복잡도에 대해)

공간 또는 시간 복잡도를 언급 할 때 *상수* 는 `O(1)` 의미합니다.

### Succinct

공간 또는 시간 복잡도를 언급 할 때 *Succinct* 는 `O(log n)` 이상을 의미합니다.
Loading