로더/컨트랙트를 지원하는 가상 머신/블록체인. 어떤 개발자든 그 위에 모든 애플리케이션을 배포하고, 사용자의 모든 데이터를 다른 애플리케이션과 공유하며, 사용자의 지시에 따라 작동할 수 있습니다.
사용자는 블록체인 형태의 지갑으로부터 완전히 자유롭고 서버와만 상호작용하기 때문에 기존 인터넷 애플리케이션과 동일한 사용자 경험을 제공하지만 동시에 탈중앙화되어 있습니다.
위 프로세스에 이미 크로스체인 스왑이나 계정 추상화와 같은 유사한 개념이 포함되어 있음을 알 수 있지만, 물론 이는 유사할 뿐이며 SCP의 맥락에서만 이해해야 합니다. 특히 계정 추상화와 같은 개념은 이더리움 커뮤니티의 유산이라고 할 수 있는 SCP에는 당연히 필요하지 않습니다. 이더리움 커뮤니티는 여러 차례의 노력 끝에 마침내 웹 3.0 대량 채택의 문제 중 하나인 계정 문제를 해결하기 위해 EIP-4337 표준을 도입했습니다. 그리고 EIP-4337은 표준일 뿐이며, 이에 대한 적용 사례는 아직 테스트되지 않았습니다. SCP 아키텍처 자체에는 계정 추상화라는 개념이 없기 때문에 웹2.0 표준 계정과 블록체인 계정 등을 자유롭게 채택할 수 있습니다. 이러한 관점에서 볼 때, 많은 성숙한 Web2 사용 사례를 재검토하거나 리팩토링하지 않고도 SCP에서 바로 사용할 수 있습니다.
p>투명성과 비대칭성
계정 시스템은 위에서 언급했는데, 민감한 독자라면 이미 SCP가 Web2의 계정 시스템을 활용할 수 있지만 그대로 사용하는 데는 문제가 있다는 것을 눈치챘을 것입니다.
이 시스템 전체가 완전히 투명하기 때문입니다! 사용자와 서버 간의 직접적인 상호 작용 모델을 사용하면 심각한 문제가 발생하여 시스템 전체가 보안에 취약해질 수 있습니다. 기존의 서버-사용자 모델이 어떻게 작동하는지 살펴봅시다.
1. 계정 등록 : 사용자는 애플리케이션의 등록 페이지에서 사용자 이름과 비밀번호를 입력합니다. 사용자의 비밀번호를 보호하기 위해 서버는 이를 수신하고 해시 함수를 통해 처리합니다. 해시의 복잡성을 높이고 레인보우 테이블 공격으로부터 보호하기 위해 각 사용자의 비밀번호를 무작위로 생성된 문자열('솔트'라고 함)과 연결하여 함께 해시 처리하는 것이 일반적입니다. 사용자 이름, 솔트 및 해시는 서비스 제공업체의 데이터베이스에 일반 텍스트로 저장되며 공개적으로 사용 가능하지 않습니다. 하지만 이 경우에도 스파이와 공격에 대비해 솔트 및 보안을 유지해야 합니다.
2. 사용자 로그인: 사용자는 로그인 양식에 사용자 이름과 비밀번호를 입력합니다. 시스템은 처리된 비밀번호 해시를 데이터베이스에 저장된 해시와 비교합니다. 두 해시가 일치하면 사용자가 올바른 비밀번호를 제공한 것이며 로그인 프로세스가 계속 진행됩니다.
3. 운영 인증: 로그인 인증이 통과되면 시스템에서 사용자에 대한 세션을 생성합니다. 일반적으로 세션 정보는 서버에 저장되며 서버는 식별자(예: 쿠키 또는 토큰)를 사용자의 브라우저 또는 애플리케이션으로 보냅니다. 브라우저나 애플리케이션이 토큰을 저장하고 각 요청에 첨부하기 때문에 사용자는 더 이상 다음 작업을 위해 사용자 이름과 비밀번호를 다시 입력할 필요가 없습니다.
일반적인 웹 3.0 블록체인과 사용자 상호작용 시스템을 살펴보겠습니다.
1. 계정 등록: 계정 등록과 같은 프로세스는 거의 없으며, 사용자 이름-비밀번호 시스템도 없습니다. 계정(주소)은 등록할 필요가 없으며 자연적으로 존재하며, 개인 키를 보유한 사람이 계정을 제어합니다. 개인 키는 지갑에서 로컬로 무작위로 생성되며, 네트워킹 프로세스가 필요하지 않습니다.
2. 사용자 로그인: 블록체인을 사용하기 위해 로그인이 필요한 것은 아니며, 대부분의 디앱은 로그인 과정이 없고 지갑에 연결합니다. 일부 디앱은 사용자가 지갑에 연결한 후 서명을 통해 연결된 지갑의 신원을 확인하도록 요구하는데, 이는 사용자가 단순히 지갑 주소를 프론트엔드에 전달하는 것이 아니라 해당 지갑의 개인키를 실제로 보유하고 있는지 확인하기 위함입니다.
3. 작업 인증:
사용자는 서명된 데이터를 노드에 직접 제출하고, 노드는 이를 검증하여 전체 블록체인 네트워크에 브로드캐스트하며, 블록체인 네트워크의 합의를 충족하면 사용자의 작업이 확정됩니다.
두 모델의 차이는 대칭과 비대칭으로 인해 발생합니다. 서버-사용자 아키텍처에서는 양 당사자가 동일한 비밀을 보유합니다. 블록체인-사용자 아키텍처에서는 사용자만 비밀을 보유합니다. SCP의 실행 계층이 블록체인이 아닐지라도 모든 데이터는 공개적으로 볼 수 있는 DA 계층에 동기화되어야 하므로 로그인 및 작업에 SCP가 사용하는 인증 방법은 비대칭적이어야 합니다. 그러나 사용자가 개인 키를 보관하고 지갑을 사용하는 등의 번거로운 작업과 열악한 경험을 원치 않기 때문에 대규모 채택에 영향을 미치는 SCP 기반 애플리케이션에서 로그인 시 기존 ID 비밀번호 또는 OAuth 3자 인증을 사용해야 한다는 요구도 강하기 때문에 이 두 가지를 어떻게 결합할 수 있을까요?
비대칭 암호화와 영지식 증명 쌍에는 비대칭성이 있기 때문에 두 가지 가능한 시나리오를 구상했습니다.
ID 비밀번호 시스템을 사용하려는 경우, 이 비밀번호 저장 모듈을 SCP에서 제외할 수 있습니다. SCP 실행 계층은 여전히 블록체인의 공개-개인 키 계정과 운영 로직을 내부적으로 사용하며 등록, 로그인 등이 필요하지 않습니다. 사용자 ID는 실제로 사용자가 사용할 ID에 해당합니다. 사용자 ID는 실제로 개인 키에 해당합니다. 물론 이 개인 키는 프로젝트 측에 저장할 수 없으며, 사용자에게 개인 키 사용에 대한 부담을 주지 않으면서 중앙 집중식 저장소 문제를 해결하기 위해 2~3개의 MPC를 사용하는 것이 더 현실적인 해결책이 될 수 있습니다.
OAuth 로그인을 사용하는 경우, JWT(Json 웹 토큰)를 인증 수단으로 사용할 수 있습니다. 이 접근 방식은 기본적으로 웹 2.0 공급업체가 제공하는 타사 로그인 서비스에 인증을 의존하기 때문에 위 방식보다 약간 더 중앙 집중화되어 있습니다. 타사 로그인이 처음 사용될 때 사용자의 신원을 나타내는 필드와 서비스 제공업체의 신원을 나타내는 필드가 JWT에 시스템에 등록됩니다. 이후 사용자의 작업에서 작업 지침은 공개 입력으로 사용되며, JWT 전체는 ZKP와의 각 사용자 트랜잭션을 확인하기 위한 비밀 증인으로 사용됩니다. 각 JWT에는 만료 시간 제한이 있으며 사용자는 다음에 로그인할 때 새 JWT를 요청하게 되므로 안전하게 보관할 필요가 없습니다. JWK에 의존해야하는이 시스템 외에도 대형 제조업체에서 JWK를 확인하기 위해 제공하는 공개 키로 이해할 수 있습니다. 그런 다음 JWK가 시스템에 분산적으로 공급되는 방법, 향후 개인 키 순환에 대처하는 방법 등을 살펴볼 가치가 있습니다.
어떤 방식을 사용하든 기존 개발 및 컴퓨팅 방식보다 비용이 조금 더 들지만, 탈중앙화를 위해 지불해야 할 대가입니다. 물론 극단적인 탈중앙화가 필요하지 않다고 생각하거나 개발 단계마다 다른 마일스톤이 있는 프로젝트는 이러한 설계를 사용하지 않아도 괜찮습니다. 탈중앙화는 흑백이 아니라 그 사이에 회색 영역이 존재하기 때문입니다.
프라이버시
방금 언급한 투명성 문제는 사용자 상호작용 패러다임뿐만 아니라 사용자 데이터에도 영향을 미칩니다. 사용자 데이터는 직접적으로 노출됩니다. 블록체인에서는 문제가 되지 않지만, 일부 애플리케이션에서는 이를 허용하지 않기 때문에 개발자는 프라이버시 거래 시스템을 구축할 수도 있습니다.
과금
실행 레이어가 과금되는 방식도 또 다른 관심사입니다. DA 레이어에 데이터를 제출하는 데에는 자체 서버를 운영하는 등의 비용도 발생하기 때문입니다. 기존 블록체인이 사용자에게 가스를 과금하는 첫 번째 핵심 목적은 사용자가 대량의 중복 트랜잭션을 스와이프하여 거래 네트워크를 교란하는 것을 방지하는 것이고, 두 번째는 가스를 기준으로 트랜잭션을 분류하는 것뿐입니다. 웹2.0은 이와 같은 고민이 없기 때문에 플러딩, 디도스 등에 대한 기본적인 개념만 존재할 뿐입니다.
실행 레이어는 완전 무료 또는 부분 과금과 같은 다양한 과금 전략으로 커스터마이징할 수 있으며, 시퀀서에서 이미 잘 확립된 MEV, 마케팅 캠페인 등과 같은 다른 행동으로부터도 수익을 얻을 수 있습니다.
검열에 대한 저항
실행 레이어는 검열에 저항하지 않으며, 이론적으로 사용자의 트랜잭션을 제한 없이 거부할 수 있습니다. 롤업에서 검열 저항성은 L1 컨트랙트의 필수 대입 기능으로 보장될 수 있으며, 사이드체인이나 퍼블릭 체인은 검열이 어려운 완전한 분산형 블록체인 네트워크입니다.
이 문제를 해결할 수 있는 명확한 해결책은 없으며, 이는 SCP 패러다임의 문제입니다.
합의 확인 레이어
이 레이어는 네트워크를 적극적으로 구성하지 않는 느슨하게 연결된 노드들로 구성되며, 따라서 합의 레이어가 아니라 단순히 실행 레이어의 현재 상태를 외부(예: 사용자)에 확인하는 데 사용됩니다. 예를 들어 에버페이의 운영 상태가 의심스러운 경우 코디네이터와 동일한 STF를 실행하는 디텍터 클라이언트를 다운로드할 수 있습니다.
데이터가 일괄적으로 제출되기 때문에 실행 레이어는 항상 DA 레이어에서 제공되는 것보다 더 업데이트된 상태를 사용자에게 반환한다는 점에서 롤업과 유사합니다. 여기에는 소프트 및 하드 최종성의 문제가 있습니다. 실행 계층은 아직 DA 계층에 제출되지 않았기 때문에 사용자에게 소프트 최종성을 제공하는 반면, 합의 확인 계층은 사용자에게 하드 최종성을 제공합니다. 사용자는 이를 특별히 신경 쓰지 않을 수 있지만, 크로스 체인 브리지와 같은 애플리케이션의 경우 하드피니티를 따라야 합니다. 예를 들어, 거래소의 충전 및 출금 시스템은 롤업 시퀀서의 순간적 완결성에 의존하지 않습니다.
합의 확인 계층은 결과를 확인하는 데 사용될 수 있을 뿐만 아니라, 실행 계층의 재해 방지 이중화로서 중요한 역할을 합니다. 실행 계층이 영구 파업에 들어가 심각한 문제를 일으킬 경우, 이론적으로 합의 확인 계층이 실행 계층의 업무를 대신하고 사용자들의 요청을 받을 수 있습니다. 이러한 심각한 상황이 발생하면 커뮤니티는 안정적이고 신뢰할 수 있는 노드를 선택하여 실행 계층의 서버 역할을 할 수 있어야 합니다.
정산 레이어
SCP는 롤업이 아니기 때문에 롤업의 인출 및 정산 레이어와 같이 사람의 개입이 필요 없고 전적으로 수학과 스마트 컨트랙트 코드에 기반하는 신뢰 없는 인출을 할 수 없습니다. 이는 사이드체인 또는 크로스체인 브리지의 크로스체인 메커니즘과 동일한 수준으로 안전하며, 자산에 대한 자산을 릴리스하기 위해 권한 있는 관찰자에 의존하며, 이를 증인 모델이라고 부릅니다.
위트니스 브리지를 최대한 탈중앙화시키는 것은 많은 크로스 체인 브리지 연구의 주제였습니다. 여기서는 지면 제약으로 인해 자세한 내용은 다루지 않겠습니다. 잘 설계된 SCP 플랫폼은 또한 에버페이와 MPC 서비스 제공자 세이프헤론의 긴밀한 협력과 같이 실제로 탈중앙화 브리지를 위한 평판이 좋은 다중 서명자 파트너를 보유해야 합니다.
일부에서는 왜 SCP가 스마트 콘트랙트가 있는 체인을 DA 레이어로 사용하지 않는지 의문을 제기할 수 있습니다. 스마트 컨트랙트를 사용하면 완전히 신뢰가 필요 없는 결제 레이어를 만들 수 있기 때문입니다.
장기적으로 몇 가지 기술적 어려움을 극복하고 이더와 같은 컨트랙트가 있는 DA 레이어에 검증을 위한 컨트랙트를 구축하면 다중 서명을 사용할 필요 없이 롤업과 동일한 결제 보안을 확보할 수 있습니다.
그러나 실제로는 이것이 최적이 아닐 수 있습니다.
1. 이더리움은 데이터 저장 전용이 아니며, 순수한 데이터 저장 퍼블릭 체인으로 사용하기에는 너무 비쌉니다. 그리고 SCP 패러다임에서는 충분히 낮거나 고정된 스토리지 비용이 중요합니다.
2. 시스템 개발이 매우 어렵다는 증거: EVM을 모델링하는 것뿐만 아니라 SCP에서 모든 로직을 구현할 수 있기 때문입니다. 옵티미즘과 같은 팀이 아직 사기 증명을 구현하지 못하고 있고, zkEVM 개발이 어려운 것을 보면 이더리움에서 다양한 시스템에 대한 증명을 구현하는 것이 매우 어렵다는 것을 짐작할 수 있습니다.
또 다른 핵심은 이 소위 결제 보안은 롤업과 동일하지만 이더와 같은 스마트 콘트랙트가 있는 체인 자체의 DA 레이어에만 해당되며, 모든 원본 데이터가 이더로 전달되기 때문에 이더의 결제 콘트랙트는 체인의 최종 상태를 증명하기 위해 원본 입력 데이터만 "참조"할 수 있다는 점입니다. 그런 다음 이더 기반 결제 콘트랙트는 최종 상태의 정확성을 증명하기 위해 원본 입력 데이터를 "참조"합니다(직접 참조하는 것이 아니라 해시나 누산기 등을 통해 간접적으로 참조하므로, 과거 거래의 콜 데이터는 콘트랙트 자체에서 참조할 수 없으므로 원본 콜 데이터의 상태 태그가 남습니다). 그러나 다른 체인에는 아무런 데이터가 없기 때문에 다른 체인에 대해 동일한 보안을 누릴 수 없습니다. 다른 체인으로 건너가려면 결국 증인 모드 크로스 체인 브리지를 사용해야 합니다.
따라서 롤업 솔루션은 특정 관점에서, 즉 특정 체인을 홈 체인으로 간주하는 경우에만 더 나은 결제 보안을 제공하며, SCP는 일종의 퍼블릭 체인 확장 솔루션이 아니라 더 큰 웹3 컴퓨팅 플랫폼 아키텍처이므로 반드시 체인 중심적인 관점에서 구현할 필요는 없습니다. 결제 레이어를 스마트 콘트랙트에 기반하기 때문에 마더 체인 이외의 다른 체인에 대한 결제를 보호하지 않으며, 이는 특별히 해당 체인을 확장하지 않는다면 완전히 불합리한 것처럼 보입니다.
요약
SCP를 다른 패러다임과 비교한 차트입니다.
SCP는 새로운 웹3 컴퓨팅 플랫폼 패러다임으로, 적용 속도 면에서 기존 웹2 트랜잭션과 비슷하며 트랜잭션 비용은 무시할 수 있을 정도로 저렴합니다. SCP는 애플리케이션 속도와 거래 비용 측면에서 기존 웹2.0 트랜잭션에 필적하는 새로운 웹3.0 컴퓨팅 플랫폼 패러다임으로, 주류 솔루션과 동일한 수준의 보안을 유지하면서 무한한 애플리케이션 가능성을 구축할 수 있는 플랫폼입니다. 현재 SCP 패러다임 하에서 에버페이, 퍼마스왑, 마인드 네트워크 등 우수한 디자인 컨셉을 기반으로 한 수많은 애플리케이션이 등장했으며, 이번 라운드와 다음 라운드의 강세장에서 폭발적인 성장이 기대되는 유망한 프로젝트입니다.