Diễn giải đề xuất nâng cấp Bitcoin Taproot: Chữ ký P2SH, MAST và Schnorr
以太坊爱好者
2021-09-26 03:31
本文约4458字,阅读全文需要约18分钟
Bài viết này sẽ phân tích Taproot từ các cấp độ kỹ thuật khác nhau, giới thiệu các công nghệ liên quan đến bản nâng cấp này và những lợi ích mà những công nghệ này sẽ mang lại cho người dùng Bit

tiêu đề cấp đầu tiên

Taproot là gì?

Taproot lần đầu tiên được đề xuất vào năm 2018 bởi người đóng góp cho Bitcoin Core, Gregory Maxwell. Việc triển khai này hiện đang được phát triển. Nếu không có Taproot, các giao dịch phức tạp này (khóa thời gian, đa chữ ký) sẽ yêu cầu nhiều giao dịch hoàn thành và do đó dễ dàng thất bại.

Taproot nâng cao tính riêng tư của Bitcoin bằng cách cho phép các giao dịch phức tạp (đa chữ ký, khóa thời gian) được thực thi như thể chúng là một giao dịch Bitcoin đơn lẻ.

Bản nâng cấp Taproot bao gồm ba thay đổi kỹ thuật (khái niệm) quan trọng để nâng cao khả năng mở rộng, quyền riêng tư và tính linh hoạt của Bitcoin.

  • chữ ký Schnorr

  • MAST

  • chữ ký Schnorr

tiêu đề cấp đầu tiên

P2SH(Pay-to-ScriptHash)

Địa chỉ Bitcoin là một chuỗi các chữ cái và số. Người dùng có thể chia sẻ nó với những người khác để nhận BTC từ người sau. Có hai tiêu chuẩn chính cho các giao dịch Bitcoin: Pay-to-PubKeyHash (P2PKH) và Pay-to-ScriptHash (P2SH).

Trước khi bàn về hai khái niệm P2SH (Pay To Script Hash) và P2PKH (Pay-To-PubKey Hash), chúng ta hãy làm quen với kiến ​​thức nền tảng về Bitcoin:

  • Trên mạng Bitcoin, Bitcoin ở dạng UTXO. UTXO là tên viết tắt của Unspent Transaction (TX) Output (đầu ra giao dịch chưa sử dụng), tức là một đơn vị có mệnh giá biến đổi được hình thành sau khi thực hiện giao dịch Bitcoin. Ví dụ: bạn có 10 BTC trong ví Bitcoin của mình và bạn muốn chuyển 5 BTC cho một người bạn. Chuỗi khối Bitcoin được xử lý theo cách khác. Nó sẽ tiêu hết 10 BTC (đầy đủ số dư), chuyển 5 BTC vào ví của bạn bè bạn và chuyển 5 BTC còn lại (10 BTC - 5 BTC = 5 BTC) vào ví của chính bạn. Bây giờ, bạn và bạn của bạn, mỗi người nắm giữ 5 BTC chưa sử dụng.

  • Bitcoin sử dụng các tập lệnh (một vài dòng mã) để chỉ định các điều kiện chi tiêu BTC/UTXO. Các tập lệnh được sử dụng như một cơ chế khóa.

  • BTC bị khóa trong tập lệnh. Khi tập lệnh trả về thành công (tức là điều kiện được đáp ứng), BTC sẽ được mở khóa.

  • Bất kỳ ai cũng có thể gửi BTC đến bất kỳ địa chỉ Bitcoin nào. Chỉ khi đáp ứng một số điều kiện nhất định được xác định trong tập lệnh, BTC bị khóa mới có thể được chi tiêu. Tập lệnh xác định cách người nhận có thể chi tiêu BTC nhận được. Khi bắt đầu một giao dịch, người gửi sẽ đưa vào một giao dịch được gọi là"Tập lệnh PubKey (còn gọi là Tập lệnh khóa)"kịch bản. Người nhận (khi chi tiêu sau) cần tạo ra một"Tập lệnh chữ ký (còn gọi là Tập lệnh mở khóa)", là tập hợp các tham số dữ liệu đáp ứng tập lệnh PubKey. Tập lệnh chữ ký còn được gọi là "scriptSig" trong mã.

  • tiêu đề cấp đầu tiên

Pay-to-PubKeyHash (P2PKH)

Pay-to-PubKeyHash là một định dạng địa chỉ Bitcoin truyền thống. Địa chỉ của nó bắt đầu bằng số 1.

Chỉ chủ sở hữu địa chỉ P2PKH mới có thể mở khóa tập lệnh PubKey và chi tiêu BTC nhận được bằng cách cung cấp mã băm khóa công khai và chữ ký khóa riêng. Khóa riêng được sử dụng để chứng minh quyền sở hữu của hàm băm khóa chung.

Như chúng ta đã thảo luận ở trên, các tập lệnh xác định trong những điều kiện BTC có thể được chi tiêu trên một địa chỉ cụ thể. Khi các điều kiện được chỉ định được đáp ứng và được xác minh bởi mạng, BTC trên địa chỉ đó sẽ được mở khóa để chi tiêu.

