Chuỗi khối

Xây dựng trên Taproot: Công cụ thanh toán có thể là giao thức lớp hai tiếp theo của Bitcoin

Bài viết này nói về một khái niệm công nghệ dựa trên bản nâng cấp giao thức Taproot được đề xuất. Nếu bạn chưa quen với những điều cơ bản về cách hoạt động của Taproot, bạn nên đọc trước người giải thích này.

khai thác root, một bản nâng cấp tiềm năng cho giao thức Bitcoin lần đầu tiên được đề xuất bởi người đóng góp Bitcoin Core, Gregory Maxwell, đang ở giai đoạn phát triển muộn. Công nghệ này bao gồm một sự kết hợp thông minh của các thủ thuật tiền điện tử cho phép người dùng ẩn các hợp đồng thông minh phức tạp bên trong các giao dịch thông thường - sự phức tạp chỉ được tiết lộ nếu các bên tham gia hợp đồng không hợp tác.

Tận dụng ý tưởng này, những người đóng góp Bitcoin Core bao gồm (nhưng không giới hạn) Jeremy Rubin, Antoine Riard, Gleb Naumenko và Gregory Maxwell đã tự suy đoán về một khái niệm chung được gọi là nhóm thanh toán, tham gia hoặc tiền xu. Các nhóm này - hiện tại chúng tôi sẽ gọi chúng là nhóm thanh toán - sẽ cho phép các nhóm người dùng chia sẻ quyền sở hữu các đồng tiền giống nhau (về mặt kỹ thuật: UTXO) như được ghi lại trên chuỗi khối Bitcoin, đồng thời cho phép bất kỳ người dùng nào trong số này thực hiện (hoặc nhận) thanh toán với họ. Khi nhóm và các thành viên riêng lẻ “ẩn mình” trong cấu trúc Taproot, tất cả họ đều được hưởng quyền riêng tư hơn, tính linh hoạt của hợp đồng thông minh và các lợi ích khác… và thậm chí họ còn có khả năng tận hưởng những lợi ích này ngoài chuỗi, biến nhóm thanh toán trở thành giải pháp Lớp Hai mới.

Mặc dù các chi tiết cụ thể về thiết kế khác nhau một chút từ đề xuất Nhóm thanh toán này sang đề xuất tiếp theo, nhưng khái niệm chung là giống nhau. Đây là ý tưởng cơ bản…

Chia sẻ một đồng xu

Trước tiên, để tạo nhóm thanh toán, người dùng kết hợp (các phần nhỏ) tiền của họ bằng cách tổng hợp chúng trong một địa chỉ Taproot được chia sẻ giữa chúng. Vì vậy, giả sử Alice sở hữu ba đồng, Bob sở hữu hai đồng và Carol sở hữu một đồng, tổng cộng là sáu. Cùng nhau, họ tạo ra một giao dịch gửi những đồng tiền này đến địa chỉ được chia sẻ, biến nó thành một nhóm thanh toán với sáu đồng tiền.

Trên blockchain, địa chỉ nhóm thanh toán trông giống như một địa chỉ Bitcoin thông thường, hiện đang chứa sáu đồng tiền. Nhưng bên dưới bề ngoài, Alice, Bob và Carol đã khéo léo sử dụng Taproot để đảm bảo rằng mỗi người trong số họ vẫn kiểm soát được phần tiền xu của mình trong nhóm thanh toán. Alice tại bất kỳ thời điểm nào có thể yêu cầu ba đồng từ địa chỉ, Bob tại bất kỳ thời điểm nào có thể yêu cầu hai và Carol một.

Điều này là do chỉ có hai tùy chọn chính để tiêu tiền từ địa chỉ.

Tùy chọn đầu tiên là chi tiêu trực tiếp từ địa chỉ, về mặt kỹ thuật là đường dẫn khóa Taproot. Điều này đòi hỏi sự hợp tác (nghĩa là: chữ ký mật mã) từ cả ba người tham gia. Nếu Alice, Bob và Carol đều đồng ý, sáu đồng có thể được tiêu theo bất kỳ cách nào họ thích và điều này sẽ giống như bất kỳ giao dịch thông thường nào khác trên mạng Bitcoin. Ví dụ, bộ ba có thể quyết định gửi số dư tương ứng của họ trở lại các địa chỉ riêng lẻ: ba cho Alice, hai cho Bob và một cho Carol. Nhưng nếu họ muốn như vậy, họ cũng có thể hợp tác để tặng tất cả sáu đồng tiền cho Julian, hoặc tiêu nó theo bất kỳ cách nào khác mà họ có thể đồng ý. Điều quan trọng là cả ba người họ cần phải tham gia, vì vậy không ai có thể tiêu hết số dư của mình mà không có sự hợp tác của chính mình.

