트랜잭션 비용

마지막 업데이트: 2022년 3월 22일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
트렌잭션 풀은 로컬 DB이다.

다음 프로젝트에 Cloud Spanner 사용을 고려해야 하는 3가지 이유

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

* 본 아티클의 원문은 2020년 8월 21일 Google Cloud 블로그(영문)에 게재되었습니다.

데이터베이스는 거의 모든 애플리케이션 아키텍처의 핵심 구성요소입니다. 애플리케이션을 설계할 때는 애플리케이션 데이터를 오래 보관할 수 있는 방법을 강구해야 합니다. 공유 데이터베이스에서 데이터를 유지하지 않으면 애플리케이션을 확장하거나 기본 하드웨어를 업그레이드할 수 없습니다. 더 심각한 문제는 인프라 장애가 발생할 경우 모든 데이터가 즉시 손실된다는 점입니다.

하지만 안정적인 데이터베이스를 사용하면 애플리케이션 확장성을 사용 설정하고 데이터 내구성과 일관성, 서비스 가용성, 향상된 시스템 지원 가능성을 보장할 수 트랜잭션 비용 있습니다. 데이터베이스는 거의 모든 애플리케이션 아키텍처의 핵심 구성요소입니다.

Google Cloud의 Spanner 데이터베이스는 Google뿐 아니라 여러 클라우드 고객 제품의 구조화된 데이터 저장과 관련된 요구사항을 충족하도록 빌드되었습니다. Spanner는 Google의 핵심 인프라에 속해 있으며 Spanner를 사용하면 업계 또는 사용 사례에 관계없이 비즈니스를 안전하게 보호할 수 있습니다.

Spanner 이전에 Google 제품은 트랜잭션이 필요한 데이터베이스 사용 사례에 샤딩된 MySQL을 주로 사용했었습니다. Spanner 문서에서도 확인할 수 있듯, Spanner를 개발함으로써 복잡하고 변화하는 스키마를 가진 애플리케이션이나 광역 복제에 strong consistency가 필요한 애플리케이션에 적합한 데이터 스토리지 서비스를 만들고자 했습니다.

Spanner 사용을 고려할 때 가장 먼저 떠오르는 개념 중 하나는 대규모 데이터베이스로의 임의 확장이 가능하다는 것입니다. 실제로 Spanner는 수십억 명의 트랜잭션 비용 사용자에게 다양한 기능을 제공하는 Google 애플리케이션(예: Gmail 및 YouTube)을 지원하므로 최고 수준의 확장성을 갖춰야 합니다.

이 게시물에서는 Spanner가 어떻게 다양한 사용 사례에서 규모에 관계없이 모든 애플리케이션이 작동하도록 설계되었으며, 개발자의 진입 장벽을 낮추고, 총 소유 비용(TCO)을 줄일수 있는지 알아봅니다. 그럼, 관련 내용을 함께 살펴보겠습니다.

어디서든 시작하고 비즈니스 성장에 맞춰 규모 조정

Spanner는 데이터 볼륨을 대규모로 처리할 수 있으므로 대규모 애플리케이션뿐 아니라 다양한 크기의 애플리케이션에 유용합니다. 또한 조직은 RDBMS가 필요한 모든 워크로드를 단일 데이터베이스 엔진에서 표준화함으로써 이점을 누릴 수 있습니다. Spanner는 ANSI 2011 SQL, DML, 외래 키(Foreign Keys)와 같이 이미 익숙한 관계형 데이터베이스 관리 시스템(RDBMS) 기능은 물론 TrueTime을 통한 강력한 외부 일관성과 기본 동기식 복제를 통한 고가용성과 같은 고유한 기능을 조합하여 모든 종류의 애플리케이션을 위한 견고한 기반을 제공합니다.

