트랜잭션 비용

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

Daum 블로그

리드코인, Gas Crusher 버전 1.0 발표 - 이더 트랜잭션 비용을 85 % 절약할 수 있다!

리드코인, Gas Crusher 버전 1.0 발표 - 이더 트랜잭션 비용을 85 % 절약할 수 있다!


2018 년 7 월 16 일
다음는 리드코인의 빅 뉴스이다! 우리 개발자들은 누구나 무료로 사용할 수 있는 오픈 소스의 스마트 계약서인 Gas Crusher v1.0을 발표했다.이 오픈 소스의 스마트 계약서가 처리 수수료를 크게 줄임으로써 많은 거래 비용을 절약할 수 있다.
저희는 플랫폼을 디자인할때 많은 잠재적인 고객 및 LDC 토큰을 많은 사람들에게 보낼 수 있는 시스템을 만들어야 한다는 것을 알게 되었다. 해결해야 할 과제 중 하나는 GAS의 요금이다. 이더리움 블록체인의 모든 거래에는 수수료를 지급해야 하며 수수료는 광부에게 직접 지급해야 한다. 그건 그렇고, 누구든지 광부가 될 수 있다. 운이 좋거나 충분한 계산 능력을 갖추고 있다면 수수료를 받을 수 있다. 수수료는 거래에 사용된 GAS 수와 GAS 가격을 곱한 값으로 계산된다. 다음의 절차는 경매와 같이 가장 높은 세율을 설정하는 사람은 블록체인에 제일 먼저 들어간다.
사용자가 잠재적인 고객 관계를 구매할 때까지 오래 기다릴 수 없다는 것을 알고 있으므로 우리는 사용자가 가능한 한 최저 비용으로 잠재적인 고객을 구매할 수 있는 플랫폼을 만들고자 한다. 우리 시스템은 많은 사용자들에게 실시간으로 LDC 토큰을 거래할 수 있도록 지원해야 하며, LDC 토큰 소지자의 비용을 절감할 수 있는 방법을 열심히 찾고 있다.
이를 위해 우리는 각 거래에 필요한 계산 성능을 줄임으로써 훨씬 저렴한 요금으로 수백 명의 사용자에게 토큰을 보낼 수 있는 스마트 계약을 개발했다. 이더리움의 테스트 네트에서 메커니즘을 검토한 후 실제 이더리움 블록체인에 이를 배치할 것이다. 지난주에, 우리는 사용자들에게 현상금 토큰을 제공하기 위해 이 시스템을 한 번 사용했으며, 시스템은 훌륭하게 작동했다! 이것이 우리의 발전 중에 또 다른 중요한 단계이다.


Gas Crusher의 거래 내역

기술적 세부 사항:

블록체인의 각 거래마다는 GAS를 사용해야 한다. 개인 지갑 간의 단순한 이더리움 토큰 거래 (비 스마트 계약)의 경우 필요한 GAS는 21,000이다. 그런 다음 GAS의 가격을 지정할 수 있다. 예를 들어 15 Gwei를 선택하면 GAS필요한 시간이 소비된다. (즉 GAS유닛의 요금: 315,000 Gwei 또는 0.000315 Ether (~ 0.15 $))
이것은 트랜잭션 비용 정기적인 이더리움 거래 패턴이다. 토큰을 거래할 때 약 50,000 GAS 유닛를 새 지갑으로 거래되며 GAS의 총금액은 실제로 더 높은 것으로 나타났다. 그 이유는 새 지갑을 만들 때 블록체인의 추가 메모리가 필요하며 메모리 비용이 추가로 들기 때문이다.


따라서 거래 비용을 줄이는 방법이 두 가지가 있다.
1.낮은 GAS 가격을 선택한다.
2.각 거래에 필요한 GAS 유닛의 양을 줄이는 방법을 찾는다.