Làm thế nào để quá trình này làm việc? —— Đầu tiên, người nhận tạo tập lệnh PubKey và chia sẻ tập lệnh đó với người gửi. Người gửi thêm tập lệnh PubKey này vào giao dịch khi gửi BTC. Khi nhận BTC, nếu người nhận muốn mở khóa các UTXO BTC này, họ phải cung cấp mã băm khóa công khai và chữ ký khóa riêng, đồng thời đáp ứng các điều kiện được đề cập trong tập lệnh PubKey.

Ví dụ, những điều kiện này có thể là:

  • Mở khóa BTC yêu cầu ít nhất hai chữ ký.

  • Cung cấp mật khẩu (password) để mở khóa.

  • Phải mất một lúc để BTC mở khóa.

Các tình huống trên có thể được sử dụng làm điều kiện để mở khóa BTC.

Khi gửi bitcoin, người gửi cần đưa vào giao dịchTập lệnh PubKey. Do đó, điều này làm tăng khối lượng giao dịch, tạo ra phí giao dịch cao hơn khoảng 5 lần so với giao dịch thông thường.

tiêu đề cấp đầu tiên

Pay-to-ScriptHash (P2SH)

Pay To Script Hash (P2SH) có thể giúp người gửi tránh phải trả thêm chi phí và chuyển trách nhiệm này (chi phí bổ sung) cho người nhận thực sự cần sử dụng các điều kiện được chỉ định trong tập lệnh khóa. Địa chỉ Bitcoin Pay-to-ScriptHash bắt đầu bằng số 3.

Theo tiêu chuẩn giao dịch này, người gửi không cần đưa các tập lệnh PubKey dài vào giao dịch của họ. Ở đây, tập lệnh khóa được thay thế bằng hàm băm của tập lệnh đổi quà. Giá trị băm của tập lệnh đổi thưởng được tính theo tập lệnh đổi thưởng. Tập lệnh đổi thưởng tương tự như tập lệnh PubKey và chứa các điều kiện mà người nhận phải đáp ứng trước khi chi tiêu đầu ra chưa chi tiêu. Người gửi chỉ cần cho biết hàm băm của tập lệnh đổi quà trong giao dịch. Băm tập lệnh đổi quà có thể được dịch sang các địa chỉ Bitcoin tiêu chuẩn và người gửi có thể gửi BTC đến các địa chỉ này mà không cần bất kỳ hành động đặc biệt hoặc phí bổ sung nào.

Khi người nhận muốn mở khóa BTC trên địa chỉ P2SH này, anh ta cần tạo tập lệnh đổi quà có cùng giá trị băm và đưa nó vào giao dịch. Do đó, kích thước của giao dịch được người nhận sử dụng để mở khóa UTXO tăng lên, cũng như chi phí thực hiện giao dịch.

Ví dụ: Alice muốn gửi 10 BTC cho Bob. Alice phải bao gồm hàm băm tập lệnh đổi thưởng vào giao dịch. Đầu tiên, Mr. Bob tạo một tập lệnh quy đổi, sau đó gửi giá trị băm của tập lệnh quy đổi cho Alice để Alice có thể thêm hàm băm vào giao dịch và bắt đầu giao dịch. Nếu Bob muốn sử dụng UTXO này, anh ấy phải tạo tập lệnh mở khóa có cùng giá trị băm và đáp ứng các điều kiện được đề cập trong tập lệnh.

chữ

Ưu điểm của Pay-to-ScriptHash

  • Sử dụng hàm băm thay vì các tập lệnh dài.

  • Người gửi có thể đặt bất kỳ số lượng băm tập lệnh đổi quà nào trong giao dịch mà không cần biết các điều kiện chi tiêu được chỉ định trong tập lệnh.

  • tiêu đề cấp đầu tiên

(……)

MAST (Cây cú pháp trừu tượng Merkle)

MAST làCây cú pháp trừu tượng Merklized (Cây cú pháp trừu tượng Merkel)viết tắt của.

Tại sao nên sử dụng MAST? Nếu bạn muốn chi tiêu BTC từ địa chỉ P2SH, bạn phải tạo tập lệnh đổi quà có cùng hàm băm và đưa nó vào giao dịch. Nếu có quá nhiều điều kiện chi tiêu được quy định trong kịch bản, khối lượng giao dịch sẽ trở nên cực kỳ lớn. MAST có thể giải quyết vấn đề này rất tốt.

Cây cú pháp trừu tượng Merkle là sự kết hợp giữa cây Merkle và cây cú pháp trừu tượng.

Giống như Pay To Script Hash (P2SH) thanh toán cho tập lệnh có hàm băm X, MAST thanh toán cho gốc Merkle có hàm băm X. MAST là tập hợp từng điều kiện trong một tập hợp lớn các điều kiện thành một cây băm (cái gọi là cây Merkle) và giá trị gốc của cây Merkle là một giá trị băm, được băm bởi tất cả các điều kiện.

Rễ Merkle và cây băm được tạo ra như thế nào?