'소규모'에 대해 어떻게 인식하고 있는지 잠시 생각해보겠습니다. 소규모 애플리케이션은 중요하지 않거나 가용성에 대한 원대한 목표나 트랜잭션 안정성에 대한 요구가 없다고 간주하기 쉽습니다. 그러나 소규모 애플리케이션이 대규모 애플리케이션보다 비즈니스와 관련해 중요도가 낮다는 것을 의미하지는 않습니다. 또한 특정 애플리케이션이 초기 출시 시점보다 더 높은 확장성을 요구하지 않는다는 의미도 아닙니다. 시작 단계에서는 애플리케이션의 사용자층과 트랜잭션 트랜잭션 비용 볼륨이 상대적으로 적을 수 있지만 Spanner의 확장성을 간과해서는 안 됩니다. Spanner의 백엔드에서 작동하도록 설계된 애플리케이션은 향후 데이터 볼륨이나 트랜잭션이 증가해도 재작성이나 어떤 유형의 데이터베이스 마이그레이션도 필요하지 않습니다.

예를 들어 획기적인 차세대 게임을 개발하는 게임 회사라면 게임 출시와 동시에 엄청난 성공을 거두는 상황에 대비하여 사용자층 확대에 대응할 방안이 마련되어 있어야 합니다.

Spanner를 트랜잭션 비용 선택할 경우 애플리케이션의 규모에 관계없이 트랜잭션 지원, 고가용성 보장, 읽기 전용 복제본, 손쉬운 확장 등의 강력한 이점을 누릴 수 있습니다.

트랜잭션 지원 및 강력한 외부 일관성

Spanner는 TrueTime을 통해 외부 일관성을 보장합니다. Spanner는 완전히 중복된 원자 시계 시스템을 사용하여 가상의 분산 글로벌 시계의 타임스탬프를 얻을 수 있습니다. Spanner는 전역적으로 합의된 소스의 타임스탬프를 커밋되는 모든 트랜잭션에 적용할 수 있으므로 트랜잭션 커밋 순서가 명확합니다. 외부 일관성을 갖추려면 모든 트랜잭션이 순차적으로 실행되어야 하며, Spanner는 이 strong consistency를 갖도록 보장합니다.

strong consistency는 많은 애플리케이션 유형, 특히 상품이나 통화의 수량이 유지되는 경우와 eventual consistency(최종 일관성)가 적합하지 않는 경우에 필요합니다. 여기에는 공급망 관리, 소매업체 가격 및 인벤토리 관리, 뱅킹, 무역, 원장 등을 포함해 다양한 유형의 애플리케이션이 있습니다.

데이터베이스에 strong consistency가 없으면 트랜잭션을 여러 개의 별도 작업으로 분할해야 합니다. 원자적 트랜잭션이 아닌 경우에는 트랜잭션 일부가 실패할 수 있습니다. 저녁 식사 비용을 친구와 나누어 내기 위해 디지털 지갑을 사용한다고 가정해보겠습니다. strong consistency 기반의 트랜잭션에서 송금이 이루어지지 않았다면 트랜잭션 중 50%가 실패하며 송금된 돈은 내 지갑에서나 친구의 지갑에서도 찾을 수 없습니다.

eventual consistency의 바람직하지 않은 특성은 이름에서 드러납니다. 데이터베이스 작업 직후에는 전체 데이터베이스 트랜잭션 비용 상태가 비일관적이며, 변경사항은 마지막에 가서야 모든 요청자에게 제공됩니다. 그 사이에 각 클라이언트 요청은 서로 다른 결과를 반환할 수 있습니다. 예를 들어 소셜 미디어 서비스를 사용하는 경우 버튼을 눌러 사진을 게시한 후 이미지가 타임라인에 표시될 때까지 지연 시간이 발생할 가능성이 있습니다. Pokemon GO를 개발한 Niantic은 특히 소셜 애플리케이션에서 발생하는 이러한 유형의 비일관성을 차단하기 위해 Spanner를 선택했습니다.