Tùy chọn chính thứ hai thực sự bao gồm một số tùy chọn phụ. Trước khi gửi tiền của họ vào nhóm thanh toán, Alice, Bob và Carol đã giấu một cái gì đó trong cây mật mã đằng sau địa chỉ Taproot: họ bao gồm các cách thay thế để gửi tiền từ nhóm thanh toán. (Hiện tại, điều này có thể thành hiện thực bằng cách yêu cầu cả ba người tham gia ký trước các giao dịch từ các đường dẫn này, điều này sẽ đòi hỏi một số phức tạp để thiết lập tất cả các tùy chọn và quy mô không tốt lắm; các nâng cấp giao thức được đề xuất có thể giúp điều này dễ dàng hơn trong tương lai .)

Nếu một trong những người tham gia chọn chi tiêu số tiền trong nhóm thanh toán thông qua một đường dẫn Taproot thay thế, họ thường sẽ gửi một số tiền tương ứng với số dư của người tham gia đó đến một địa chỉ mà họ chọn, chẳng hạn như địa chỉ cá nhân mà họ kiểm soát. (Trong trường hợp của Alice, ba đồng đến địa chỉ của chính cô ấy, trong trường hợp của Bob là hai đồng đến địa chỉ của anh ấy và trong trường hợp của Carol là một.)

Sử dụng con đường thay thế này, số tiền còn lại cũng sẽ tự động được sử dụng. Điều này có thể được thực hiện theo một số cách tùy thuộc vào thiết kế của nhóm thanh toán, đưa ra các cân bằng khác nhau về độ phức tạp và khả năng mở rộng.

Giải pháp đơn giản nhất là gửi cho mọi người tham gia khác phần tiền xu của họ đến một địa chỉ họ chọn. Nói cách khác: nếu một người dùng thoát khỏi nhóm, tất cả mọi người sẽ thoát khỏi nhóm.

Giải pháp thứ hai, được Riard và Naumenko ưa thích, là gửi tất cả số tiền còn lại đến mới nhóm thanh toán, trông giống hệt như nhóm thanh toán đầu tiên, chỉ bị loại bỏ khỏi bất kỳ thứ gì liên quan đến người dùng hiện đã thoát. Thiết kế này mang lại trải nghiệm người dùng tốt nhất, nhưng là thiết kế khó nhất để mở rộng quy mô, quan trọng nhất là vì cần chuẩn bị cho tất cả các tình huống thoát có thể xảy ra, bao gồm tất cả các tình huống thoát có thể xảy ra cho tất cả các nhóm mới tiềm năng. Tuy nhiên, quy mô có thể đạt được với bản nâng cấp giao thức Bitcoin tiềm năng chưa được đặt tên để đảm bảo rằng các quy tắc từ nhóm thanh toán trước đó được chuyển sang bất kỳ nhóm thanh toán mới nào.

Tuy nhiên, Rubin tin rằng giải pháp thứ hai này là không thực tế và thích tìm kiếm một thứ gì đó ở giữa giải pháp thứ nhất và thứ hai: một số người tham gia ngay lập tức nhận được tiền của họ đến một địa chỉ mà họ chọn, những người tham gia khác được gửi tiền đến một nhóm thanh toán mới. Thiết kế này cung cấp trải nghiệm người dùng ít lý tưởng hơn, nhưng sẽ mở rộng quy mô tốt hơn và nâng cấp giao thức OP_CHECKTEMPLATEVERIFY tiềm năng sẽ giúp đơn giản hóa thiết kế và tăng quy mô hơn nữa. (Việc thoát sẽ xảy ra thông qua Thanh toán bằng cây; các loại thanh toán này được khám phá thêm trong bài viết này.)

(Có nhiều sự cân bằng hơn giữa giải pháp thứ hai và thứ ba, nhưng chi tiết về tất cả những ưu và nhược điểm nằm ngoài phạm vi của bài viết này; hãy đọc thảo luận về danh sách gửi thư bitcoin-dev để biết chi tiết cụ thể.)

