마스트 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''마스트'''(MAST; Merklized Abstract Syntax Trees)는 [[비트코인]]에 제안된 추가 기능으로, 더 작은 거래 규모, 더 많은 개인 정보 보호 및 더 큰 [[스마트 계약]]을 허용한다. 마스트의 기본 사항을 살펴보고 잠재적 이점을 설명하고 [[비트코인 프로토콜]](Bitcoin Protocol)에 추가하기 위한 현재 제안 중 일부를 요약한다.
+
'''마스트'''(MAST; Merklized Abstract Syntax Trees)는 [[비트코인]]에 제안된 추가 기능으로, 더 작은 거래 규모, 더 많은 개인 정보 보호 및 더 큰 [[스마트 계약]]을 허용한다. 마스트의 기본 사항을 살펴보고 잠재적 이점을 설명하고 비트코인 [[프로토콜]](Bitcoin Protocol)에 추가하기 위한 현재 제안 중 일부를 요약한다.
  
 
==개요==
 
==개요==
현대 [[암호]] 시스템의 맥락에서 공통 주제 분산 트러스트 네트워크를 만드는 것이다. 이들 대부분 설계, 계약의 영구 저장이 필요하다. 그러나 영구 스토리지는 주요 성능이 될 수 있다. 비용 병목 현상. 결과적으로 좋은 코드 압축체계는 이러한 계약 기반 암호화 시스템을 확장하는 데 중요한 요소이다. 이 프로젝트를 위해 우리는 공식화하고 "Merkelized Abstract Syntax Tree"라는 데이터 구조(MAST)는 데이터 [[무결성]]과 압축을 모두 해결한다. 마스트를 사용하면 원격으로 실행될 계약 [[프로그램]]을 간결하게 표현할 수 있다.<ref name="제레미 루빈">〈[http://reurl.kr/32844142LX 마스트]〉,《마스트 백서》 </ref>
+
현대 암호 [[시스템]]맥락에서 공통 주제 분산 트러스트 [[네트워크]]를 만드는 것이다. 이들 대부분 설계, 계약의 영구 저장이 필요하다. 그러나 영구 스토리지는 주요 성능이 될 수 있다. 비용 병목 현상. 결과적으로 좋은 코드 압축체계는 이러한 계약 기반 암호화 시스템을 확장하는 데 중요한 요소이다. 이 프로젝트를 위해 우리는 공식화하고 Merkelized Abstract Syntax Tree라는 데이터 구조(MAST)는 데이터 무결성과 압축을 모두 해결한다. MAST를 사용하면 원격으로 실행될 계약 프로그램을 간결하게 표현할 수 있다.<ref name="제레미 루빈">〈[http://reurl.kr/32844142LX 마스트]〉,《마스트 백서》 </ref>
  
 
==데이터 구조==
 
==데이터 구조==
 
마스트는 [[머클트리]](Merkle Trees) 와 [[AST]](Abstract Syntax Trees)의 특성을 결합하여 프로그램을 간결하고 안전하게 표현한다. 머클트리는 데이터의 무결성을 효율적으로 검증하는 데 사용 저장, 데이터 블록은 리프 [[노드]]에 저장되며 비 리프 노드는 하위 노드의 레이블 [[해시]]이다. [[비트코인]] [[블록체인]]에서 머클트리는 현재 거래 내역을 효율적으로 저장하는 데 사용된다. AST, 반면에, 프로그램의 구문 구조를 나타낸다. 프리미티브는 AST의 리프 노드에 있으며 비 리프 노드는 프로그래밍 작업을 나타내고 제어 흐름 메커니즘 MAST에서 트리의 루트는 다른 모든 노드는 서브 프로그램을 나타낸다. 트리의 각 경로는 다른 실행 분기이다.<ref name="제레미 루빈"></ref>
 
마스트는 [[머클트리]](Merkle Trees) 와 [[AST]](Abstract Syntax Trees)의 특성을 결합하여 프로그램을 간결하고 안전하게 표현한다. 머클트리는 데이터의 무결성을 효율적으로 검증하는 데 사용 저장, 데이터 블록은 리프 [[노드]]에 저장되며 비 리프 노드는 하위 노드의 레이블 [[해시]]이다. [[비트코인]] [[블록체인]]에서 머클트리는 현재 거래 내역을 효율적으로 저장하는 데 사용된다. AST, 반면에, 프로그램의 구문 구조를 나타낸다. 프리미티브는 AST의 리프 노드에 있으며 비 리프 노드는 프로그래밍 작업을 나타내고 제어 흐름 메커니즘 MAST에서 트리의 루트는 다른 모든 노드는 서브 프로그램을 나타낸다. 트리의 각 경로는 다른 실행 분기이다.<ref name="제레미 루빈"></ref>
  
*'''머클트리''' : 머클트리 구조는 [[랄프 머클]](Ralph Merkle)이라는 사람이 1979년에 만들어 낸 개념이다. 다른 트리 [[알고리즘]]과는 다르게 머클트리의 목적은 빠른 검색이 아니라 데이터의 간편하고 확실한 인증을 위해 사용한다. 머클트리의 최상위 부모노드 혹은 루트는 머클루트라 부르며 블록체인의 원소역할을 수행하는 [[블록]]에서 지정된 [[트랜잭션]]들의 해시트리라 볼 수 있다. 머클트리는 데이터의 간편하고 확실한 인증을 위해서 SHA-256 암호화 기술(해시함수)을 사용하고 있다.<ref>불곰, 〈[https://brownbears.tistory.com/372 머클트리(merkle tree)란?]〉, 《티스토리》, 2018-07-09</ref>{{자세히|머클트리}}
+
*'''머클트리''' : 머클트리 구조는 [[랄프 머클]](Ralph Merkle)이라는 사람이 1979년에 만들어 낸 개념이다. 다른 트리 [[알고리즘]]과는 다르게 머클트리의 목적은 빠른 검색이 아니라 데이터의 간편하고 확실한 인증을 위해 사용한다. 머클트리의 최상위 부모노드 혹은 루트는 머클루트라 부르며 블록체인의 원소역할을 수행하는 [[블록]]에서 지정된 [[트랜잭션]]들의 해시트리라 볼 수 있다. 머클트리는 데이터의 간편하고 확실한 인증을 위해서 SHA-256 암호화 기술(해시함수)을 사용하고 있다.<ref>불곰, 〈[https://brownbears.tistory.com/372 머클트리(merkle tree)란?]〉, 《티스토리》, 2018-07-09</ref>
  
*'''AST''' : [[AST]]란 abstract syntax tree의 약어로 추상 구문 트리 또는 간단히 구문 트리라고 불린다. AST는 [[프로그래밍 언어]]로 작성된 소스 코드의 추상 구문 구조의 트리이다. 이 트리의 각 노드는 소스 코드에서 발생하는 구조체를 나타낸다. 구문이 추상적이라는 의미는 실제 구문에서 나타나는 모든 세세한 정보를 나타내지는 않는다는 것을 의미한다.
+
*'''AST''' : [[AST]]란 abstract suntax tree의 약어로 추상 구문 트리 또는 간단히 구문 트리라고 불린다. AST는 [[프로그래밍 언어]]로 작성된 소스 코드의 추상 구문 구조의 트리이다. 이 트리의 각 노드는 소스 코드에서 발생하는 구조체를 나타낸다. 구문이 추상적이라는 의미는 실제 구문에서 나타나는 모든 세세한 정보를 나타내지는 않는다는 것을 의미한다.
  
 
==거래 지출==
 
==거래 지출==
23번째 줄: 23번째 줄:
 
===마스트노드===
 
===마스트노드===
 
*마스트노드는 문자열 내용과 부모 포인터로 구성된다.  
 
*마스트노드는 문자열 내용과 부모 포인터로 구성된다.  
*문자열 내용은 실행할 수 있는 코드이며 [[마스터노드]]는 여러 개의 자식을 가질 수 있다.  
+
*문자열 내용은 실행할 수 있는 코드이며 마스터노드는 여러 개의 자식을 가질 수 있다.  
 
*각각은 서로 다른 프로그램 실행 분기를 나타내며 addBr 메소드를 통해 새 분기를 추가 할 수 있다.  
 
*각각은 서로 다른 프로그램 실행 분기를 나타내며 addBr 메소드를 통해 새 분기를 추가 할 수 있다.  
 
*경로를 따라서 각 [[노드]]의 모든 문자열 내용 결합 따라서 마스트 에서 하나의 가능한 경로에 대한 코드를 생성한다.
 
*경로를 따라서 각 [[노드]]의 모든 문자열 내용 결합 따라서 마스트 에서 하나의 가능한 경로에 대한 코드를 생성한다.
30번째 줄: 30번째 줄:
  
 
===증명 목록===
 
===증명 목록===
코드의 무결성을 확인하기 위해 마스트 함수 "generateFullProofUpward"는 현재 노드에서 주어진 머클 루트 해시에 대한 증명 목록(Proof list)생성한다. 트리를 위쪽으로 통과시키고, 머클 해시 목록과 그것이 지나가는 코드 내용을 생성하는 것이다. 머클 해시는 이진트리를 사용하여 계산하기 때문에 논리는 더욱 복잡해진다. 결과적으로 증명 목록 생성기는 분기 머클 루트에 도달할 때까지 이 이진트리를 기어 올라 목적지 노드에 도달할 때까지 프로세스를 반복한다. 검증 프로세스의 경우, 다른 기계에 마스트 루트 노드의 머클 해시가 있다고 가정한다. 대상 노드가 마스트 루트 해시인 증명 목록을 사용하면, 이 다른 기계는 그것을 반복하여 증명 목록의 코드를 확인할 수 있고, 해시값을 합쳐서 증명 목록의 다음 해시값에 더하는지 확인할 수 있다. 최종 합계가 루트 해시를 산출한다면, 제공된 해시의 순서가 정확하다. 우리는 내용 해시가 표시됨에 따라 증명 목록의 해시에 대한 코드의 물결성을 점검한다. 또한 [[스크립트]]는 [[비트코인]] [[블록체인]]에서 사용되는 [[옵코드]](opcode)와 호환되는 증명 형식으로 컴파일할 수 있다. 어떠한 마스트도 블록체인 위에 올리지 않고, 우리가 쓴 비트코인 스크립트 해석기를 통해 테스트했다. 이는 우리의 마스트 구현과 비트코인 [[프로토콜]] 사이의 호환성을 더욱 강화시키고 이 프로젝트의 잠재적인 장래성을 비트코인 블록체인 내에 통합할 수 있게 해준다.
+
코드의 무결성을 확인하기 위해 마스트 함수 generateFullProofUpward는 현재 노드에서 주어진 머클 루트 해시에 대한 증명 목록(Proof list)생성한다. 트리를 위쪽으로 통과시키고, 머클 해시 목록과 그것이 지나가는 코드 내용을 생성함으로써 그렇게 한다. 머클 해시는 이진트리를 사용하여 계산하기 때문에 논리는 더욱 복잡해진다. 결과적으로 증명 목록 생성기는 분기 머클 루트에 도달할 때까지 이 이진트리를 기어 올라 목적지 노드에 도달할 때까지 프로세스를 반복한다. 검증 프로세스의 경우, 다른 기계에 마스트 루트 노드의 머클 해시가 있다고 가정한다. 대상 노드가 마스트 루트 해시인 증명 목록을 사용하면, 이 다른 기계는 그것을 반복하여 증명 목록의 코드를 확인할 수 있고, 해시값을 합쳐서 증명 목록의 다음 해시값에 더하는지 확인할 수 있다. 최종 합계가 루트 해시를 산출한다면, 제공된 해시의 순서가 정확하다. 우리는 내용 해시가 표시됨에 따라 증명 목록의 해시에 대한 코드의 물결성을 점검한다. 또한 [[스크립트]]는 [[비트코인]] [[블록체인]]에서 사용되는 [[옵코드]](opcode)와 호환되는 증명 형식으로 컴파일할 수 있다. 어떠한 마스트도 블록체인 위에 올리지 않고, 우리가 쓴 비트코인 스크립트 해석기를 통해 테스트했다. 이는 우리의 마스트 구현과 비트코인 [[프로토콜]] 사이의 호환성을 더욱 강화시키고 이 프로젝트의 잠재적인 장래성을 비트코인 블록체인 내에 통합할 수 있게 해준다.
  
 
===컨센서스 프로토콜 시물레이션===
 
===컨센서스 프로토콜 시물레이션===
43번째 줄: 43번째 줄:
 
파일 longcode.py은 수만 개의 가지를 가진 [[머클트리]]를 생성하여 총 코드 길이가 2M자인데, [[알고리즘]]을 적용한 후의 압축 결과는 23500자 미만이어서 압축률이 90% 이상임을 나타낸다. 그러한 알고리즘은 주파수 기반 압축을 사용하고 롱코드는 반복된 [[세그먼트]]를 반복해서 사용하기 때문에 우리는 우리가 직접 본 코드 압축을 LZW와 같은 다른 알고리즘과 압축하는 것과 비교할 수 없다. 이것은 구조적인 압축을 하므로 괜찮다. 대신 [[리눅스]] 커널에서 코드를 압축하기 위해 zip을 사용하는 것과 비교했다. 이것은 대략 6,115,332자 길이에서 압축률 70%인 1,754,665자까지 걸렸다. 압축 알고리즘은 또한 코드 블록당, 그리고 전체 증명 목록에서도 여러 곳에서 사용될 수 있다는 점에 유의해야 한다. 또한, 우리는 기본적으로 [([subproof], data, mroot)]의 목록인 마스트를 전송하기 위해 최적화되지 않은 메시지 형식을 사용한다. 이것은 문장부호와 화이트스페이스(whitespace)를 사용하지 않고 더 효율적인 문자 인코딩을 사용하도록 더욱 최적화될 수 있다. 놀랍게도 증명을 [[비트코인]] 스크립트로 인코딩하는 것이 외부 검증 스크립트를 갖는 것보다 더 효율적이었다.
 
파일 longcode.py은 수만 개의 가지를 가진 [[머클트리]]를 생성하여 총 코드 길이가 2M자인데, [[알고리즘]]을 적용한 후의 압축 결과는 23500자 미만이어서 압축률이 90% 이상임을 나타낸다. 그러한 알고리즘은 주파수 기반 압축을 사용하고 롱코드는 반복된 [[세그먼트]]를 반복해서 사용하기 때문에 우리는 우리가 직접 본 코드 압축을 LZW와 같은 다른 알고리즘과 압축하는 것과 비교할 수 없다. 이것은 구조적인 압축을 하므로 괜찮다. 대신 [[리눅스]] 커널에서 코드를 압축하기 위해 zip을 사용하는 것과 비교했다. 이것은 대략 6,115,332자 길이에서 압축률 70%인 1,754,665자까지 걸렸다. 압축 알고리즘은 또한 코드 블록당, 그리고 전체 증명 목록에서도 여러 곳에서 사용될 수 있다는 점에 유의해야 한다. 또한, 우리는 기본적으로 [([subproof], data, mroot)]의 목록인 마스트를 전송하기 위해 최적화되지 않은 메시지 형식을 사용한다. 이것은 문장부호와 화이트스페이스(whitespace)를 사용하지 않고 더 효율적인 문자 인코딩을 사용하도록 더욱 최적화될 수 있다. 놀랍게도 증명을 [[비트코인]] 스크립트로 인코딩하는 것이 외부 검증 스크립트를 갖는 것보다 더 효율적이었다.
  
==제안 방법==
+
==제안된 방법==
*'''Johnson Lau의 BIP114''' : 이 기능은 네이티브 [[세그윗]] 주소(bech32)가 마스트의 머클 루트에 커밋할 수 있도록 하는 세그윗 기반 확장 기능을 사용한다. 그런 다음 스펜더는 트리에서 단일 하위 [[스크립트]]를 선택할 수 있다.<ref name="제안">David A. Harding, 〈[https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f What is Bitcoin Merklized Abstract Syntax Tree(MAST)?]〉, 《미디엄》, 2017-10-12</ref> 이 [[BIP]]는 머클트리를 사용하여 스크립트에서 상호 배타적인 분기를 인코딩하는 새로운 미러링 모니터 프로그램 유형을 정의한다. 이는 현재 불가능한 복잡한 상환 조건을 가능하게 하고, 실행되지 않은 스크립트를 숨겨서 프라이버시를 향상시키며, 추가 비용 없이 합의되지 않은 데이터를 포함할 수 있다.<ref name="방법">Alex Lielacher, 〈[https://btcmanager.com/what-is-mast-how-it-improves-bitcoin/ What is MAST and How Does it Improve Bitcoin?]〉, 《BTC매니저》, 2018-03-06</ref>
+
*'''ji2012의 BIP114''' : 이 기능은 네이티브 [[세그윗]] 주소(bech32)가 마스트의 머클 루트에 커밋할 수 있도록 하는 세그윗 기반 확장 기능을 사용한다. 그런 다음 스펜더는 트리에서 단일 하위 [[스크립트]]를 선택할 수 있다.<ref name="제안">David A. Harding, 〈[https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f What is Bitcoin Merklized Abstract Suntax Tree(MAST)?]〉, 《미디엄》, 2017-10-12</ref> 이 [[BIP]]는 머클트리를 사용하여 스크립트에서 상호 배타적인 분기를 인코딩하는 새로운 미러링 모니터 프로그램 유형을 정의한다. 이는 현재 불가능한 복잡한 상환 조건을 가능하게 하고, 실행되지 않은 스크립트를 숨겨서 프라이버시를 향상시키며, 추가 비용 없이 합의되지 않은 데이터를 포함할 수 있다.<ref name="방법">Alex Lielacher, 〈[https://btcmanager.com/what-is-mast-how-it-improves-bitcoin/ What is MAST and How Does it Improve Bitcoin?]〉, 《BTC매니저》, 2018-03-06</ref>
*'''Mark Friedenbach의 BIP116, 117''' : [[프로그래머]]가 스스로 마스트 기반 반항을 검증할 수 있는 스크립트를 작성할 수 있는 방식으로 스크립트 언어의 유연성을 향상시킨다.  Friedenbach가 선호하는 방식으로 구현할 경우 현재 비트코인(bare, P2SH, 세그윗)이 지원하는 세 종류의 스크립트에 모두 머클 증명을 사용할 수 있게 된다. 두 접근법 모두 서로 비교했을 때 절충을 나타내지만, 두 접근법 모두 공통된 장점이 있다. 어느 쪽이든 [[소프트포크]]로 작동할 수 있다.<ref name="제안"></ref> 첫 번째 BIP는 "스크립트 작성자가 데이터 요소 세트에 커밋하고 전체 세트를 공개하지 않고 구속할 때 이러한 요소 중 하나 이상을 제공할 수 있도록" 하려는 [[BIP116]]이다. 두 번째 BIP는 번호 117이며 제목은 Tail Call Semantics이다. [[프리던배시]](Friedenbach)는 마스트 진술을 달성하는 방법에 관해 설명한다.  "BIP 116과 함께 이 BIP를 사용하면 스크립트가 거의 무제한의 코드 경로에 커밋한 다음 사용 시간에 사용된 실제 코드 경로를 알 수 있다. 이를 통해 복잡한 분기 스크립트를 일련의 비 분기 플랫 실행 경로로 분해하고 가능한 전체 경로 세트를 커밋한 다음 소비 시간에 사용된 경로만 공개할 수 있는 일반화된 마스크 형식을 달성했다."
+
*'''Mark Friedenbach의 BIP116, 117''' : [[프로그래머]]가 스스로 마스트 기반 반항을 검증할 수 있는 스크립트를 작성할 수 있는 방식으로 스크립트 언어의 유연성을 향상시킨다.  Friedenbach가 선호하는 방식으로 구현할 경우 현재 비트코인(bare, P2SH, 세그윗)이 지원하는 세 종류의 스크립트에 모두 머클 증명을 사용할 수 있게 된다. 두 접근법 모두 서로 비교했을 때 절충을 나타내지만, 두 접근법 모두 공통된 장점이 있다. 어느 쪽이든 [[소프트포크]]로 작동할 수 있다.<ref name="제안"></ref> 첫 번째 BIP는 "스크립트 작성자가 데이터 요소 세트에 커밋하고 전체 세트를 공개하지 않고 구속할 때 이러한 요소 중 하나 이상을 제공할 수 있도록" 하려는 [[BIP116]]이다. 두 번째 BIP는 번호 117이며 제목은 Tail Call Semantics이다. [[Friedenbach]]는 마스트 진술을 달성하는 방법에 관해 설명한다.  "BIP 116과 함께 이 BIP를 사용하면 스크립트가 거의 무제한의 코드 경로에 커밋한 다음 사용 시간에 사용된 실제 코드 경로를 알 수 있다. 이를 통해 복잡한 분기 스크립트를 일련의 비 분기 플랫 실행 경로로 분해하고 가능한 전체 경로 세트를 커밋한 다음 소비 시간에 사용된 경로만 공개할 수 있는 일반화된 마스크 형식을 달성했다."
  
[[존슨 라우]](Johnson Lau)의 제안은 세그윗 스크립트 내에서만 작동할 수 있지만 프리던배시의 제안은 현재 [[비트코인]] [[블록체인]]에서 사용 중인 3개 스크립트 내에서 구현될 수 있다. 강력하지만 단순한 도구의 모듈성과 구성을 사용하여 마스트를 구성하는 단일 테일 콜 재귀를 통해 합의 코드 변경을 최소화하고 부담을 검토하며 기술 부채를 확보하면서 복잡하고 바람직한 기능을 사용할 수 있다.<ref name="방법"></ref>
+
ji2012는 제안은 세그윗 스크립트 내에서만 작동할 수 있지만 Friedenbach 제안은 현재 비트코인 블록체인에서 사용 중인 3개 스크립트 내에서 구현될 수 있다. 강력하지만 단순한 도구의 모듈 성과 구성을 사용하여 마스트를 구성하는 단일 테일 콜 재귀를 통해 합의 코드 변경을 최소화하고 부담을 검토하며 기술 부채를 확보하면서 복잡하고 바람직한 기능을 사용할 수 있다.<ref name="방법"></ref>
  
==평가 및 전망==
+
==평가와 전망==
 
이 프로젝트의 주요 영향은 [[응용 프로그램]]에 있다. 계약을 활용한 기존 환경, 마스트 도입은 기존에 큰 영향을 줄 수 있다. [[비트코인]] 계약에서 [[네트워크]]의 분산 [[노드]] 사이의 코드 전송에 이르는 문제, 이 마스트 구현에 대한 잠재적 개선 사항은 다음과 같다.
 
이 프로젝트의 주요 영향은 [[응용 프로그램]]에 있다. 계약을 활용한 기존 환경, 마스트 도입은 기존에 큰 영향을 줄 수 있다. [[비트코인]] 계약에서 [[네트워크]]의 분산 [[노드]] 사이의 코드 전송에 이르는 문제, 이 마스트 구현에 대한 잠재적 개선 사항은 다음과 같다.
 
*분산 구조 및 실행에 대한 더 큰 지원
 
*분산 구조 및 실행에 대한 더 큰 지원
*또는 더 큰 확장성을 허용하는 프레임워크 추가
+
*또는 더 큰 확장성을 허용하는 프레임 워크 추가
 
*이 데이터 구조의 사용자에 의해 완벽한 통합
 
*이 데이터 구조의 사용자에 의해 완벽한 통합
 
*비트코인은 저장된 데이터의 양을 줄임
 
*비트코인은 저장된 데이터의 양을 줄임
63번째 줄: 63번째 줄:
 
* 제레미 루빈, 〈[http://reurl.kr/32844142LX 마스트]〉, 《마스트 백서》
 
* 제레미 루빈, 〈[http://reurl.kr/32844142LX 마스트]〉, 《마스트 백서》
 
*  Sudhir Khatwani,〈[https://themoneymongers.com/merkelized-abstract-syntax-tree-mast/ Bitcoin's Merkelized Abstract Syntax Tree(MAST) Explained!!]〉, 《TheMoneyMongers》, 2019-08-13
 
*  Sudhir Khatwani,〈[https://themoneymongers.com/merkelized-abstract-syntax-tree-mast/ Bitcoin's Merkelized Abstract Syntax Tree(MAST) Explained!!]〉, 《TheMoneyMongers》, 2019-08-13
* David A. Harding, 〈[https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f What is Bitcoin Merklized Abstract Syntax Tree(MAST)?]〉, 《미디엄》, 2017-10-12
+
* David A. Harding, 〈[https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f What is Bitcoin Merklized Abstract Suntax Tree(MAST)?]〉, 《미디엄》, 2017-10-12
 
*  Alex Lielacher, 〈[https://btcmanager.com/what-is-mast-how-it-improves-bitcoin/ What is MAST and How Does it Improve Bitcoin?]〉, 《BTC매니저》, 2018-03-06
 
*  Alex Lielacher, 〈[https://btcmanager.com/what-is-mast-how-it-improves-bitcoin/ What is MAST and How Does it Improve Bitcoin?]〉, 《BTC매니저》, 2018-03-06
 
*  불곰, 〈[https://brownbears.tistory.com/372 머클트리(merkle tree)란?]〉, 《티스토리》, 2018-07-09
 
*  불곰, 〈[https://brownbears.tistory.com/372 머클트리(merkle tree)란?]〉, 《티스토리》, 2018-07-09
69번째 줄: 69번째 줄:
  
 
== 같이 보기 ==
 
== 같이 보기 ==
*[[비트코인]]
+
* [[비트코인]]
*[[머클트리]]
+
 
*[[AST]]
 
*[[BIP114]]
 
*[[BIP116]]
 
*[[BIP117]]
 
 
{{블록체인 기술|검토 필요}}
 
{{블록체인 기술|검토 필요}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)