그 밖에도 이 블로그 게시물에서 strong consistency에 대한 자세한 내용을 확인할 수 있습니다. Google에서 얻은 정보에 따르면 개발자가 복잡한 트랜잭션을 처리하고 데이터를 순서대로 유지하기 위해 기본 데이터 저장소를 사용하는 경우, 기본적으로 애플리케이션 코드는 더 간단해지고 개발 일정은 단축됩니다. 이와 관련하여 Spanner 문서의 내용을 인용해 보겠습니다. "우리는 애플리케이션 프로그래머가 트랜잭션 부족에 대한 코드를 작성하기 보다는 병목 현상이 발생할 때 트랜잭션의 과도한 사용으로 인한 성능 문제를 처리하는 것이 더 낫다고 생각합니다."

트랜잭션 비용

거래비용 (Transaction cost)

거래비용(transaction cost)은 경제적 거래, 즉 교환 활동에서 야기되는 비용을 말한다. 크게 두 가지로 정의된다. 첫째, 거래비용은 제도(institutions)에 의해 발생하는 모든 비용이다. 제도는 조직, 시장 등을 포함한다. 제도에서는 조직이든 시장이든 거래비용을 극소화하는 것이 중요하다. 둘째, 가격 메커니즘의 비용(costs of the price mechanism), 즉 거래비용은 ‘시장 거래 수수료(a market trading fee)’이다. 많은 경제학자들은 거래비용을 후자의 좁은 의미로 사용한다. 예를 들어, 사람들은 주식을 사고 팔 때 증권회사, 즉 주식의 구입과 판매에 자격을 가진 증권 중개인에게 수수료를 지불해야 한다. 수수료는 이때 주식 거래에 따른 거래비용이다. 사람들이 상점에서 상품을 구매할 때에도 구매자는 먼저 상품의 액면 가격과 누가 자신이 원하는 상품을 파는지, 상품에는 어떤 종류가 있고, 품질은 어떠한지를 알아야 한다. 마지막으로 그 상점에까지 가야 한다. 이것은 구매자가 상품 가격 외에, 상품을 구입하기 위해 지불해야 하는 추가적인 시간과 노력이다. 이러한 비용이 거래비용이다. 거래비용의 종류는 매우 다양하고, 그만큼 여러 가지 로 표현된다. 예를 들어, 조사와 정보비용(search and information costs), 협상과 결정비용(bargaining and decision costs), 단속 및 이행비용(policing and enforcement costs) 등은 모두 거래비용의 다른 이름이다. 여기서 조사와 정보비용은 상점, 상품의 종류와 품질, 가격 등을 알기 위해 들어가는 비용이다. 협상과 결정비용은 상대방과 적정 가격 결정에 필요한 흥정이나 협상 비용이다. 그리고 단속 및 이행비용은 계약을 체결한 경우라도 상대가 계약대로 지키는지 감시해야 하고, 위반 시 강제 이행토록 하는데 들어가는 비용이다. 이러한 비용은 경제적 교환, 즉 시장 참여에 야기되는 비용이다.

거래비용이란 용어는 Ronald Harry Coase라는 트랜잭션 비용 영국 경제학자가 처음 아이디어를 제공한 것으로 알려져 있다. Coase는 1937년 자신의 논문 The Nature of the Firm에서 거래비용 개념의 핵심을 이루는 두 행위자간의 거래(transactions)와 위계조직(hierarchies)이라는 개념을 제시한다. 대등한 입장의 행위자와 위계적 조직의 거래가 경제활동을 위한 자원을 모으고, 조직한다고 설명한다. 예를 들어 두 행위자간의 시장에서 교환 활동은 조사와 정보비용, 영업비밀의 상실 위험, 협상과 계약 이행 비용 등과 같은 거래비용을 만들어낸다고 보았다. 또 복잡한 위계조직도 관리를 위한 간접 및 관료적 비용뿐만 아니라 관리자들의 인식적 한계에 따른 비용을 기업 외부에서 발생시킨다고 말한다. Coase는 사람들이 다양한 시스템, 제도, 절차, 사회관계, 하부구조로 이루어진 시장에서 상품과 서비스 교환을 하는 것으로 이해하는 동안 거래, 가격 메커니즘과 비용 등의 개념을 사용했으나, 사실 1970년대까지도 직접 거래비용이라는 용어를 사용한 바는 없다. 현재의 거래비용 개념은 Oliver E. Williamson이라는, 과거 Coase에게 배웠던 거래비용 경제학자(transaction cost economics)가 거래비용이라는 개념을 사용하면서 일반화시킨 것이다. 초기 고전파 경제학자들은 거래비용을 경제학적 관점에서 판매자와 구매자가 어떻게 최소화할 것인지에 관심을 가졌으나, 오늘날은 어떤 가치 있는 것을 제공하고 다른 것을 얻는 행위라면 시장에서의 상품구매와 판매뿐만 아니라 개인 간 감정의 상호 작용, 비공식적 선물의 교환 등에도 거래라는 표현을 확장해 사용하기에 이른다.