Để xem ý nghĩa khi số tiền còn lại được gửi đến nhóm thanh toán mới, giả sử Alice, Bob và Carol chọn tùy chọn thứ hai, trong đó tất cả các số tiền còn lại được gửi đến một nhóm thanh toán mới. Nếu trong thiết kế này, Alice thoát khỏi nhóm thanh toán đầu tiên, ba đồng tiền được gửi đến một địa chỉ mà cô ấy chọn, trong khi ba đồng còn lại được gửi đến một nhóm thanh toán mới giữa Bob và Carol. Alice tại thời điểm đó có quyền kiểm soát duy nhất đối với đồng tiền của mình một lần nữa, trong khi không có nhiều thay đổi đối với Bob và Carol. Cả hai vẫn có thể hợp tác để tiêu hết ba đồng tiền còn lại nếu họ muốn, hoặc một trong hai có thể đơn phương thoát ra, như Alice đã làm trước đây.

Nếu Bob sau đó đơn phương thoát khỏi nhóm thanh toán thứ hai, anh ta sẽ gửi hai đồng tiền đến một địa chỉ mà mình chọn và một đồng tiền đến một nhóm thanh toán mới hơn (địa chỉ thứ ba) chỉ còn lại Carol. (Tất nhiên, trong ví dụ đơn giản này, một thiết kế trong đó nhóm thanh toán cuối cùng này được thay thế bằng một địa chỉ do Carol lựa chọn trên thực tế sẽ có ý nghĩa hơn, nhưng đó là chi tiết triển khai.)

Điểm mấu chốt quan trọng là những người tham gia nhóm thanh toán có thể hợp tác để thực hiện bất kỳ hình thức thanh toán nào từ nhóm họ muốn, trong khi bất kỳ ai trong số họ tại bất kỳ thời điểm nào cũng có thể thoát ra bằng tiền của chính họ, để những người tham gia khác kiểm soát của họ.

Đưa khoản thanh toán vào nhóm thanh toán

Vì vậy, chúng tôi đã thiết lập rằng tất cả những người tham gia có thể rút riêng số dư của họ từ nhóm thanh toán hoặc - nếu tất cả họ đồng ý - chi tiêu từ nhóm. Đây là tùy chọn thứ hai thực sự cho phép một cái gì đó thông minh: nhóm thanh toán có thể động. Miễn là tất cả những người tham gia đồng ý, họ không thể chỉ trả lại tiền cho mình hoặc trả cho người khác (như Julian), mà họ có thể làm điều gì đó thú vị hơn. Họ có thể chuyển tiền của mình sang các phiên bản mới hơn của nhóm thanh toán, với các thiết kế khác nhau.

Ví dụ, điều này cho phép bất kỳ ai trong số họ chi tiêu từ nhóm.

Xem thêm

Khi Taproot, sự thay đổi giao thức đồng thuận mới nhất, tiếp cận kích hoạt, các nhà phát triển Bitcoin đang hỏi chính xác mạng nên được nâng cấp như thế nào.

Giả sử Alice đang mua một chiếc ô tô mới và muốn thanh toán cho nó bằng một bitcoin. Alice, Bob và Carol sau đó có thể tạo một giao dịch từ nhóm thanh toán gửi một đồng tiền đến đại lý xe hơi và gửi năm đồng tiền còn lại đến mới nhóm thanh toán trông giống như lần đầu tiên, ngoại trừ lần này Alice chỉ có thể thoát khỏi nó một cách đơn phương với hai đồng tiền, ít hơn một đồng trước đây.

Trong khi đó, giao dịch trông giống như bất kỳ giao dịch Bitcoin thông thường nào khác. Đại lý xe hơi (hoặc gián điệp blockchain) có thể kết luận rằng Alice sở hữu tất cả sáu đồng tiền và chỉ đơn giản là sử dụng một đồng để mua xe, và giữ năm đồng còn lại làm tiền lẻ. Họ sẽ không biết rằng một số đồng tiền thuộc về Bob và Carol, hay họ có liên quan đến giao dịch.

