on
S3: 스마트 컨트랙트
S3: 스마트 컨트랙트
비트코인은 왜 튜링 불완전성인가요? 스마트 컨트랙트가 포함된 이더리움은 왜 튜링 완전인가요?
비트코인을 만든 사토시 나카모토는 무한공격등과 같은 보안상 이슈를 고려해 반복문 opcode 를 제외했고 이로인해 튜링불완전이 되었다. 하지만 이더리움은 이러한 튜링불완전성 한계를 넘어 개발자가 원하는 유연한 스마트 컨트랙트를 만들수 있도록 반복문 opcode를 지원하며 솔리디티라는 튜링완전언어를 사용함으로써 튜링완전이라고 할 수 있다.
하이퍼레저 패브릭에서 사용되는 체인링크와 이더리움에서 사용되는 솔리디티의 차이점은 무엇인가요?
솔리니티는 스마트컨트랙트로써 전역상태에 포함된 비즈니스 객체의 상태를 변경시키는 트랜잭션 로직이며
체인링크는 블록체인 네트워크에 배포하기 위해 패키징된 스마트컨트랙트 집합이다.
스마트컨트랙트는 트랜잭션을 관리하며 체인코드는 스마트컨트랙트를 배포하기 위해 패키징하여 관리한다.
EVM은 무엇인가요? EOS VM은 무엇인가요? 두개의 차이점은 무엇인가요? 왜 JVM으로 만들어졌나요?
EVM은 이더리움 블록체인 네트워크 노드들이 공유하는 하나의 가상 머신으로 스마트컨트랙트를 위한 솔리디티 코드를 실행할 수 있게 해준다.
EOS VM은 이더리움의 EVM처럼 EOS내에서 스마트 계약처리를 담당하는 가상머신이다.
EOS VM은 이더리움 EVM과 다르게 Web Assembly 기술을 통해 WAVM을 구현했다.
JVM은 대규모,장기적 산업검사를 마쳤고 안전하고 강력하다. 그리고 JAVA언어와의 기존 개발환경을 사용하여 개발자는 더 빠르게 시작할수 있고 부동 소수점을 지원하는것을 포함한다.
Banchor 알고리즘이 무엇인가요? 왜 뱅코르 알고리즘이 있는데 유니스왑을 사용하나요?
이더리움의 Solidity 언어와 다르게, Go, C++을 사용하면 비결정적 문제가 생깁니다. 무슨 의미인가요?
이더리움의 Solidity 언어는 어떤식으로 리소스에 대한 과금을 하나요?
Solidity 처럼 C++이나 Go로 만든 프로그램에서 CPU,Memory,Storage 를 사용한 만큼의 지표를 구하고 싶을 때 어떻게 할 수 있을까요?
이더리움 스마트 컨트랙트에서는 왜 타이머나 이벤트를 사용할 수 없나요?
여러 계약이 엮인 파일을 배포하려고 하면 무슨 일이 발생하나요?
노드는 어떻게 스마트 컨트랙트 코드를 실행하나요?
이더리움 스마트 컨트랙트 코드는 솔리디티언어로 작성된다 EVM에서는 솔리디티 언어를 읽을 수 없으므로 solc를 이용해 evm이 읽을 수 있는 바이트코드 형태로 컴파일되고 이 바이트코드를 geth를 이용해 이더리움 네트워크에 올리고되고 바이트코드를 opcode로 바꾸어 실행한다.
dApp이란 무엇이고 일반적인 어플리케이션과는 무엇이 다른가요?
Dapp은 블록체인 기술을 활용하여 중앙서버없이 네트워크상에 정보를 분산 저장하여 구동하는 앱이며
일반적인 어플리케이션은 구글이나 애플등이 중앙화된 곳에 사용정보를 저장한다.
EVM 메모리의 구성요소를 설명해주세요
EVM은 휘발성, 비휘발성 메모리로 구성되어 있으며, 여기에 바이트 배열 형태로 스택의 항목들을 저장합니다.
비휘발성 (non-volatile)
- storage : 상태(state)가 저장
- code : 스마트 컨트랙트의 컴파일된 바이트 코드가 저장
volatile (휘발성)
- stack : OP 코드를 실행하기위한 스택영역
- args : 컨트랙트 호출시에 넘어오는 인자를 저장
- memory : word 단위로 아이템을 저장하는 바이트 배열
스마트 컨트랙트의 실행 비용이 지정된 가스보다 더 많이 소요된다면 무슨 일이 일어나나요?
트랜잭션은 OOG 상태가 되며 실행이 중지된다. 그리고 상태가 변경됐다면 트랜잭션 실행 이전상태로 되돌리고 실패 트랜잭션 기록이 남게된다. 중지되기전까지 EVM이 연산했으므로 가스는 환불되지 않고 이 가스는 채굴자들 주소로 송금된다.
트랜잭션에서 가스 사용량은 무엇에 따라 달라지며, 트랜잭션 수수료는 어떻게 계산되나요?
EVM이 트랜잭션을 실행하며 모든opcode에 따라
GAS Limit과 GAS Price를 통해 최대몇까스 까지 쓸지와 1gas당 얼마의 Gwei를 쓸지 정한뒤
GAS Limit과 Gas Price를 곱하여 10의 ^ x를 구하면 1이더는 10^18wei로 계산할 수 있다.
from http://mybc.tistory.com/68 by ccl(A) rewrite - 2021-11-15 19:27:02