Williamson은 다양한 조직 활동을 거래비용이라는 경제학적 개념을 도입하여, 설명하면서 조직경제학(organizational economics)이라는 응용경제학 분야를 만드는데 핵심적 역할을 한다. 그는 거래(transactions)가 조직 활동 분석의 기본적 단위가 있다는 것과 다차원적 적용을 주장한다. 또 거래비용 접근방법(transaction cost approach)은 세 가지 차원에서 적용될 수 있다고 말한다. 첫째, 기업의 전반적 구조에 대한 것으로 경영의 각 부문(operating parts)이 서로 어떻게 연결되어 작동하는가의 분석에 적용될 수 있다. 둘째, 중간 수준으로 경영을 구성하는 각 부문들이 트랜잭션 비용 기업 내에서 어떤 활동을 수행해야 하는가에 대한 분석이다. 그리고 셋째는 인적 자원이 조직화되는 방식에 대한 것이다. 나아가 거래비용이 조직 내부에서 발생하는가, 외부에서 야기된 것인가에 따라 트랜잭션 비용 내부적 및 외부적 거래비용(internal vs. external transaction costs)으로 구분하였다. Williamson은 Coase (1937) 아이디어의 확장을 통한 일련의 조직연구에서 거래비용의 결정과 이것이 교환 활동에 미치는 효과를 트랜잭션 비용 분석하면서, 거래비용을 주로 조사와 정보, 감시와 계약 이행을 위한 비용으로 보았다. 또 거래비용의 결정은 경쟁시장에서 상품 가격의 결정과는 무관하고, 교환의 성격에 의해 결정된다고 말한다. 예를 트랜잭션 비용 들어, 불확실성, 계약 후 상대가 계약한대로 이행하는지 단속과 강제, 해당 거래와 관련된 특수한 투자의 필요 등과 같은 요인이 중요한 영향을 미친다는 것이다. 이외에 거래비용 결정 요인을 빈도, 전문성, 제한된 합리성, 기회주의적 행동(frequency, specificity, limited rationality, and opportunistic behavior) 등으로 지적한다. 그는 조직이 관료적 관리(bureaucratic administration)와 같은 다양한 트랜잭션 비용 비시장적 메커니즘을 통해 이 비용을 줄일 수 있다고 설명한다. 비록 순수 이론적 세계에서는 교환에 어떤 마찰도 없어 ‘관리되는 거래(administered transactions)’가 시장 조직보다 더 많은 비용이 들 것 같지만, ‘관리되는 교환(administered exchange)’이 오히려 더 적은 거래비용을 가져와, 실제 행정비용은 오히려 적다는 것이다. 최근 Yigitbasioglu (2010)은 거래비용 개념이 조직간 정보공유 행위를 해석하는데 중요한 도구가 될 수 있다고 주장한다.

스마트폰 공무원 교재

[김호광 칼럼] P2E를위한블록체인기술의이해

[김호광 칼럼] P2E를위한블록체인기술의이해

일반적인 게임은 결제 시스템(PG)이 검증되어 있고 안정적이다. 하지만 블록체인 기반의 게임에서는 고려해야할 것이 많다.

기존 메타마스크로 가상화폐 지갑을 사용해도 서비스 구현은 가능하지만, 입금 확인, 송금 지연, 송금 실패, 펜딩 트랜잭션까지 다양한 상황을 관리하기 위한 개발이 필요하다. 이 경우 자체적인 메인넷 노드를 구축하고 관리해야 할 정도로 일이 방대해진다.