Lần tới, khi Bob thanh toán và Alice và Carol hợp tác, nó được thực hiện từ cùng một nhóm thanh toán, một lần nữa trông giống như một giao dịch Bitcoin thông thường với thế giới bên ngoài. Trong lần lặp lại kết quả của nhóm thanh toán, Bob có thể thoát với một đồng xu thay vì hai. Trong khi đó, các điệp viên blockchain tương tự có thể đã nghĩ rằng Alice đang thực hiện thanh toán một lần nữa, khiến họ bối rối thêm. (Và ngay cả khi các gián điệp blockchain bằng cách nào đó sẽ phát hiện ra rằng địa chỉ thực sự là một khu vực thanh toán giữa Alice, Bob và Carol, họ vẫn không thể biết ai trong số ba người đã thực hiện thanh toán mới nhất.)

Mỗi khi Alice, Bob hoặc Carol chi tiêu tiền xu, giao dịch có thể đến từ bất kỳ ai trong số họ và không ai bên ngoài nhóm thanh toán có thể phân biệt được sự khác biệt.

Nhóm thanh toán không chỉ cho phép chi tiêu. Nếu Alice muốn nạp thêm “số dư” của mình vào nhóm thanh toán, cô ấy cũng có thể làm điều này. Alice, Bob và Carol trong trường hợp này sẽ hợp tác để chuyển năm đồng xu hiện tại đến một địa chỉ Taproot mới, mà Alice sẽ trong cùng một giao dịch gửi một đồng tiền bổ sung từ một trong các địa chỉ (cá nhân) của riêng cô ấy. Địa chỉ Taproot mới một lần nữa sẽ chứa sáu đồng tiền, ba trong số đó thuộc về Alice, như được phản ánh trong tùy chọn thoát đơn phương của cô.

Theo cách tương tự, người dùng hoàn toàn mới cũng có thể tham gia nhóm thanh toán. Nếu Alice, Bob và Carol đồng ý để Dave tham gia, cả ba người họ hợp tác với Dave để tạo ra một giao dịch gửi tiền của nhóm thanh toán cùng với số tiền mới của Dave đến một nhóm thanh toán mới, được thiết kế để Dave cũng tham gia - và thoát nếu anh ấy muốn chọn.

Hơn nữa, có tùy chọn cho những người tham gia trong nhóm thanh toán để thanh toán cho nhau. Ví dụ, nếu Alice trả cho Bob một đồng, cả ba có thể hợp tác để gửi tiền đến một nhóm thanh toán mới, nơi Alice có một đồng trừ vào số dư của cô ấy và Bob có thêm một đồng. Trên blockchain, một lần nữa, nó sẽ giống như một khoản thanh toán thông thường và các điệp viên blockchain sẽ không biết ai đã trả cho ai, hoặc bao nhiêu. (Điều đáng nói là Dave có thể tham gia nhóm theo cách tương tự, bằng cách nhận thanh toán nội bộ từ một trong những người tham gia hiện tại.)

Với một chút phức tạp hơn (và lý tưởng là với ít nhất một bản nâng cấp giao thức Bitcoin bổ sung như Đầu vào), việc chuyển giao thậm chí có thể được hoàn thành ngoài chuỗi. Khi Alice thanh toán cho Bob, trong trường hợp này, tất cả những người tham gia sẽ tạo quỹ chi tiêu giao dịch vào một nhóm thanh toán mới giống nhau, nhưng giao dịch này sẽ chỉ được chia sẻ giữa họ - không được phát sóng lên mạng (trừ khi ai đó cố gắng gian lận). Bằng cách này, Alice, Bob và Carol có thể tiếp tục cập nhật số dư của họ "trong nội bộ", và thậm chí để Dave vào hồ bơi vào một lúc nào đó. Khi tất cả đồng ý đóng nhóm, họ có thể tạo giao dịch cuối cùng chi tiêu từ nhóm thanh toán ban đầu, trao cho mỗi số dư mới nhất của họ.

Tương tự với một ý tưởng cũ hơn được gọi là Các nhà máy kênh, các loại nhóm thanh toán này thậm chí có thể được sử dụng để lưu trữ các kênh Lightning, hầm chứa hoặc các giao thức Lớp Hai khác. Điều này có thể mang lại tiềm năng “bọc” bất kỳ loại lớp giao thức bổ sung nào trong các nhóm như vậy, do đó che giấu tất cả sự phức tạp của chúng trong các giao dịch giống hệt nhau và trông thông thường.

Nguồn: https://bitcoinmagazine.com/articles/building-on-taproot-payment-pools-could-be-bitcoins-next-layer-two-protocol?utm_source=rss&utm_medium=rss&utm_campaign=building-on-taproot-payment- pool-could-be-bitcoins-next-layer-two-protocol