Đầu tiên thực hiện tính toán băm trên tất cả các tập lệnh (điều kiện); sau đó kết hợp các giá trị băm được tính toán với các giá trị băm liền kề để tính toán băm để tạo ra một bộ giá trị băm mới. Lặp lại quy trình tính toán băm hai nhân hai này cho đến khi giá trị băm cuối cùng được tính toán. Băm này là gốc Merkle.

Giả sử có bốn bộ điều kiện. Đầu tiên, tính riêng giá trị băm của bốn nhóm điều kiện này; sau đó ghép bốn giá trị băm này theo cặp để tính hai giá trị băm; cuối cùng, kết hợp hai giá trị băm này để tính toán băm, tạo ra giá trị băm cuối cùng . Băm cuối cùng này là gốc Merkle.

Gốc Merkle này có thể được dịch thành địa chỉ Bitcoin hợp lệ có khả năng nhận thanh toán, tức là mặc địnhĐịa chỉ Bitcoin Merklized. Địa chỉ Merkle Bitcoin có nhiều ưu điểm, ưu điểm chính là không cần thiết phải biết tất cả các đơn vị tập lệnh để xác minh xem tập lệnh có nằm trên cây Merkle này hay không. Kỹ thuật này được gọi làBằng chứng Merkle, có thể được sử dụng để dễ dàng xác minh rằng UTXO Bitcoin có chứa các điều kiện mở khóa nhất định hay không.

chữ ký Schnorr

chữ ký Schnorr

Trong mật mã học, chữ ký Schnorr là chữ ký số được tạo bởi thuật toán chữ ký Schnorr do Claus Schnorr đề xuất. Thuật toán chữ ký Schnorr là một sơ đồ chữ ký số được biết đến với tính đơn giản, giúp tối ưu hóa quy trình xác minh và xác thực bằng cách tổng hợp nhiều chữ ký thành một chữ ký duy nhất. Đề án này phù hợp cho các giao dịch đa chữ ký.

Để thực hiện giao dịch, bạn cần ký giao dịch bằng khóa riêng của mình, chứng minh rằng bạn là chủ sở hữu của BTC đằng sau một khóa chung nhất định. Tuy nhiên, để thực hiện giao dịch đa chữ ký, bạn phải cung cấp nhiều chữ ký. Những chữ ký này chiếm thêm không gian.

chữ ký Schnorrchữ ký SchnorrChỉ xảy ra để giải quyết vấn đề này.

Để hiểu chữ ký Schnorr, hãy xem xét hai ví dụ:

  • (……)

  • Một trường hợp khác là giao dịch nhiều chữ ký. Giả sử bạn cần 100 chữ ký và kích thước của mỗi chữ ký là 5 byte, lược đồ chữ ký Schnorr có thể kết hợp 100 chữ ký này thành một chữ ký Schnorr có kích thước 64 byte. Tiết kiệm 436 byte (5*100-64=436) bộ nhớ có thể được sử dụng để lưu trữ nhiều giao dịch hơn. (Lưu ý: Chữ ký đường cong elip hiện tại có thể dài hơn 5 byte)

tiêu đề cấp đầu tiên

Bitcoin Taproot: Tóm tắt

Bài viết này chủ yếu giới thiệu về Taproot xung quanh các điểm sau:

  • Taproot là một đề xuất nâng cấp Bitcoin được đề xuất vào năm 2018 bởi người đóng góp Bitcoin Core, Gregory Maxwell.

  • Taproot làm cho các giao dịch phức tạp như giao dịch đa chữ ký và giao dịch khóa thời gian trông giống như giao dịch Bitcoin thông thường, nâng cao tính riêng tư của Bitcoin.

  • Nâng cấp Taproot chủ yếu bao gồm 3 khái niệm kỹ thuật - chữ ký P2SH, MAST và Schnorr.

  • Bitcoin sử dụng các tập lệnh để chỉ ra các điều kiện chi tiêu BTC/UTXO (đầu ra giao dịch chưa được chi tiêu).

  • Pay To Script Hash (P2SH) có thể giúp người gửi tránh phí giao dịch bổ sung và chuyển trách nhiệm này (phí giao dịch bổ sung) cho người nhận thực sự cần sử dụng các điều kiện được quy định trong tập lệnh khóa.

  • Sử dụng MAST, bitcoin có thể bị khóa bằng Cây cú pháp trừu tượng Merkle. Cây Merkle (tương ứng với gốc Merkle) xác định tất cả các điều kiện phức tạp để có thể mở khóa BTC chưa chi tiêu. Cây cú pháp trừu tượng Merklized (MAST) được đề xuất đưa vào chuỗi khối Bitcoin để giảm kích thước giao dịch BTC, do đó người nhận không cần đính kèm các tập lệnh dài vào giao dịch. Chỉ sử dụng gốc Merkle, có thể xác minh rằng tập lệnh do người nhận tạo thuộc về tập hợp điều kiện ban đầu.

  • Liên kết gốc:

Liên kết gốc:

https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/

Tác giả: 0xB10C

以太坊爱好者
作者文库