아쉽게도 트랜잭션이 10분을 넘어 반 나절 이상 지연되면 게임 개발사에서 해결할 방법은 많지 않다. 유저에게 이더리움 기반의 코인을 송금하거나 환불할 때 이더리움의 수수료가 환불비용보다 비싼 경우도 각오해야한다.

아무리 이더리움 2.0이 되면서 수수료가 저렴해졌다고 하지만 종종 만원이 넘는 수수료가 발생할 때가 있다. 이더리움 기반의 플랫폼에서는 수수료의 예측과 통제가 되지 않는다.

이더리움 기반의 P2E에서 가장 고민해야할 것은 가스비가 순간적으로 폭등하여 송금 트랜잭션이 캔슬되거나 장시간 지연되는 상황을 서비스에서 가정해야 한다는 것이다. 고객이 환불을 신청했거나 코인 출금의 신청이 지연되었을 경우 처리 방법이 모호하다.

이더리움은 엔터프라이즈 환경을 고려하지 않고 만들어졌기 때문에 이런 문제를 해결하기 위해 다양한 부가 서비스가 존재한다.

대표적인 게 인프라(infura.io)다. 이더리움 송금의 트랜잭션 관리와 더불어 최적화된 수수료, 관리 툴을 제공한다. 이더리움 메인넷 노드를 PaaS로 서비스 형태로 사용한 만큼 임대해서 내는 서비스이다. infura는 1달 10만 건 트랜잭션의 경우 무료이기 때문에 간단한 P2E나 인디 게임이라면 초기 비용 트랜잭션 비용 없이 사용할 수 있다.

이더리움 수수료 문제에 질린 서비스는 수수료가 저렴한 카카오 클레이튼, 폴리곤, 바이낸스체인 등을 사용하여 수수료를 절감하는 전략을 사용하기도 한다. 클레이튼은 잦은 장애와 수수료를 인상했다가 NFT 프로젝트들에게 반발을 사고 탈출 러시가 발생하고 있다.

이더리움 외에 다른 생태계는 서비스가 확실하지 않다면 큰 리스크가 될 수 있다. 이더리움의 생태계보다 상대적으로 다른 메인넷의 홀더는 적기 때문에 P2E 플랫폼의 성장의 한계가 되기도 한다. 유저가 적다는 것은 시장 확장 규모가 작다는 의미다. 많은 P2E, NFT 프로젝트가 나중에 비싼 수수료와 느린 트랜잭션을 감당하면서 ERC20로 전환하거나 병행 지원하는 사례가 많다.

이더리움의 가장 큰 문제는 게임에 사용하기에 송금이 매우 느리다는 것이다. 게임은 즉각적인 결제와 반응이 있어야한다. 게임 개발자들은 일부 트랜잭션을 기존 방식대로 DB에서 처리하고 결과만 트랜잭션에 올리는 방식으로 해결하기도 한다. P2E 업계에서는 이더리움의 송금 지연의 문제로 다른 메인넷을 선택하는 경우도 늘어나고 있다.

싸이메타버스체인(cymetaversechain)은 게임에서 처리 가능한 속도의 트랜잭션을 보장하고 있고 수수료 역시 고정 수수료 30원 이하로 저렴한 편이다. 싸이메타버스체인은 NFT와 메타버스, 게임을 위해 개발되었기 때문에 트랜잭션 비용 P2E를 위한 관리자 기능이 추가될 예정이다.

P2E를 구현하기 위해서는 게임 개발자가 그 동안 경험해보지 못한 지갑이 필요하다. 지갑 기술은 오픈 소스이고 여러 솔루션이 있기 때문에 다양한 선택지가 있다. 앞서 말한 infura도 좋은 선택이지만, 앞으로 한국에서 서비스되려면 ISMS 인증이 필수다. 필자는 국내외 여러 가상화폐 지갑 서비스를 이용해봤는데 가상화폐 지갑으로 헥슬란트의 옥텟(octet.hexlant)이 다음과 같은 이유로 서비스 도입과 운영에서 좋은 선택지 중 하나이다.