낮은 GAS 가격을 선택했다면 (예 : 7 Gwei,이더리움 네트워크가 가장 바쁠 때 (최근와 같이) 블록을 입력하는 데 몇 시간이 걸릴 수 있으며 새 거래를 제출하기 전에 거래가 블록에 입력될 때까지 기다려야 한다. 이더리움은 동일한 지갑의 병렬 거래를 지원하지 않는다. 우리도 한 번 이런 경우를 만났다. 우리는 520 개의 트랜잭션 비용 현상금 수상자에게 토큰을 이전해야 했는데 위에 언급했듯이 모든 이전 과정을 마치기 위해 4 시간 곱하기 520개 거래는 거의 3개월이나 걸린다. 그래서 네트워크가 바쁠 때 너무 오래 기다리지 않으려면 GAS 가격을 약 40Gwi로 올려야 한다.
대신, 우리는 한 번의 거래로 거의 무제한의 사용자에게 토큰을 거래할 수 있는 새로운 스마트 계약을 개발했다. 그런 다음 모든 토큰을 새로운 스마트 계약으로 이전하고 한 번에 저렴한 GAS 가격인 7Gwei에 대한 모든 거래를 수행했다. 블록이 블록체인에 들어갔을 때 모든 거래가 한꺼번에 이루어지면서 거래 당 35,000 개의 GAS 유닛만 사용되었으며 3 개월 대신 2시간만 기다려야 한다.

요약하자면, 정상 가격은 50,000 GAS유닛 * 40 Gwei * 520 = 1.04 에테르로 내렸을 것이다. 이는 우리가 바쁜 네트워크에서 두 시간 만에 520 번의 거래를 할 수 있게 해 준다.
대신 우리는 35,000 GAS 유닛 거래 당 * 7 Gwei * 520 = 0.1274 에테르만 지급하고 하나의 거래에서85 %의 GAS 요금을 절약했다.

더 많은 개발 업데이트 정보를 알아보기 위해 저희 Telegram 그룹과 블로그에 많은 관심을 부탁드립니다!

이더리움 Transaction

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

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

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

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

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

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

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

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

트랜잭션 비용

https://media.fastcampus.co.kr/insight/why-blockchain-is-hard/

이 카테고리는 Ground X에서 진행한 한양대학교 일반대학원 블록체인 융합학과 강의와 그 외의 참고자료를 보고 정리하는 곳입니다. 강의 동영상은 여기 서 볼 수 있습니다.

너무 빈약한 지식이기에 이 글을 신뢰하지는 마세요.. 혹시 지나가시다가 잘못된 점 발견하시면 피드백 부탁드립니다.

1. 블록체인의 상태

블록체인은 트랜잭션으로 변화하는 상태 기계라고 할 수 있다.

  • 첫블록을 블록0이라고 했을때 이 블록은 초기값이 none이다.
  • 그리고 Changes(트랜잭션)가 일어나며 최종값이 정해진다.
  • 다음 블록1은 블록0의 최종값을 초기값으로 트랜잭션 비용 잡고 시작한다. 이 후로 쭉 이어진다.
  • 트랜잭션의 목적은 블록체인의 상태를 변경하는 것

어카운트(계정)

  • 상태는 어카운트라고 하는 오브젝트들로 구성돼 있다.
  • 각 오브젝트는 주소와 상태변화 내역을 가지고있다.
  • 어카운트는 EOA(External Owned Accounts)와 CA(Contract Account)로 구분된다.
  • EOA는 통상 사용자가 사용하는 어카운트다.

트랜잭션은 어카운트를 생성하거나 변경한다.

트랜잭션의 sender와 recipient가 있는데 recipient(받는이)가 누구냐에 따라서 트랜잭션의 목적이 나뉜다.

  • 기존에 존재하지 않던 주소로 트랜잭션을 발생시키면 새로운 컨트랙트 배포
  • 기존에 존재했던 주소로 트랜잭션을 발생시키면 보내면 그냥 토큰 교환.
  • CA주소로 트랜잭션을 발생시키면 컨트랙트 실행

2. 가스비

트랜잭션을 참여자들이 받고, 트랜잭션을 블록에 넣기 위해 검증, 실행, 블록으로 묶어서 저장을 해준다.

이 과정에서 비용이 발생한다.

  • 트랜잭션을 받기위해 네트워크를 열어놓는 비용
  • 트랜잭션을 받고 블록에 넣기까지 연산하는 비용
  • 블록으로 묶어서 저장하는 비용

이 비용은 sender가 부담한다. 토큰 보내는 사람이 수수료를 부담하는 그런 느낌.

이 가스비는 블록을 생성한 노드(트랜잭션 처리한 노드)가 수집한다.

즉, 트랜잭션을 처리하는데 필요한 자원(computing, power, storage)을 비용으로 전환한 것이 가스

이더리움은 소모되는 가스비를 미리 트랜잭션에 명시하는데 각 노드들은 이것을 보고 가스비가 높은 트랜잭션을 먼저 처리한다. 돈을 많이 준다니깐.

하지만 결국 하는 연산은 똑같기에 클레이튼은 가스비를 미리 명시하지 않도록 구현돼 있기에 사용자들끼리 경쟁을 하지 않고 선입선출식으로 트랜잭션을 처리하게 된다.

  • 노드(마이너)는 트랜잭션을 받는다.
  • 트랜잭션 속의 sender를 확인해서 sender의 어카운트에 유효한 만큼의 balance가 있는지 확인한다.
  • balance가 없으면 트랜잭션 거절
  • balance가 충분하면 트랜잭션을 체결(이때 가스비를 받는다)

내가 아닌 다른 사람이 나의 어카운트로 트랜잭션을 보내면 그 비용을 내가 지불해야하는 문제가 발생한다.

그렇기에 어느 특정 어카운트를 사용해서 트랜잭션을 발생시키려면 특정 어카운트로 검증할 수 있는 서명이 있어야한다. 트랜잭션은 항상 서명과 함께 움직인다.

  • 공개키로 sender의 주소를 도출해서 sender를 확인.
  • 이걸로 서명도 검증
  • 증명 과정은 간단하지만 sender주소, sender의 공개키, sender의 서명 등 많은 정보를 트랜잭션에 담아야 하기에 비효율
  • 트랜잭션에 sender의 주소 없이 서명만 넣는다.
  • 서명에서 공개키를 도출할 수 있는 어떤 함수가 있다.(노드가 할 수 있다)
  • 도출한 공개키로 만든 주소가 실존하면 검증완료.
  • 하지만 서명에서 공개키를 도출하는 과정에서 연산이 너무 많다. 느려짐.
  • 이게 이더리움이 성능 안좋다고 하는 이유의 3할 정도.
  • 이더리움 기반으로 만든 클레이튼은 공개키 도출 과정을 병렬화 시켜보았다. 연산량이 줄긴 줄었다.
  • 그래도 문제였기에 그냥 sender의 주소를 포함시켰다. 자세한 이유는 이후 강의에서 아라보자.

4. 트랜잭션

트랜잭션은 이런 구조를 가진다.

  • from과 to의 값은 내가 아무 텍스트를 입력한 것이다.
  • 어카운트 기반 블록체인이 nonce값을 사용한다. 어카운트가 몇 번째 트랜잭션을 보냈는지 의미.

이더리움 트랜잭션은 다음과 같은 구조를 가진다.

  • from이 없다. 160비트 아끼기 위해
  • gas는 instruction을 몇개까지 실행하겠다. 라는 의미
  • gasPrice는 각 gas마다 얼마를 지불할지. 를 의미
  • gas x gasPrice 는 총 가격이 나온다.
  • gas x gasPrice의 값 이상이 balance에 있어야 실행된다.
  • v,r,s는 전자서명 부분.

클레이튼 트랜잭션은 다음과 같은 구조를 가진다.

  • 타입과 from이 생겼다.
  • to가 CA인지, EOA인지, 없는지에 따라 트랜잭션의 목적이 바뀐다고 위에 말했었는데,
  • type에 미리 트랜잭션의 목적을 명시해둔다.
  • gasPrice를 사용자가 바꿀 수 없다. (이더리움 트랜잭션 가스비의 1/10 미만)
  • 사용자는 트랜잭션을 생성, 서명하여 Node(마이너)에게 전달
  • 이때 데이터 구조를 온전하게 전달하고자 RLP알고리즘으로 트랜잭션 직렬화
  • 사용자와 Node가 같은 프로토콜로 통신하는 것이 중요
  • 올바른 트랜잭션 수신시 트랜잭션을 해시로 반환
  • 트랜잭션 체결 시 Receipt(영수증)반환(소요된 gas, 트랜잭션 해시, 인풋 등이 기록돼있다)

이더리움 입문 바이블: 모든 이더리움 입문자를 위하여 - 2.4 계정(Accounts)

#무료 이더리움 입문 바이블 ##텍스트 강의에 담긴, 너무나도 중요하고 뼈대있는 이더리움 기초 내용들 블록체인에 대한 관심, 이더리움에 대한 학습 열의에 대해서 논하는건 이제 너무나도 당

DApp 그리고 이더리움 어카운트(Account) — Steemit

지난 이더리움 백서의 내용중 부실했던 부분들을 채워나가는 형태로, 지난 비트코인 시리즈와 비슷하게 최대한 쉽고 자세하게 풀어서 설명하는 포스팅을 진행 하도록하겠습니다. 이더리움은

트랜잭션 비용

Maximize HPC Performance

oneHPC
고성능 컴퓨팅을 위한 테라텍의 노력은 계속됩니다.

오픈 하드웨어 IT 인프라 시장을 주도하는 테라텍

혁신적인 오픈 하드웨어 IT 인프라를 제공하는 데이터 센터용 랙 솔루션
Wiwynn사의 OCP시스템을 국내 유일 총판 테라텍에서 만나보세요.

인텔 솔루션 프리미어 파트너 테라텍

인텔 프리미어 등급 ITPP 파트너
최고의 기술력으로 최상의 서비스를 제공합니다.

인텔 Optane DC 기술의 차이를 경험하십시오

인텔 Optane DC 제품을 사용하여 애플리케이션을 가속화하고 트랜잭션 비용을 줄이며 데이터센터 효율성을 향상 시키십시오.
이제 특정 솔루션에 인텔 Optane DC 기술의 성능차이를 눈으로 확인하실 수 있습니다.

오픈 하드웨어 IT 인프라 시장을 주도하는 테라텍

혁신적인 오픈 하드웨어 IT 인프라를 제공하는 데이터 센터용 랙 솔루션 Wiwynn사의 OCP시스템을 국내 유일 총판 테라텍에서 만나보세요.

오픈 하드웨어 IT 인프라 시장을 주도하는 테라텍

혁신적인 오픈 하드웨어 IT 인프라를 제공하는 데이터 센터용 랙 솔루션 Wiwynn사의 OCP시스템을 국내 유일 총판 테라텍에서 만나보세요.

오픈 하드웨어 IT 인프라 시장을 주도하는 테라텍

혁신적인 오픈 하드웨어 IT 인프라를 제공하는 데이터 센터용 랙 솔루션 Wiwynn사의 OCP시스템을 국내 유일 총판 테라텍에서 만나보세요.


0 개 댓글

답장을 남겨주세요