Tác giả: A Kiến
Tiêu đề của bài viết đến từ Bitcoiner Xiong Yue.
Bản nâng cấp soft fork Taproot của Bitcoin sẽ được kích hoạt ở khối Bitcoin có chiều cao 709632 (dự kiến vào ngày 15 tháng 11 năm 2021). Bản nâng cấp này chứa nhiều nội dung quan trọng và tuyệt vời, tuy nhiên, nó lại thiếu sự chú ý trong thế giới Trung Quốc. Bài viết này sẽ giới thiệu ngắn gọn về nội dung nâng cấp của Taproot từ quan điểm kỹ thuật và phản ánh hướng phát triển của Bitcoin.
Câu chuyện phổ biến là Taproot cải thiện quyền riêng tư, chức năng hợp đồng thông minh, tính đồng nhất của Bitcoin, v.v. Tuy nhiên, để hiểu nội dung và trí tưởng tượng về bản nâng cấp của Taproot, trước tiên chúng ta cần hiểu một số bitcoin.
Hợp đồng thông minh trên Bitcoin
Điều mà nhiều người không hiểu là Bitcoin cũng hỗ trợ lập trình hợp đồng thông minh2, nhưng loại hợp đồng thông minh khác với các chuỗi khối khác (chẳng hạn như Ethereum). Một lời giải thích chi tiết về sự khác biệt này sẽ cần một bài viết riêng và nó không quan trọng ở đây. Đây chỉ là một vài mô-đun phổ biến3 của lập trình hợp đồng thông minh Bitcoin, để mọi người có thể hiểu các kịch bản ứng dụng của nó:
- Hợp đồng nhiều chữ ký. Bitcoin hỗ trợ ủy quyền đa chữ ký để sử dụng tiền: Trong số N khóa công khai được ghi lại, phải có khóa riêng tư tương ứng với M khóa công khai (cho cùng một thao tác) được ký và tiền mới có thể được sử dụng. Bitcoin hỗ trợ các hợp đồng đa chữ ký với tối đa 15 khóa công khai.
- khóa thời gian. Người dùng có thể sử dụng hai loại khóa thời gian để chỉ định khoảng thời gian khả dụng của quỹ: (1) CLTV, khóa thời gian tuyệt đối, được xác định theo thời gian cụ thể hoặc chiều cao khối cụ thể và chỉ có thể được sử dụng sau thời gian này; (2) ) CSV, ví dụ: liên quan đến khóa thời gian, tiền chỉ có thể được sử dụng sau 1000 khối trên chuỗi giao dịch tạo ra tiền.
- Lập trình đa điều kiện. Tức là, sử dụng câu lệnh "IF ... ELSE ..." trong tập lệnh để đặt nhiều điều kiện mở khóa cho cùng một quỹ và quỹ có thể được sử dụng nếu bất kỳ điều kiện nào được đáp ứng. Ví dụ: "Khóa riêng tương ứng với khóa chung của A có thể được mở khóa hoặc sau chiều cao khối XXXX, khóa riêng tương ứng với khóa chung của B có thể được mở khóa hoặc sau các khối YYYY trên chuỗi của giao dịch, A, Các khóa riêng tư tương ứng với bất kỳ hai trong số ba khóa chung B và C có thể được mở khóa”
Như độc giả có thể tưởng tượng, các mô-đun này trông rất đơn giản, nhưng có nhiều khả năng kết hợp chúng: hợp đồng đa chữ ký xác định quyền của các đối tượng khác nhau và có thể thích ứng với các tình huống ứng dụng vô cùng phong phú, từ hoạt động của công ty đến kho bạc gia đình; thời gian khóa chỉ định quyền của các đối tượng khác nhau tại các thời điểm khác nhau. Nhiều điều kiện phóng đại đáng kể tác động kết hợp của các kiểm soát quyền này.
Bạn thậm chí có thể tạo một hợp đồng hỗ trợ phục hồi xã hội và có tác dụng phân chia tài sản thừa kế chỉ với một vài điều kiện: "Tôi (A khóa công khai) có thể kiểm soát quỹ này; nếu không có ai sử dụng nó trong ba tháng, tôi (Khóa công khai B)) và bốn người bạn, cứ năm người thì ba người có thể cùng nhau kiểm soát quỹ này, nếu một năm không ai sử dụng thì vợ tôi sẽ kiểm soát quỹ này.”
Tuy nhiên, để những hợp đồng này thực sự hữu ích, không thể bỏ qua hai yếu tố: tính hiệu quả và tính riêng tư.
Hiệu quả có nghĩa là phí giao dịch của Bitcoin được tính theo khối lượng giao dịch và các tập lệnh có nhiều điều kiện hơn sẽ chiếm nhiều dung lượng hơn (tính bằng byte) và phí giao dịch sẽ cao hơn.
Việc xem xét quyền riêng tư là việc tiết lộ tập lệnh sẽ khiến người khác biết rằng một số khóa chung được liên kết với nhau, giúp phân tích danh tính thực của chủ sở hữu khóa chung dễ dàng hơn.
Hiện tại, hợp đồng của Bitcoin được thể hiện dưới dạng "địa chỉ" P2SH (thực ra là giá trị băm). Đặc điểm của nó là khi hợp đồng được tạo, tập lệnh không thể được tiết lộ và giá trị băm của tập lệnh được thanh toán trực tiếp nếu cần thiết; tuy nhiên, khi số tiền này được sử dụng, tập lệnh tương ứng với giá trị băm sẽ được tiết lộ đầy đủ và đưa vào giao dịch (nếu không thì không có cách nào để xác minh rằng hàm băm của tập lệnh này chính xác là hàm băm này). Lấy hợp đồng nhiều chữ ký làm ví dụ, những người khác có thể trả trực tiếp giá trị băm của tập lệnh hợp đồng nhiều chữ ký, nhưng khi những người tham gia hợp đồng nhiều chữ ký muốn sử dụng số tiền này, họ phải tiết lộ toàn bộ tập lệnh3 .
Ngoài ra, trước khi nâng cấp SegWit, đã có sự phân biệt rõ ràng giữa ví cá nhân có chữ ký đơn và ví hợp đồng. Ví trước là địa chỉ P2PKH và ví sau là địa chỉ P2SH. yếu tố không thuận lợi cho sự riêng tư. Sau khi nâng cấp SegWit, ví cá nhân hỗ trợ Segregated Witness cũng có thể ở dạng P2SH, nhưng địa chỉ Segregated Witness ban đầu (P2WPKH) và địa chỉ hợp đồng (P2WSH) vẫn khác biệt 4 .
Với ý nghĩ đó, chúng ta hãy xem ba phần của bản nâng cấp Taproot (MAST, chữ ký Schnorr, Taproot) có thể làm tốt hơn như thế nào.
Cây cú pháp trừu tượng Merkle (MAST)
Ý nghĩa của Cây cú pháp trừu tượng Merklized (MAST) 5 là hỗ trợ xác minh bằng chứng Merkle trong xác minh tập lệnh Bitcoin.
Cây Merkle là một phương pháp mã hóa để băm nhiều phần tử dữ liệu thành một giá trị băm duy nhất. Cấu trúc của nó và các đặc điểm của hàm băm xác định rằng một số bằng chứng (giá trị băm) có thể được cung cấp để chứng minh rằng một phần tử dữ liệu nhất định đã tham gia tạo ra giá trị băm. Như thể hiện trong hình bên dưới: chúng tôi liên tục băm các phần tử dữ liệu (liền kề) theo cặp và cuối cùng tạo ra gốc Merkle.
![](https://hx24.huoxing24.com/image/crawler/2021/10/26/1635210407264642.jpg)
Tương tự như hình bên dưới, khi muốn chứng minh dữ liệu màu đỏ “Banana” đã tham gia tạo ra giá trị hash màu tím (Merkel root) thì mình chỉ cần cung cấp dữ liệu màu đỏ và 3 giá trị hash màu xanh. -tạo ra 7 phần tử còn lại của gốc Merkle. Đây là những gì cây Merkle và bằng chứng Merkle làm.
![](https://hx24.huoxing24.com/image/crawler/2021/10/26/1635210484235066.jpg)
Bằng chứng Merkle riêng lẻ cho chuối, đào và quất
Những độc giả thông minh hẳn đã nghĩ rằng với chức năng này, người viết hợp đồng có thể chia nhiều điều kiện thành các phần tử dữ liệu khác nhau và băm ra một giá trị gốc Merkle; khi cần một điều kiện nhất định để mở khóa Bitcoin Khi, chỉ cần chứng minh rằng điều này điều kiện là trên cây Merkle này và không cần tiết lộ tất cả các điều kiện khác.
Đúng, đó chính xác là những gì MAST làm. Như trong hình bên dưới, có 2 điều kiện để mở khóa quỹ này, người viết đã tách chúng ra và trừu tượng hóa chúng thành một giá trị băm bằng cây Merkle, khi mở khóa và sử dụng bất kỳ điều kiện nào thì không công khai điều kiện khác.
![](https://hx24.huoxing24.com/image/crawler/2021/10/26/1635210407913361.jpg)
MAST đã có một bước tiến lớn trên cơ sở P2SH và hiệu quả cải thiện của nó trước hết được thể hiện ở quyền riêng tư: ban đầu ở P2SH, hợp đồng phải tiết lộ tất cả nội dung tập lệnh khi sử dụng, bất kể nội dung đó có được sử dụng hay không. được tiết lộ; giờ đây, với MAST, người dùng chỉ cần tiết lộ điều kiện mở khóa cần sử dụng và không cần tiết lộ toàn bộ nội dung, đồng thời người khác cũng không biết bạn còn bao nhiêu điều kiện.
Thứ hai, nó cũng nâng cao hiệu quả: người dùng chỉ cần cung cấp một số tập lệnh cần sử dụng và bằng chứng Merkle của họ, khi toàn bộ tập lệnh tương đối lớn, hiệu quả của việc tiết kiệm khối lượng này sẽ rất rõ ràng.
Do đó, người dùng bitcoin trong tương lai có thể viết hợp đồng với nhiều điều kiện để có được hiệu ứng kiểm soát tốt hơn và chỉ phải trả phí xử lý ít hơn; thậm chí, họ có thể cố ý đưa vào một số điều kiện rác để làm phong phú cây Merkle và đạt được Hiệu ứng cải thiện quyền riêng tư.
Đây cũng là nguồn gốc của tiêu đề phụ của bài viết này "Hash is the bank": Kịch bản của Bitcoin thực sự xoay quanh việc kiểm soát tiền. Chìa khóa để đạt được sự kiểm soát này là nhiều điều kiện. Với MAST, ngay cả khi có nhiều điều kiện Quản lý tài sản script của , cũng có thể được nén thành giá trị băm và chỉ một phần của nó cần được hiển thị khi sử dụng. Việc giảm chi phí có thể mở ra rất nhiều khả năng, đang chờ các nhà phát triển ví tìm ra.
chữ ký Schnorr
Sau khi nâng cấp Taproot, Bitcoin sẽ không chỉ hỗ trợ chữ ký mật mã dựa trên đường cong elip mà còn hỗ trợ sơ đồ chữ ký số Schnorr6 .
Phương pháp xây dựng chữ ký Schnorr không được đề cập ở đây, chúng tôi chỉ giới thiệu các thuộc tính quan trọng của nó: tập hợp chữ ký/khóa - chữ ký của nhiều khóa riêng có thể được tổng hợp thành một chữ ký, trông như thể nó được đăng xuất bằng một khóa riêng. Khi ký, nó vẫn được ký bởi từng người giữ khóa riêng, khi xác minh chữ ký, có vẻ như các chữ ký này là khóa riêng tương ứng với khóa chung đã biết (tất nhiên, khóa chung được tổng hợp bởi khóa chung của những người tham gia này). khóa đã đăng xuất.
Nói cách khác, với chữ ký Schnorr, những người khác không thể biết chữ ký được đăng xuất bởi một người hay nhiều người; điều kiện mở khóa của đa chữ ký có thể được thay thế bằng khóa chung tổng hợp. Tất cả các hợp đồng có nhiều chữ ký nn đều có thể được bảo vệ quyền riêng tư do chữ ký Schnorr cung cấp. Ứng dụng rõ ràng nhất của nó là kênh Lightning Network, vì kênh Lightning Network là hợp đồng đa chữ ký 2-2, sau đó, những người khác sẽ không thể phân biệt kênh thanh toán và người dùng cá nhân dựa trên số lượng chữ ký.
Đối với hợp đồng đa chữ ký của mn, đừng lo lắng, đừng quên rằng chúng tôi có MAST: chúng tôi có thể biến tất cả các tình huống mở khóa có thể thành một nhánh và khi sử dụng một nhánh, chữ ký được cung cấp chỉ cần là một chữ ký tổng hợp. Ví dụ: giả sử chúng tôi muốn tạo một hợp đồng có 2-3 chữ ký và chọn hai trong số các khóa công khai A, B và C. Hiệu lực của hợp đồng nhiều chữ ký này tương đương với "hoặc (A, B) mở khóa , or (B, C ) unlock, or (A, C) unlock", có thể hiểu là tập lệnh đa điều kiện, mỗi điều kiện là 2-2 đa chữ ký nên cũng có thể sử dụng khóa công khai tổng hợp tương ứng để xác định điều kiện mở khóa (và không cần xác định theo đa chữ ký). Do đó, khi chúng tôi cần mở khóa tiền trong một tổ hợp nhất định, chúng tôi chỉ cần sử dụng MAST để hiển thị một chi nhánh và cung cấp chữ ký, còn những người khác vẫn không biết đó là một người, hai người hay nhiều người.
Nó vẫn chưa kết thúc.
rễ cái
Theo con đường chúng tôi hiểu, phần cuối cùng của bản nâng cấp Taproot là Taproot, đây là nguồn gốc tên của nó. Khi đề xuất khái niệm này, Gregory Maxwell đã viết7 :
Một câu hỏi thường xuất hiện khi thảo luận về các tập lệnh Merkleized là liệu chúng ta có thể thực hiện một hợp đồng thông minh không thể phân biệt được với các khoản thanh toán phổ biến và nhàm chán nhất hay không. Mặt khác, một tập hợp đầu ra ẩn danh sử dụng các kỹ thuật hợp thời trang này, vốn chỉ là một tập hợp thích hợp khác, không có nhiều ý nghĩa trong thực tế.
Ở đây, Maxwell đã nắm bắt được mấu chốt của vấn đề một cách sâu sắc: việc bảo vệ quyền riêng tư của Bitcoin đến từ "ông lớn ẩn mình trong thị trường", là điều khó nắm bắt nhất. Tuy nhiên, khi các chức năng mới được giới thiệu, việc đề xuất một loại "địa chỉ" mới là điều khó tránh khỏi.Nếu có ít người dùng sử dụng chức năng này, khả năng nhận dạng thực của mỗi người dùng sẽ tăng lên rất nhiều và điều này có thể dẫn đến những vấn đề này. Chức năng mới sẽ hoàn toàn không được sử dụng, do đó mất đi ý nghĩa của nó.
Hơn nữa, mặc dù MAST đóng một vai trò quan trọng trong quyền riêng tư của hợp đồng, nhưng nếu nó vẫn giống như trước đây, ví cá nhân là ví cá nhân và ví hợp đồng là ví hợp đồng. , phải nói rằng sự riêng tư như vậy vẫn còn thiếu sót. .
Mọi người rất cần một cách để chấm dứt sự phân biệt giữa ví cá nhân/ví hợp đồng này và thêm phần hoàn thiện vào quyền riêng tư của Bitcoin. Vì lý do này, điều tối thiểu cần nhận ra là giá thành của loại ví kèm hợp đồng này không khác gì ví cá nhân thông thường (tiết kiệm) trong nhu cầu sử dụng hàng ngày của người dùng.
Taproot là một phương pháp như vậy, nó tận dụng các đặc điểm của tập hợp khóa và đề xuất một chế độ tập lệnh với hai hướng sử dụng: một là hợp đồng đa chữ ký nn, hai là tập lệnh hợp đồng do người dùng xác định.
Theo ví dụ trong văn bản gốc của Maxwell: Giả sử hai người dùng có khóa chung A và B, và hai khóa chung tổng hợp A + B = C, sau đó tạo khóa chung cuối cùng P = C + H(C||S)*G , trong đó S là tập lệnh tùy chỉnh. Khóa công khai cuối cùng P được sử dụng để xác định các điều kiện mở khóa của quỹ. Giả sử rằng cả hai người dùng đều trực tuyến, họ có thể dễ dàng sử dụng tiền cùng nhau, miễn là một trong số họ thêm H(C||S) vào khóa riêng của mình khi ký; ví dụ: nếu chỉ một trong số họ trực tuyến, S xác định The các điều kiện theo đó B có thể tiêu tiền, các quy tắc của Taproot cho phép người dùng khóa công khai B tiêu tiền bằng cách tiết lộ khóa công khai tổng hợp P và H(C||S) và cung cấp các điều kiện theo đó S có thể được đáp ứng.
Hợp đồng đa chữ ký 2-2 được sử dụng ở đây, nhưng người dùng có thể tưởng tượng rằng miễn là có công nghệ tổng hợp khóa, 1-1, tức là chữ ký đơn, cũng có thể sử dụng phương pháp viết tập lệnh này. Các điểm quan trọng là: (1) Mặc dù đây là quỹ có hợp đồng tùy chỉnh, nhưng khi hợp đồng không được sử dụng và chỉ sử dụng chữ ký đa nn, chi phí xử lý của nó không khác gì phí của quỹ được mở khóa bằng một chữ ký ! (2) Khi sử dụng nn đa chữ ký, những người khác không biết rằng quỹ này có thể được mở khóa và sử dụng theo những cách khác!
Bằng cách này, cả người dùng cá nhân và người dùng hợp đồng có thể được hợp nhất dưới một chế độ tập lệnh ("địa chỉ" P2TR) và người dùng cá nhân có thể thêm hợp đồng vào quỹ của họ một cách an toàn mà không phải lo lắng về việc trả phí xử lý cao hơn hàng ngày; người dùng hợp đồng Cá nhân người dùng được hưởng chế độ ẩn danh lớn hơn vì họ sử dụng cùng một "địa chỉ" và thậm chí sử dụng hợp đồng mà không để lộ bản thân trong hầu hết các trường hợp. Mọi người đều hạnh phúc.
Nói chung, sau Taproot, những người khác sẽ không thể biết địa chỉ P2TR là người dùng cá nhân hay người dùng hợp đồng từ biểu mẫu địa chỉ; do ảnh hưởng của chữ ký Schnorr, khi tiền trong địa chỉ này được mở khóa bằng một một chữ ký duy nhất, những người khác sẽ không thể biết đó là người dùng cá nhân hay người dùng theo hợp đồng. Cho dù nó được sử dụng bởi một người hay n người cùng nhau, thì không thể biết liệu có tập lệnh tùy chỉnh tại địa chỉ này hay không; do Tác dụng của MAST, khi người dùng sử dụng tập lệnh tùy chỉnh để tiêu tiền, họ chỉ cần phơi bày những phần cần sử dụng Tập lệnh, mặc dù những người khác biết rằng địa chỉ này có tập lệnh tùy chỉnh, nhưng vẫn không biết toàn bộ tập lệnh bao gồm những điều kiện gì.
Vì vậy, trong khi một số người đặt câu hỏi rằng Taproot có thể gây hại đến quyền riêng tư của Bitcoin7, thì tôi không quá lo lắng. Bởi vì "địa chỉ" Taproot chắc chắn là tốt nhất trong lịch sử Bitcoin về sự thuận tiện, quyền riêng tư và tính kinh tế, nên hoàn toàn có thể hy vọng rằng nó có thể thống nhất loại "địa chỉ" của Bitcoin và tạo thành ẩn danh lớn nhất trong lịch sử Bitcoin.
phần kết
Đối với những người biết một số công nghệ mã hóa, việc học cách phát triển và nâng cấp Bitcoin là rất thú vị và thậm chí là mở mang tầm mắt. Trong các bản nâng cấp của nó, bạn có thể thấy rằng mọi người đang không ngừng sử dụng mật mã để liên tục tối ưu hóa hệ thống này-nhờ bản chất mô-đun của chính hệ thống, những tối ưu hóa này là có thật. Taproot là một trong số đó.
Tôi tin rằng quá trình tìm hiểu về Bitcoin (và đặc biệt là Taproot) sẽ dạy cho người đọc thế nào là một "tiền điện tử" thực sự.
Taproot có thể là bản nâng cấp quan trọng nhất trong lịch sử Bitcoin, sẽ tạo ra loại tiền điện tử thuần túy nhất trong lịch sử - loại tiền sử dụng mật mã đến mức cực đoan, nhẹ nhất và có sức sống bền bỉ nhất.
chú thích:
- Đề xuất nâng cấp bitcoin Giải thích kỹ thuật Taproot, https://www.btcstudy.org/2021/09/29/bitcoin-taproot-a-technical-explanation/
- Hợp đồng thông minh Bitcoin Wiki, https://en.wikipedia.org/wiki/Smart_contract
- Master Bitcoin Phiên bản tiếng Trung Chương 7: Giao dịch và tập lệnh nâng cao, https://github.com/tianmingyun/MasterBitcoin2CN/blob/master/ch07.md
- Các loại giao dịch Bitcoin - Phần II Segwit, https://blog.susanka.eu/types-of-bitcoin-transactions-part-ii-segwit/
- Cây cú pháp trừu tượng Merklized Bitcoin là gì, https://www.btcstudy.org/2021/09/07/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast/
- Chữ ký Schnorr có thể cải thiện Bitcoin như thế nào, https://www.btcstudy.org/2021/09/09/how-schnorr-signatures-may-improve-bitcoin/
- Taproot: Tập lệnh có thể chuyển đổi bảo vệ quyền riêng tư, https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-Jan/015614.html
- Giải thích tác động của Taproot đối với quyền riêng tư bằng ngôn ngữ đơn giản, https://www.btcstudy.org/2021/09/23/explain-like-im-not-a-developer-taproot-privacy/
Nguồn: Orange Book
Tuyên bố miễn trừ trách nhiệm: Cointelegraph Chinese là một nền tảng thông tin tin tức blockchain và thông tin được cung cấp chỉ thể hiện quan điểm cá nhân của tác giả, không liên quan gì đến vị trí của nền tảng Cointelegraph China và không cấu thành bất kỳ lời khuyên đầu tư và tài chính nào. Độc giả được yêu cầu thiết lập các khái niệm tiền tệ và khái niệm đầu tư chính xác, đồng thời nâng cao nhận thức về rủi ro một cách nghiêm túc.