첫째. 보안적인 면에서 ISMS와 금융권 보안 가이드를 지킨다.
둘째, 이더리움을 비롯한 다양한 메인넷을 지원한다.
셋째, 좋은 관리자와 관리자를 확장하기 위한 좋은 API가 있다.
넷째. 한국어로 서비스 대응이 가능하다.

옥텟의 장점 중 하나는 개발자와 사용자에게 열린 커뮤니케이션이다. 서비스 도중 발견한 테스트넷의 관리자의 보안 취약점 역시 즉시 대응하는 팀의 모습은 인상 깊었다.

P2E를 비롯해서 NFT 프로젝트를 운영하다보면 서비스 장애를 자주 만난다. 대표적으로 클레이튼의 메인넷 장애로 송금이 되지 않거나 송금 내역이 제대로 갱신되지 않는 문제이다. 이 경우 옥텟과 같은 지갑 서비스 팀이 지속적으로 메인넷의 상태를 확인하고 개발팀에 장애와 장애 후속 대책 대응을 진행한다. 옥텟으로 서비스를 운영하면서 메인넷의 장애, 추가로 다양한 메인넷의 지원에서 만족스러운 서비스를 경험할 수 있었다.

P2E 지갑 서비스는 오픈 소스로 만들거나 해외 서비스를 사용할 수 있지만, 가능하다면 보안과 관리자툴까지 확인하고 서비스를 선택할 필요가 있다. P2E 게임을 개발하기 위해서는 다음 질문을 고려해야 한다.

이더리움 기반으로 할 것인가?
얼마나 빠른 전송 속도가 필요한가?
송금 수수료는 어느 정도까지 용납 가능한가?
메인넷 커뮤니티의 규모는 적절한가?
여러 메인넷을 지원할 것인가?
가상화폐 지갑은 개발할 것인가?
서비스로 이용할 것인가?
메인넷 장애 허용 시나리오와 유저 대응을 어찌 할 것인가?

블록체인 기반의 게임은 앞으로 시장의 한 축이 되어 갈 것이다. 아직 대부분의 게임 기업들이 이더리움 생태계에서 겪었던 문제에 대해서 리스크를 잘 이해하지 못하고 있다. 기술의 한계를 억지로 뛰어넘으려고 하기보다 우리는 블록체인의 한계를 이해하고 P2E를 개발해야 할 것이다.

[김호광 칼럼] P2E를위한블록체인기술의이해

김호광은?

마이크로소프트 MVP이며, 블록체인 기업 베타랩스의 대표이다. 게임과 블록체인 시장 모두를 경험하고 이를 잇는 가교가 되고자 노력하고 있다.

ETH의 Merge에서 ‘surge, verge, purge, splurge’까지- 모든 것을 이해하기

연례 이더리움 커뮤니티 컨퍼런스(ETHCC)가 7월 21일 파리에서 개최되었습니다. 이더 리움 [ETH] 공동 설립자 Vitalik Buterin은 이 회의에서 청중에게 연설을 하고 네트워크의 장기적인 잠재력에 대해 말했습니다.

개발자 중심 회의에서 Buterin은 다음과 같이 말했습니다. Ethereum의 전환을 보게 될 다가오는 “Merge” 작업 증명(PoW) 에게 지분 증명(PoS).

또한, 합병의 장단기적 효과를 설명하면서 Buterin은 다음과 같이 말했습니다.

“병합 후에는 작업 증명 단계가 발생했는지조차 모르는 이더리움 클라이언트를 설계할 수 있습니다.”

그는 또한 다음과 같이 말했습니다.

“ 이 로드맵이 끝나면 이더리움은 훨씬 더 확장 가능한 시스템이 될 것입니다. 결국 이더리움은 초당 100,000건의 트랜잭션을 처리할 수 있게 될 것입니다.”

그에 따르면 병합 후 프로토콜은 이더리움 네트워크의 전반적인 진화 측면에서 “55% 완성”될 것입니다. 따라서 개발자에게는 많은 작업이 있습니다.

변화는 계속된다

