# 작동 방식

## **오픈 소스 스택**

우리는 보안 하드웨어를 중심으로 현대 블록체인 스택을 재구성하고 있습니다. 주요 구성 요소는 다음과 같습니다:

* **언어**: [Solidity](https://github.com/ethereum/solidity)의 포크. 우리는 `stype`을 추가했습니다.
* **실행 클라이언트**: [Reth](https://github.com/paradigmxyz/reth), [REVM](https://github.com/bluealloy/revm), [Alloy](https://github.com/alloy-rs/alloy)의 포크. 우리는 암호화된 스토리지와 관련된 OPCODE를 추가했습니다.
* **합의 미들웨어**: [**Omni**](https://github.com/omni-network/omni/tree/main/octane). 기존 솔루션을 그대로 사용했습니다.
* **합의 클라이언트**: [**CometBFT**](https://github.com/cometbft/cometbft). 기존 솔루션을 그대로 사용했습니다.
* **보안 하드웨어 빌드**: Flashbots의 [Yocto](https://github.com/flashbots/yocto-manifests) manifest 포크. 우리는 프록시를 추가했습니다.
* **테스트 프레임워크**: [Foundry](https://github.com/foundry-rs/foundry)의 포크. 우리는 암호화된 스토리지와 관련 OPCODE를 추가했습니다.
* **지갑 클라이언트**: [**Viem**](https://github.com/wevm/viem)**의 확장 버전**. 우리는 트랜잭션 유형을 추가했습니다.

우리의 스택 중 **99%는 오픈 소스 커뮤니티에서 개발된 코드**입니다. 우리는 이러한 표준을 유지하고 있으며, [**모든 저장소**](https://github.com/SeismicSystems)**를 MIT 라이선스 하에 완전히 오픈 소스로 공개**하고 있습니다.

***

## **보안 엔클레이브(Secure Enclaves)를 기반으로 구축**

이 스택의 핵심은 보안 엔클레이브(Secure Enclave)입니다.\
이 용어는 사용 중인 데이터를 보호하는 하드웨어 구성 요소 세트를 의미하며, 데이터가 외부 엔티티(호스트 머신 포함)에 의해 읽히지 않도록 합니다. 우리가 선택한 보안 엔클레이브는 Intel TDX입니다.

우리 시스템은 EVM의 모든 주요 메모리 세그먼트를 복제하여 TDX를 활용합니다.\
이 과정에서 암호화된 세그먼트와 투명한 세그먼트가 생성되며, 암호화된 세그먼트는 기반 하드웨어의 기밀성 기능을 활용할 수 있습니다.

데이터는 이러한 세그먼트 간에 복제된 스토리지 OPCODE를 통해 흐릅니다.\
예를 들어, 기존 EVM은 <kbd>SLOAD</kbd> /<kbd>SSTORE</kbd>를 사용하여 스토리지 요소를 관리하지만,\
우리의 EVM은 <kbd>CLOAD</kbd> / <kbd>CSTORE</kbd>를 추가하여 암호화된 스토리지를 관리합니다.\
이 패턴은 Calldata, Transient Storage, Memory에도 동일하게 적용됩니다.

이러한 구조를 통해 스택에 추가되는 모든 요소가 투명한지 또는 암호화되었는지를 확인할 수 있습니다.\
그 후, 이러한 요소들의 상호작용 방식과 실행 루프에서 처리되는 방식을 추적하는 것이 핵심 과제가 됩니다.

우리의 GitHub 저장소에는 이 개념의 v0 버전 구현이 포함되어 있습니다.\
모든 v0 버전과 마찬가지로, 이는 최종 스펙과는 거리가 멉니다.\
특히, **현재 구현은 스토리지 세그먼트만 복제하며, 스택 내 요소의 상태를 추적하지 않습니다.**\
**이를 보완하기 위해, 현재 모든 메모리 세그먼트를 암호화된 것으로 처리합니다.**\
이러한 접근 방식은 UX(사용자 경험)와 네트워크 라이브니스(활성 상태) 측면에서 큰 단점을 가지고 있지만,\
암호화된 프로토콜이 작동할 수 있음을 검증하면서도 시장 출시 속도를 단축할 수 있기 때문에 첫 번째 릴리스에는 적합합니다.

***

## 신뢰 가정(Trust Assumptions)

우리는 보안 엔클레이브에 의존하기 때문에 강력한 신뢰 가정을 수반합니다.\
가장 중요한 것은 하드웨어 기밀성(Hardware Confidentiality)에 대한 신뢰이며,\
이는 [사이드 채널 공격(Side-Channel Attack)](https://collective.flashbots.net/t/intel-tdx-security-and-side-channels/3648)에 대한 우려를 동반합니다.\
이에 대한 단기적인 해결책으로, 우리는 클라우드 기반 검증자(Validators)로 제한하고 있습니다.

이러한 신뢰 가정은 과거에 [여러 문제](https://eprint.iacr.org/2023/378.pdf)를 초래했지만,\
우리는 최신 VM 기반 보안 엔클레이브(Intel TDX, AMD SEV-SNP)에 대해 신중한 낙관론을 가지고 있습니다.\
이 기술들은 신뢰할 수 없는 하이퍼바이저(Untrusted Hypervisor) 환경에서도 작동하며,\
초기 세대의 주요 결함들을 해결했습니다.

우리는 이러한 보안 엔클레이브가 전체 블록체인 생태계를 지원할 수 있다고 믿습니다.\
또한, 현재 Confidential Compute(기밀 컴퓨팅) 기술이 빠르게 발전하고 있는 만큼,\
이 속도가 더욱 빨라질 것으로 기대하고 있습니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://clairetranslation.gitbook.io/seismic-docs-kr/undefined-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