Buterin에 따르면 Ethereum을 보다 강력하고 안정적인 네트워크로 만들기 위해 의도된 “심각한 변경”이 이루어지고 있습니다. 그는 청중에게 통합 후 이더리움이 “서지”, “버지”, “퍼지” 및 “과시”라고 부르는 추가 업그레이드를 거칠 것이라고 말했습니다.

급증은 확장 솔루션인 이더리움 샤딩의 추가를 의미합니다. 에 따르면 이더리움 재단 레이어 2 블록체인을 훨씬 더 저렴하게 만들 것입니다.

또한 롤업 또는 번들 트랜잭션 비용을 줄이고 사용자가 이더리움 트랜잭션 비용 네트워크를 보호하는 노드를 더 간단하게 실행할 수 있습니다. 부테린은 이더리움 네트워크가 급증이 끝난 후 거래를 더 빨리 처리할 것이라고 덧붙였다.

더 버지 “무국적 클라이언트” 및 “ 버클 나무” 일종의 수학적 증명. 이러한 기술 발전으로 인해 사용자는 네트워크 유효성 검사기로 기능하기 위해 컴퓨터에 많은 데이터를 보관할 필요가 없습니다.

지분 증명 네트워크의 검증인은 잠금 또는 “스테이킹된” ETH를 사용하여 트랜잭션을 인증하고 확인합니다.

스토리지를 간소화하고 네트워크 트래픽을 줄이기 위해 퍼지 오래된 데이터를 제거하는 데 도움이 됩니다. 이전 업그레이드에 이어 과시 이는 몇 가지 소규모 업그레이드와 원활한 네트워크 운영을 보장하기 위한 미세 조정으로 구성됩니다.

Vitalik은 또한 네트워크의 복잡성과 발전 속도 때문에 이러한 분산된 목표를 달성하는 것이 어렵다고 주장했습니다. 그러나 그는 이러한 네트워크 업그레이드가 모든 당사자에게 오랫동안 기대되어 왔다고 주장했습니다.

이더리움 Transaction

트렌잭션 풀은 로컬 DB이다.

• 사용자 A 는 전자서명 후 사용자 B 에게 트랜잭션을 실행

• 해당 트랜잭션은 마이너를 포함 모든 노드들에게 브로드 캐스팅됨

• 마이너는 채널을 통해 트랜잭션을 전달받은 후 , 해당 트랜잭션이 문법에 맞게 구성되어 있는지 , 전자서명은 유효한지 , 사용자 A 의 계정에 있는 NONCE 와 맞는지를 점검하고 , 트랜잭션 처리 비용을 계산하고 , 전자서명 수신처인 사용자 B 의 주소를 확인 .

• 사용자 A 의 계정 잔액에서 처리 비용을 빼고 AccountNonce 를 +1 증가시킴 . 잔액이 충분하지 않을 경우 에러를 반환하고 오류가 없다면 가스 총량에 가스 가격을 곱해 가스 비용을 계산하고 최종 실행을 위해 트랜잭션 풀에 등록함 .

• 마이너는 트랜잭션 풀에서 트랜잭션 처리 비용이 높은 순으로 트랜잭션의 송금값을 A 계정에서 B 계정으로 전송함 .
B 계정이 컨트랙트 어카운트 일 경우 , 해당 컨트랙트 코드를 동작시킴 .
이 코드는 컨트랙트가 완료되거나 실행비용 ( 가스 ) 가 모두 소진될 때까지 계속 실행 .

• 만약 사용자 A 에게 충분한 돈이 없거나 가스가 소비되어 코드 실행을 할 수 없을 경우 등의 이유로 송금이 실패한다면 트랜잭션 처리 비용을 제외하고 모든 상태를 원복하고 트랜잭션 처리 대가를 마이너 계정에 추가함 .

• 트랜잭션이 성공하면 처리 결과를 상태 DB 에 반영하고 남은 모든 가스를 이더로 환산한 후 A 에게 반환하고 , 트랜잭션 처리 비용을 마이너에게 전송한다 .


0 개 댓글

답장을 남겨주세요