Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Hiểu biết có hệ thống về hệ thống kiến thức liên quan đến địa chỉ Bitcoin trong một bài viết
WaterdripCapital
特邀专栏作者
2025-09-21 04:00
Bài viết này có khoảng 28677 từ, đọc toàn bộ bài viết mất khoảng 41 phút
Phân loại một cách có hệ thống các nguyên tắc tạo, tiêu chuẩn giao thức, loại địa chỉ và đường dẫn phát triển của địa chỉ Bitcoin và cung cấp phân tích toàn diện về hệ thống địa chỉ tài sản được mã hóa.

Tác giả gốc: Fu Shaoqing, SatoshiLab, Wanwudao BTC Studio

1. Chuẩn bị kiến thức

Trước khi hiểu đầy đủ về các loại địa chỉ ví tiền kỹ thuật số, chúng ta cần một số kiến thức cơ bản. Kiến thức này chủ yếu bao gồm kiến thức về khóa công khai và khóa riêng tư trong mã hóa bất đối xứng, thuật toán băm, các khái niệm mã hóa phổ biến và các nguyên tắc cơ bản của việc tạo địa chỉ. Địa chỉ ví Bitcoin được thiết kế dựa trên giao thức BIP, và hầu hết các địa chỉ ví không phải Bitcoin cũng được thiết kế dựa trên các giao thức liên quan đến BIP. Trong khi xem xét các điểm kiến thức liên quan về địa chỉ Bitcoin, chúng tôi cũng sẽ giới thiệu về các loại địa chỉ ví khác.

1.1. Kiến thức mã hóa bất đối xứng và khóa công khai và khóa riêng tư

Mã hóa bất đối xứng là nền tảng của mật mã học hiện đại, được Whitfield Diffie và Martin Hellman đề xuất lần đầu tiên vào năm 1976. Đặc điểm cốt lõi của nó là sử dụng một cặp khóa có liên quan về mặt toán học: một khóa công khai được công bố và một khóa riêng được giữ bí mật. Một đặc điểm quan trọng là việc mã hóa và giải mã được thực hiện bằng các khóa khác nhau: thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng tương ứng; ngược lại, thông tin được ký bằng khóa riêng có thể được xác minh là xác thực bằng khóa công khai tương ứng. Điều này giải quyết hoàn hảo vấn đề phân phối khóa trong mã hóa đối xứng, cho phép giao tiếp an toàn mà không cần bí mật được chia sẻ trước.

Trong lĩnh vực tiền kỹ thuật số hiện nay, thuật toán mã hóa bất đối xứng được sử dụng phổ biến nhất là Thuật toán Chữ ký Số Đường cong Elliptic (ECDSA), đặc biệt là đường cong secp 256k1 được sử dụng trong các loại tiền tệ như Bitcoin. Thuật toán này sử dụng khóa ngắn hơn và hiệu quả hơn thuật toán RSA truyền thống, đồng thời vẫn duy trì cùng mức độ bảo mật. Tiếp nối công nghệ Taproot của Bitcoin, thuật toán chữ ký số Schnorr cũng đã bắt đầu được sử dụng trong lĩnh vực tiền điện tử. So với ECDSA, Schnorr mang lại một số lợi thế.

Nguyên lý và chức năng của thuật toán khóa công khai và khóa riêng tư (bài viết này chủ yếu mô tả lĩnh vực tiền kỹ thuật số)

Trong tiền kỹ thuật số, khóa riêng là một số lớn được tạo ngẫu nhiên, đóng vai trò là bằng chứng duy nhất về quyền kiểm soát một tài sản. Khóa công khai được suy ra từ khóa riêng thông qua phép nhân đường cong elliptic một chiều (tức là, rất dễ để suy ra khóa công khai từ khóa riêng, nhưng gần như không thể đảo ngược quá trình này). Địa chỉ ví thường là một hàm băm của khóa công khai.

Chức năng của nó như sau:

Khóa riêng tư: Được sử dụng để tạo chữ ký giao dịch nhằm chứng minh thẩm quyền chi tiêu số tiền tương ứng của bạn. Phải được giữ bí mật tuyệt đối.

Khóa công khai: Được sử dụng để xác minh tính hợp lệ của chữ ký giao dịch, đảm bảo rằng chữ ký thực sự được tạo bởi khóa riêng tương ứng. Khóa công khai cũng được sử dụng để tạo địa chỉ thanh toán công khai có thể chia sẻ an toàn với bất kỳ ai.

Tóm lại, khóa riêng được sử dụng để ký, và khóa công khai được sử dụng để xác minh và tạo địa chỉ. Sự kết hợp của cả hai đảm bảo tính bảo mật và độ tin cậy của việc chuyển giao quyền sở hữu tài sản.

Trong Bitcoin, khóa công khai được chia thành khóa không nén và khóa nén. Khóa công khai không nén bắt đầu bằng 04 và dài 65 byte. Khóa công khai nén bắt đầu bằng 02 (số chẵn) hoặc 03 (số lẻ) và dài 33 byte.

Một ví dụ như sau:

khóa công khai (không nén): 04 b 4632 d 08485 ff 1 df 2 db 55 b 9 dafd 23347 d 1 c 47 a 457072 a 1 e 87 be 26896549 a 87378 ec 38 ff 91 d 43 e 8 c 2092 ebda 601780485263 da 089465619 e 0358 a 5 c 1 be 7 ac 91 f 4

khóa công khai (đã nén):

02 b 4632 d 08485 ff 1 df 2 db 55 b 9 dafd 23347 d 1 c 47 a 457072 a 1 e 87 be 26896549 a 8737

Sơ đồ của khóa công khai truyền thống không nén

Sơ đồ của khóa công khai nén

Trong kiến thức về khóa công khai và khóa riêng tư liên quan đến tiền kỹ thuật số, còn có một thuật ngữ chung là Khóa riêng tư WIF (Wallet Import) và định dạng mã hóa của nó như sau:

Các mẫu dữ liệu cụ thể như sau:

1.2. Các thuật toán băm thường được sử dụng trong Bitcoin

Ngoài kiến thức về khóa công khai và khóa riêng tư, bạn cũng cần hiểu về thuật toán băm hay thuật toán băm.

Hàm băm một chiều có một đầu vào, được gọi là thông điệp, và một đầu ra, được gọi là giá trị băm. Hàm băm một chiều tính toán giá trị băm dựa trên nội dung của thông điệp, có thể được sử dụng để xác minh tính toàn vẹn của thông điệp. Hàm băm có thể chuyển đổi thông tin có độ dài bất kỳ thành giá trị đầu ra có độ dài cố định.

1. Chúng tôi giới thiệu SHA-256 và RIPEMD-160 thường được sử dụng.

SHA-256 là viết tắt của Secure Hash Algorithm 256-bit. Thuật toán này chấp nhận dữ liệu đầu vào ở mọi kích thước và, thông qua một loạt các phép tính toán học phức tạp, tạo ra một chuỗi có độ dài cố định (256-bit, hoặc 32 byte) trông giống như một chuỗi ký tự vô nghĩa ngẫu nhiên. Chuỗi này thường được biểu diễn bằng 64 chữ số thập lục phân (0-9, A-F).

Ví dụ, nếu bạn nhập hello world, sau khi tính toán SHA-256, bạn sẽ nhận được:

b 94 d 27 b 9934 d 3 e 08 a 52 e 52 d 7 da 7 dabfac 484 efe 37 a 5380 ee 9088 f 7 ace 2 efcde 9

RIPEMD-160 là viết tắt của RACE Raw Integrity Check Message Digest-160. Đây là một trình tạo được thiết kế đặc biệt để tạo ra dấu vân tay kỹ thuật số ngắn hơn. Tương tự như SHA-256, RIPEMD-160 là một hàm băm một chiều. Nó nhận đầu vào và tạo ra đầu ra có độ dài cố định (160 bit, hoặc 20 byte), thường được biểu diễn bằng 40 chữ số thập lục phân.

Ví dụ, nếu bạn nhập hello world, sau khi tính toán RIPEMD-160, bạn sẽ nhận được:

d 7 d 56920283 f 17 ab 4 d 7 e 10 d 4 a 5 d 6 df 50 e 594 a 9 c 3

2. Các thuật toán băm phổ biến được sử dụng trong Bitcoin là

HASH 256 (SHA-256 kép được sử dụng phổ biến nhất)

Băm 160 (SHA-256 + RIPEMD-160)

SHA-256 (SHA-256 đơn)

HMAC-SHA 512 (HMAC với SHA-512)

3. Các tình huống sử dụng

(1) Khai thác Bitcoin sử dụng HASH 256, là hàm băm kép, nghĩa là giá trị băm trong tiêu đề khối là HASH 256. SHA-256

(2) ID giao dịch - TXID sử dụng HASH 256.

(3) Gốc merkle trong giao dịch sử dụng HASH 256

(4) Băm khóa công khai sử dụng HASH 160, là một SHA 256 duy nhất + một RIPE-160 duy nhất.

(5) Khóa mở rộng sử dụng HMAC (SHA-512)

(6) HASH 256 được sử dụng trong các giao dịch chữ ký.

1.3. Kiến thức mã hóa chung Cơ sở 64, Cơ sở 58, Cơ sở 32

Có một số mã hóa mà bạn cần biết về địa chỉ ví Bitcoin, cụ thể là Base 64, Base 58 và Bench 32.

1. Mã hóa Base 64 (không được sử dụng trong Bitcoin, nhưng là một mã hóa phổ biến ban đầu, được giới thiệu cùng nhau)

Mục tiêu thiết kế: Truyền dữ liệu nhị phân một cách an toàn và đáng tin cậy trong phương tiện chỉ có văn bản (như email, HTML, XML), đảm bảo dữ liệu không bị sửa đổi trong quá trình truyền (vì một số ký tự có ý nghĩa đặc biệt trong giao thức, chẳng hạn như ký tự xuống dòng).

nguyên tắc:

l Chia mỗi 3 byte (24 bit) dữ liệu nhị phân thành 4 nhóm, mỗi nhóm có 6 bit.

Mỗi giá trị 6 bit (0-63) tương ứng với một ký tự có thể in được. Vì 2^6 = 64, nên có 64 ký tự.

Nếu dữ liệu đầu vào không phải là bội số của 3, dữ liệu đó sẽ được thêm vào các ký tự =.

Bộ ký tự:

(Tổng cộng 64 ký tự)AZ, az, 0-9, +, /

Các tính năng chính:

l Hiệu quả mã hóa cao: Mỗi ký tự mang 6 bit thông tin, đây là phương pháp mã hóa hiệu quả nhất trong ba phương pháp.

l Tính linh hoạt cao: Được sử dụng rộng rãi trong email MIME, URL dữ liệu (chẳng hạn như data:image/png;base 64,... trong các trang web) và để lưu trữ khóa và chứng chỉ mã hóa.

l Chứa các ký tự không phải chữ và số: Sử dụng + và /. Các ký tự này có thể cần phải được thoát trong dòng lệnh hoặc URL.

l Không có chức năng kiểm tra tổng: Bản thân mã hóa Standard Base 64 không cung cấp chức năng phát hiện lỗi.

2. Mã hóa cơ sở 58

Mục tiêu thiết kế: Tối ưu hóa cho việc xử lý thủ công, tránh sự mơ hồ về mặt hình ảnh và tạo điều kiện thuận lợi cho việc nhập liệu và hiệu đính thủ công. Chủ yếu được sử dụng trong định dạng địa chỉ gốc của Bitcoin.

nguyên tắc:

l được bắt nguồn từ Base 64, nhưng đã loại bỏ các ký tự gây nhầm lẫn.

Xử lý dữ liệu như một số nguyên lớn, sau đó chia liên tục cho 58 và ánh xạ phần còn lại vào một bộ ký tự.

Một byte số không ở đầu (0 x 00) được mã hóa thành ký tự '1'.

Bộ ký tự:

123456789 ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

(Đã xóa 0 (số không), O (chữ o hoa), I (chữ i hoa), l (chữ L thường), +, /, tổng cộng 58 ký tự)

Các tính năng chính:

l Nhân bản hóa: Bộ ký tự loại bỏ các ký tự dễ gây nhầm lẫn, giúp giảm đáng kể lỗi phiên âm và lỗi nhập liệu.

Chữ số thuần túy: Chuỗi được tạo ra rất "sạch" và không chứa bất kỳ ký hiệu nào, giúp dễ dàng sao chép và dán vào bất kỳ môi trường nào.

l Ít hiệu quả hơn một chút: Mỗi ký tự mang khoảng 5,857 bit thông tin, kém hiệu quả hơn một chút so với Base 64.

l Thường được kết hợp với tổng kiểm tra: Kiểm tra Base 58 thực sự được sử dụng trong Bitcoin, bổ sung tiền tố phiên bản và tổng kiểm tra 4 byte trước khi mã hóa, có thể phát hiện lỗi đầu vào một cách hiệu quả.

Ứng dụng: Địa chỉ Bitcoin cũ (P 2 PKH, bắt đầu bằng 1), khóa riêng Bitcoin (định dạng WIF), địa chỉ của các loại tiền điện tử khác như Litecoin.

3. Mã hóa Bech 32

Mục tiêu thiết kế: Được thiết kế cho địa chỉ Bitcoin SegWit (Segregated Witness), với khả năng phát hiện và sửa lỗi mạnh hơn, không phân biệt chữ hoa chữ thường và hỗ trợ chuyển đổi chữ in hoa hiệu quả.

Các giao thức BIP có liên quan là:

BIP-173 Định dạng địa chỉ Base 32 cho đầu ra chứng kiến v 0-16 gốc

BIP-350 Bech 32 m định dạng cho v 1+ địa chỉ chứng kiến

Bech 32 m là phiên bản V 1 của Bech 32, với một số điều chỉnh nhỏ đối với thuật toán tổng kiểm tra.

nguyên tắc:

l Nó được xây dựng dựa trên mã BCH (Bose–Chaudhuri–Hocquenghem), là mã sửa lỗi có thể phát hiện và sửa nhiều lỗi.

l Cấu trúc là: HRP (phần có thể đọc được của con người, chẳng hạn như bc 1) + dấu phân cách (1) + phần dữ liệu (mã hóa cơ sở 32) + tổng kiểm tra.

l Sử dụng tập hợp con 32 ký tự được tối ưu hóa.

Bộ ký tự: (tất cả các chữ cái đều viết thường, nhưng mã hóa không phân biệt chữ hoa chữ thường) qpzry 9 x 8 gf 2 tvdw 0 s 3 jn 54 khce 6 mua 7 l

Các tính năng chính:

Phát hiện lỗi mạnh mẽ: Nó có thể phát hiện phần lớn các tổ hợp lỗi và tự động sửa một số lỗi. Tính năng này tiên tiến hơn Base 58 Checksum, vốn chỉ có thể phát hiện chứ không thể sửa lỗi.

l Không phân biệt chữ hoa chữ thường: Địa chỉ vẫn hợp lệ dù bạn nhập bằng chữ hoa hay chữ thường, giúp mang lại trải nghiệm tốt hơn cho người dùng.

l Gọn nhẹ và hiệu quả: Phần dữ liệu sử dụng Base 32 (5 bit cho mỗi ký tự), gọn nhẹ hơn đối với dữ liệu SegWit.

Phần có thể đọc được của con người (HRP): bc 1 (mạng chính Bitcoin) hoặc tb 1 (mạng thử nghiệm Bitcoin) ở đầu địa chỉ xác định rõ loại mạng và không dễ gây nhầm lẫn.

Chi phí cao hơn: Độ phức tạp tính toán của quá trình mã hóa và giải mã cao hơn Base 58.

Ứng dụng: Địa chỉ SegWit gốc của Bitcoin (P 2 WPKH, bắt đầu bằng bc 1 q...), địa chỉ Taproot (P 2 TR, bắt đầu bằng bc 1 p...).

Nếu độc giả muốn biết thêm về nội dung có liên quan, chúng tôi khuyên bạn nên tham khảo trang web sau, trong đó có sơ đồ Mã hóa và Giải mã, Biểu đồ kiểm tra tổng và giải thích từng bước chi tiết.

https://learnmeabitcoin.com/technical/keys/bech 32/

Tóm tắt và Cách lựa chọn

Đối với việc truyền dữ liệu chung: chọn Base 64. Đây là một tiêu chuẩn mạng, có thư viện sẵn có cho hầu hết các ngôn ngữ lập trình và là tiêu chuẩn hiệu quả nhất.

Đối với các mã định danh dành cho người dùng (chẳng hạn như hệ thống cũ): Chọn Kiểm tra Base 58. Thao tác này tạo ra các chuỗi dễ đọc và dễ nhập thủ công, đồng thời ngăn ngừa lỗi hiển thị.

Đối với các địa chỉ tiền điện tử hiện đại (đặc biệt là Bitcoin), Bech 32 (tức là các địa chỉ bắt đầu bằng bc 1) được khuyến nghị mạnh mẽ. Nó mang lại mức độ bảo mật và trải nghiệm người dùng cao nhất, đồng thời có thể giảm phí giao dịch (do các nguyên tắc của công nghệ SegWit, trong đó trường chứng kiến được tính bằng một phần tư diện tích ban đầu). Đây là hướng phát triển trong tương lai.

1.4. Nguyên tắc cơ bản của việc tạo địa chỉ tiền kỹ thuật số

Địa chỉ của một loại tiền kỹ thuật số được tạo ra bằng cách tạo ra một cặp khóa công khai và khóa riêng dựa trên cơ chế mã hóa khóa công khai và khóa riêng. Sau đó, thông qua một số thuật toán và tiêu chuẩn nhất định, khóa công khai được chuyển đổi thành địa chỉ tiền kỹ thuật số. Một số cơ chế nhất định cũng thường được sử dụng để tạo ra một bộ khóa riêng tư và một bộ khóa công khai tương ứng.

Việc tạo khóa riêng có thể được tham khảo theo sơ đồ sau.

Sau khi lấy được khóa riêng, chúng ta có thể lấy được khóa công khai tương ứng với khóa riêng. Sau đó, chúng ta tính toán địa chỉ ví theo thuật toán. Chúng ta sẽ sử dụng quy trình tạo địa chỉ Bitcoin phổ biến nhất làm ví dụ dưới đây:

Sơ đồ minh họa cho thấy sơ đồ nguyên lý thuật toán tạo địa chỉ phổ biến nhất. Sẽ có một số loại địa chỉ Bitcoin khác nhau sau. Sẽ có một số khác biệt trong sơ đồ nguyên lý. Mỗi loại địa chỉ sẽ được giải thích chi tiết trong phần thứ ba bên dưới.

2. Giao thức liên quan đến địa chỉ Bitcoin

Với các thuật toán và mã hóa liên quan đến việc tạo địa chỉ Bitcoin, cần có một số tiêu chuẩn giao thức cụ thể, chủ yếu đến từ giao thức BIP và giao thức SLIP. Chữ viết tắt và ý nghĩa của hai từ này như sau:

BIP: Đề xuất cải tiến Bitcoin

SLIP: Đề xuất cải tiến SatoshiLabs

2.1. Ba giao thức cốt lõi (BIP-32, 39, 44) và các giao thức liên quan

1. BIP-32 (Ví xác định phân cấp)

Chức năng chính của BIP-32 là tạo ra một số lượng lớn cặp khóa (khóa riêng tư và khóa công khai) từ một hạt giống chủ duy nhất. Trước đây, ví là một tập hợp các khóa riêng tư không liên quan, khiến việc sao lưu trở nên cực kỳ khó khăn. BIP-32 cho phép bạn khôi phục tất cả địa chỉ và tiền trong toàn bộ cấu trúc cây ví bằng cách chỉ sao lưu một hạt giống chủ (thường được tạo từ mã ghi nhớ BIP-39). Điều này giúp đơn giản hóa đáng kể quy trình sao lưu và phục hồi.

Giao thức BIP-32 định nghĩa các thuật toán dẫn xuất khóa công khai và riêng tư cụ thể: Các hàm dẫn xuất khóa con (CKD)

Khóa cha riêng → khóa con riêng

Khóa cha công khai → khóa con công khai

Khóa cha riêng tư → khóa con công khai

Khóa cha công khai → khóa con riêng tư

Nguyên lý của ví xác định phân cấp của BIP-32 được thể hiện trong hình bên dưới:

2. BIP-39 (Mã ghi nhớ để tạo khóa xác định)

Mục đích chính của BIP-39 là chuyển đổi mã số ngẫu nhiên gốc trong BIP-32 (một chuỗi dài các số 0 và 1) thành một chuỗi các từ tiếng Anh (thường là 12 hoặc 24 từ) dễ viết, sao lưu và ghi nhớ. Giao thức cũng quy định rằng có thể sử dụng các câu tiếng Anh (mặc dù điều này hiếm khi được áp dụng). Đây là cụm từ ghi nhớ bạn thường thấy khi tạo ví. Nó cải thiện đáng kể trải nghiệm người dùng và độ tin cậy của các bản sao lưu.

https://github.com/Roasbeef/bips/blob/bip-tap/bip-0039/bip-0039-wordlists.md

BIP chính thức cung cấp các thư viện từ vựng ghi nhớ bằng các ngôn ngữ sau: tiếng Anh, tiếng Nhật, tiếng Hàn, tiếng Tây Ban Nha, tiếng Trung (giản thể), tiếng Trung (phồn thể), tiếng Pháp, tiếng Ý, tiếng Séc, tiếng Bồ Đào Nha

3. BIP-44 (Hệ thống phân cấp đa tài khoản cho ví xác định) - Hệ thống phân cấp đa tiền tệ và đa tài khoản

BIP 44 định nghĩa một hệ thống phân cấp logic cho các ví xác định dựa trên thuật toán được mô tả trong BIP-32 và sơ đồ mục đích được mô tả trong BIP-43. Nó định nghĩa một cấu trúc chuẩn hóa cho cây khóa BIP-32. Nó chỉ định một định dạng đường dẫn rõ ràng, chẳng hạn như: m/purpose'/coin_type'/account'/change/address_index. Tiêu chuẩn này cho phép sử dụng cùng một hạt giống ví HD để quản lý nhiều loại tiền điện tử (như Bitcoin, Litecoin và Ethereum), với nhiều tài khoản trong mỗi loại tiền tệ, mỗi tài khoản có địa chỉ nhận và địa chỉ trao đổi riêng biệt. Nó đảm bảo khả năng tương thích giữa các nhà cung cấp ví khác nhau, cho phép xử lý nhiều token, nhiều tài khoản, chuỗi bên ngoài và bên trong trong mỗi tài khoản, và hàng triệu địa chỉ trên mỗi chuỗi.

Định dạng chuẩn: m/purpose'/coin_type'/account'/change/address_index

m: chìa khóa chính (master)

mục đích': Được cố định ở 44', cho biết sự tuân thủ tiêu chuẩn BIP 44 (phái sinh nâng cao).

'coin_type': loại tiền tệ, ví dụ: Bitcoin là 0', Ethereum là 60' (phái sinh nâng cao).

'account': Chỉ mục tài khoản, cho phép người dùng tạo nhiều tài khoản trong một ví (tính năng phái sinh nâng cao).

thay đổi: Chuỗi thay đổi. 0 được sử dụng cho Chuỗi bên ngoài (địa chỉ nhận), 1 được sử dụng cho Chuỗi bên trong (địa chỉ thay đổi).

address_index: chỉ mục địa chỉ, được tạo tuần tự bắt đầu từ 0.

Ví dụ: Đường dẫn đến địa chỉ nhận đầu tiên của tài khoản Bitcoin đầu tiên là: m/44'/0'/0'/0/0

Dấu phẩy đơn ' biểu thị một sự suy diễn được tăng cường

4. Trường mục đích BIP-43 (Trường mục đích cho ví xác định)

Do giao thức BIP-32 riêng biệt mang lại quá nhiều quyền tự do cho người triển khai, giao thức này mô tả cụ thể trường mục đích. Giao thức này khuyến khích các lược đồ khác nhau áp dụng các số BIP riêng biệt và sử dụng cùng một trường mục đích để tránh việc tạo địa chỉ từ các không gian BIP 32 chồng chéo.

Trong Phần 4.2, chúng ta sẽ xem trường mục đích được xác định bởi các BIP khác nhau.

Mã sử dụng 10001-19999 được dành riêng cho giao thức SLIP.

5. SLIP-0044 (Các loại tiền xu đã đăng ký cho BIP-0044)

Giao thức này định nghĩa loại coin_type. Hàng ngàn loại coin_type phổ biến hiện nay có thể được tìm thấy trong các loại tiền kỹ thuật số phổ biến của SLIP-0044. Bạn có thể xem chi tiết tại liên kết:

https://github.com/satoshilabs/slips/blob/master/slip-0044.md

2.2. Giao thức định dạng địa chỉ và giao thức tiến hóa

1. BIP-11 (Giao dịch chuẩn M/N) Giao dịch chuẩn M/N

Giao thức cung cấp một loại giao dịch tiêu chuẩn với chữ ký M/N, chủ yếu nhằm cung cấp một cách an toàn hơn để sử dụng và quản lý tài sản Bitcoin.

Chúng ta có thể xem ví dụ về các loại hướng dẫn của nó trong Phần 3.3.

Tập lệnh khóa là: m {pubkey}...{pubkey} n OP_CHECKMULTISIG

Đang mở khóa tập lệnh: OP_0 ...chữ ký...

Tuy nhiên, giao thức này chỉ xác định một giao dịch chuẩn chứ không xác định loại địa chỉ cụ thể. Sau đó, tập lệnh đa chữ ký này đã được chuẩn hóa thành loại địa chỉ P2SH.

2. BIP-13 (Định dạng địa chỉ cho pay-to-script-hash) - Địa chỉ P 2 SH

Mục đích chính của BIP-13 là xác định một tiêu chuẩn cho các địa chỉ bắt đầu bằng số 3. Địa chỉ này không trực tiếp tương ứng với khóa công khai, mà tương ứng với giá trị băm của một tập lệnh. Nó thường được sử dụng cho:

Ví đa chữ ký (yêu cầu nhiều chữ ký để chi tiền).

Khả năng tương thích với SegWit.

Ý nghĩa: Việc băm các điều kiện tập lệnh phức tạp thành một địa chỉ ngắn giúp đơn giản hóa trải nghiệm của người dùng và mở ra cánh cửa cho các hợp đồng thông minh phức tạp.

Định nghĩa cụ thể về định dạng địa chỉ:

mã hóa cơ sở 58: [phiên bản một byte][băm 20 byte][tổng kiểm tra 4 byte]

3. BIP-16 (Trả tiền cho mã băm tập lệnh)

Giao thức này định nghĩa hàm băm thanh toán cho tập lệnh, trong khi BIP-13 định nghĩa thanh toán cho địa chỉ của tập lệnh băm. Bạn có thể thấy tập lệnh được định nghĩa bởi BIP-16 như sau:

Khóa tập lệnh: OP_HASH 160 [giá trị băm 20 byte] OP_EQUAL

Mở khóa tập lệnh: ...chữ ký... {tập lệnh được tuần tự hóa}

Bạn có thể xem ví dụ cụ thể ở Phần 3.4.

4. BIP-49 (Sơ đồ phái sinh cho các tài khoản dựa trên P2WPKH lồng nhau trong P2SH)

Khi sử dụng P2WPKH với các giao dịch P2SH lồng nhau (BIP 141), cần có một sơ đồ phái sinh chung. Điều này cho phép người dùng sử dụng liền mạch các ví HD khác nhau với cùng một hạt giống chính và/hoặc một tài khoản duy nhất. Do đó, người dùng cần tạo tài khoản SegWit chuyên dụng để đảm bảo rằng chỉ những ví tương thích với BIP này mới có thể phát hiện tài khoản và xử lý nó một cách phù hợp.

Để lấy khóa công khai từ tài khoản gốc, BIP này sử dụng cùng cấu trúc tài khoản như được định nghĩa trong BIP 44, nhưng chỉ sử dụng giá trị mục đích khác để chỉ ra phương pháp tuần tự hóa giao dịch khác.

m/mục đích'/loại_tiền'/tài_khoản'/thay_đổi/chỉ_mục_địa_chỉ

Đối với mục đích cấp đường dẫn, nó sử dụng "49". Các cấp còn lại được sử dụng theo định nghĩa trong BIP 44.

Để lấy địa chỉ P2SH từ khóa công khai được tính toán ở trên, hãy sử dụng đóng gói được xác định trong BIP 141:

nhân chứng: <chữ ký> <khóa công khai>

scriptSig: <0<băm khóa 20 byte>>

(0 x 160014{băm khóa 20 byte})

scriptPubKey: BĂM 160 <20-byte-script-hash> BẰNG

(0xA 914{20-byte-script-hash}87)

5. BIP-84 (Phương án phái sinh cho tài khoản dựa trên P2 WPKH)

Khi sử dụng giao dịch P2 WPKH, cần có một sơ đồ phái sinh chung. Điều này cho phép người dùng sử dụng liền mạch các ví HD khác nhau với cùng một hạt giống chính và/hoặc các tài khoản cá nhân. Do đó, người dùng sẽ cần tạo các tài khoản SegWit chuyên dụng để đảm bảo rằng chỉ những ví tương thích với BIP này mới có thể phát hiện các tài khoản và xử lý chúng một cách phù hợp.

Để lấy khóa công khai từ tài khoản gốc, BIP này sử dụng cùng cấu trúc tài khoản như được định nghĩa trong BIP 44 và BIP 49, nhưng chỉ sử dụng các giá trị đích khác nhau để chỉ ra phương pháp tuần tự hóa giao dịch khác nhau.

m/mục đích'/loại_tiền'/tài_khoản'/thay_đổi/chỉ_mục_địa_chỉ

Đối với mục đích này, nó sử dụng 84'. Các mức còn lại được sử dụng theo định nghĩa trong BIP 44 hoặc BIP 49.

Để lấy địa chỉ P² WPKH từ khóa công khai được tính toán ở trên, hãy sử dụng đóng gói được xác định trong BIP 141:

nhân chứng: <chữ ký> <khóa công khai>

scriptSig: (trống)

scriptPubKey: 0<băm khóa 20 byte>

(0x0014{băm khóa 20 byte})

6. BIP-86 (Lấy khóa cho đầu ra P 2 TR khóa đơn)

Giao thức này cung cấp đầu ra P2TR (BIP 341) khóa đơn làm khóa nội bộ Taproot. Để lấy khóa công khai từ tài khoản root, BIP này sử dụng cùng cấu trúc tài khoản như được định nghĩa trong BIP 44, 49 và 84, nhưng với giá trị đích kiểu tập lệnh khác.

m/mục đích'/loại_tiền'/tài_khoản'/thay_đổi/chỉ_mục_địa_chỉ

Đối với mục đích đường dẫn, nó sử dụng 86'. Các mức còn lại được sử dụng theo định nghĩa trong BIP 44, 49 và 84.

7. BIP-173 (Định dạng địa chỉ cơ sở 32 cho đầu ra chứng kiến v 0-16 gốc)

Chức năng chính của BIP-173: xác định định dạng địa chỉ mới được thiết kế cho các giao dịch Segregated Witness gốc (Native SegWit), thường là địa chỉ bắt đầu bằng bc 1 q.

Thuận lợi:

Phí giao dịch thấp hơn: Các giao dịch SegWit gốc có khối lượng dữ liệu nhỏ hơn, dẫn đến phí giao dịch rẻ hơn.

Ngăn ngừa lỗi mạnh mẽ hơn: Sử dụng mã hóa Bech 32 có thể ngăn ngừa hiệu quả các lỗi nhập liệu (chẳng hạn như nhầm lẫn chữ 'O' viết hoa, chữ 'O' viết thường và số '0') và lỗi phát hiện.

Hỗ trợ các bản nâng cấp lớn hơn: Mở đường cho các bản nâng cấp trong tương lai như Taproot.

8. BIP-350 (Địa chỉ cho P 2 WPKH và P 2 WSH trong Bech 32 m) - Địa chỉ rễ cái (Bech 32 m)

Hiệu ứng chính của BIP-350: Một điều chỉnh nhỏ nhưng quan trọng đối với định dạng Bech 32 của BIP-173 đã được thực hiện, tạo ra mã hóa Bech 32 m để hỗ trợ phương thức thanh toán Taproot mới (P 2 TR). Đây là địa chỉ bắt đầu bằng bc 1 p.

Lý do cần định dạng mới: Để phân biệt với SegWit gốc trước đây (phiên bản 0), vì Taproot sử dụng phiên bản chứng thực mới (phiên bản 1). Bech 32m đảm bảo các quy tắc xác thực tổng kiểm tra giữa các phiên bản khác nhau không xung đột.

9. BIP-141 (Nhân chứng bị phân biệt chủng tộc) - Bản thân Nhân chứng bị phân biệt chủng tộc

Mục đích chính của BIP-141: Mặc dù bản thân BIP-141 là một giao thức cốt lõi, nhưng nó giới thiệu các địa chỉ tương thích (P2SH lồng nhau), là các giao dịch SegWit được gói gọn trong các tập lệnh P2SH truyền thống. Các địa chỉ này bắt đầu bằng 3 và trông giống như các địa chỉ đa chữ ký.

Mục đích: Cung cấp cho người dùng cơ hội hưởng lợi từ việc giảm phí SegWit trước, trong khi phần mềm và dịch vụ hệ sinh thái vẫn chưa được nâng cấp để hỗ trợ địa chỉ Bech 32 gốc. Các địa chỉ này hiện đang dần được thay thế bằng địa chỉ Bech 32 gốc.

3. Các loại địa chỉ Bitcoin và các loại tập lệnh khóa

3.1. Trả cho băm khóa công khai P 2 PK

P2PK (Pay To Public Key) là định dạng địa chỉ đầu tiên, trả tiền cho khóa công khai mà không cần thực hiện tính toán địa chỉ. Ngày nay, định dạng này hiếm khi được sử dụng.

Đối với việc học so sánh, chúng tôi tóm tắt các nguyên tắc và dữ liệu mẫu trong tài liệu:

(1) Sơ đồ

(2) Dữ liệu mẫu

Để tạo một tập lệnh mà P 2 PK có thể sử dụng, dữ liệu mẫu như sau:

Khóa tập lệnh trong đầu ra

OP_PUSHBYTES_65

049464205950188 c 29 d 377 eebca 6535 e 0 f 3699 ce 4069 ecd 77 ffebfbd 0 bcf 95 e 3 c 134 cb 7 d 2742 d 800 a 12 df 41413 a 09 ef 87 a 80516353 a 2 f 0 a 280547 bb 5512 dc 03 da 8

OP_CHECKSIG

Mở khóa tập lệnh trong đầu vào

OP_PUSHBYTES_72

3045022100 c 219 a 522 e 65 ca 8500 ebe 05 a 70 d 5 a 49 d 840 ccc 15 f 2 afa 4 ee 9 df 783 f 06 b 2 a 322310220489 a 46 c 37 feb 33 f 52 c 586 da 25 c 70113 b 8 eea 41216440 eb 84771 cb 67 a 67 fdb 68 c 01

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/explorer/tx/1 db 6251 a 9 afce 7025 a 2061 a 19 e 63 c 700 dffc 3 bec 368 bd 1883 decfac 353357 a 9 d#output-1

Trong một số trình duyệt, thanh toán cho khóa công khai vẫn sẽ được hiển thị dưới dạng thanh toán cho giá trị băm của khóa công khai, đó là địa chỉ Bitcoin bắt đầu bằng số 1.

Định dạng địa chỉ này là một địa chỉ dài bắt đầu bằng số 1, ví dụ:

13 QECtNiFPXijbMZmcgaTom 3 pCXwHvDYTUWGtRxZN 7 fY 24 u 4 fG 5 iiqXaQz 3 TvuQydLrkz 9 L 4 YhcYn 3 khC 44 yQwaZme 6 uoXQ

Quá trình hình thành

khóa công khai (chưa nén) =

04283338 ffd 784 c 198147 f 99 aed 2 cc 16709 c 90 b 1522 e 3 b 3637 b 312 a 6 f 9130 e 0 eda 7081 e 373 a 96 d 36 be 319710 cd 5 c 134 aaffba 81 ff 08650 d 7 de 8 af 332 fe 4 d 8 cde 20

tiền tố + khóa công khai + tổng kiểm tra =

0004283338 ffd 784 c 198147 f 99 aed 2 cc 16709 c 90 b 1522 e 3 b 3637 b 312 a 6 f 9130 e 0 eda 7081 e 373 a 96 d 36 be 319710 cd 5 c 134 aaffba 81 ff 08650 d 7 de 8 af 332 fe 4 d 8 cde 2067 da 00 eb

địa chỉ cơ sở 58 =

13 QECtNiFPXijbMZmcgaTom 3 pCXwHvDYTUWGtRxZN 7 fY 24 u 4 fG 5 iiqXaQz 3 TvuQydLrkz 9 L 4 YhcYn 3 khC 44 yQwaZme 6 uoXQ

3.2. Trả tiền cho mã băm khóa công khai (P2PKH)

P2PKH (Thanh toán theo mã băm khóa công khai) là phương thức giao dịch thường được sử dụng.

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_DUP

OP_HASH 160

OP_PUSHBYTES_20

55 ae 51684 c 43435 da 751 ac 8 d 2173 b 2652 eb 64105

OP_EQUALVERIFY

OP_CHECKSIG

Mở khóa tập lệnh trong đầu vào

OP_PUSHBYTES_72

3045022100 c 233 c 3 a 8 a 510 e 03 ad 18 b 0 a 24694 ef 00 c 78101 bfd 5 ac 075 b 8 c 1037952 ce 26 e 91 e 02205 aa 5 f 8 f 88 f 29 bb 4 ad 5808 ebc 12 abfd 26 bd 791256 f 367 b 04 c 6 d 955 f 01 f 28 a 772401

OP_PUSHBYTES_33

03 f 0609 c 81 a 45 f 8 cab 67 fc 2 d 050 c 21 b 1 acd 3 d 37 c 7 acfd 54041 be 6601 ab 4 cef 4 f 31

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/explorer/tx/40 e 331 b 67 c 0 fe 7750 bb 3 b 1943 b 378 bf 702 dce 86124 dc 12 fa 5980 f 975 db 7 ec 930#input-0

Sơ đồ hình thành địa chỉ P2PKH

Định dạng địa chỉ này bắt đầu bằng 1, ví dụ: 1 JBSCVF 6 VM 6 QjFZyTnbpLjoCJTQEqVbepG

Quá trình hình thành

khóa công khai (chưa nén) =

04283338 ffd 784 c 198147 f 99 aed 2 cc 16709 c 90 b 1522 e 3 b 3637 b 312 a 6 f 9130 e 0 eda 7081 e 373 a 96 d 36 be 319710 cd 5 c 134 aaffba 81 ff 08650 d 7 de 8 af 332 fe 4 d 8 cde 20

băm 160 (khóa công khai) = bc 73550 c 1612 ee 81155 d 29254217 CBD 60084 a 6 d 1

tiền tố + băm 160 (khóa công khai) + tổng kiểm tra =

00 bc 73550 c 1612 ee 81155 d 29254217 CBD 60084 a 6 d 1691 c 58 b 9

địa chỉ cơ sở 58 = 1 JBSCVF 6 VM 6 QjFZyTnbpLjoCJTQEqVbepG

Về mặt lý thuyết, nếu một khóa công khai 130 ký tự chưa nén được nén thành giá trị băm 40 ký tự bằng cách sử dụng hàm băm 160, sẽ có khả năng xảy ra xung đột băm, nghĩa là có một tỷ lệ nhỏ địa chỉ trùng lặp. Điều này không đáng lo ngại sao? Đọc thêm về lý do tại sao hàm băm khóa công khai được sử dụng làm địa chỉ:

https://bitcoin.stackexchange.com/questions/3600/why-are-bitcoin-addresses-hashes-of-public-keys

3.3. Thanh toán cho P2MS đa chữ ký

P 2 MS (Pay To Multisig) là phương thức thanh toán cho phép thanh toán cho nhiều chữ ký. Để biết thêm thông tin về các nguyên tắc liên quan, vui lòng tham khảo BIP 11: Giao dịch Tiêu chuẩn M-of-N.

(1) Sơ đồ

Đối với sơ đồ trên, việc sử dụng 2/3 chữ ký đa dạng như sau:

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_2

OP_PUSHBYTES_65

04 d 81 fd 577272 bbe 73308 c 93009 eec 5 dc 9 fc 319 fc 1 ee 2 e 7066 e 17220 a 5 d 47 a 18314578 be 2 faea 34 b 9 f 1 f 8 ca 078 f 8621 acd 4 bc 22897 b 03 daa 422 b 9 bf 56646 b 342 a 2

OP_PUSHBYTES_65

04 ec 3 afff 0 b 2 b 66 e 8152 e 9018 fe 3 be 3 fc 92 b 30 bf 886 b 3487 a 525997 d 00 fd 9 da 2 d 012 dce 5 d 5275854 adc 3106572 a 5 d 1 e 12 d 4211 b 228429 f 5 a 7 b 2 f 7 ba 92 eb 0475 bb 1

OP_PUSHBYTES_65

04 b 49 b 496684 b 02855 bc 32 f 5 daefa 2 e 2 e 406 db 4418 f 3 b 86 bca 5195600951 c 7 d 918 cdbe 5 e 6 d 3736 ec 2 abf 2 dd 7610995 c 3086976 b 2 c 0 c 7 b 4 e 459 d 10 b 34 a 316 d 5 a 5 e 7

OP_3

OP_CHECKMULTISIG

Mở khóa tập lệnh trong đầu vào

OP_0

OP_PUSHBYTES_72

3045022100 af 204 ef 91 b 8 dba 5884 df 50 f 87219 ccef 22014 c 21 dd 05 aa 44470 d 4 ed 800 b 7 f 6 e 40220428 fe 058684 db 1 bb 2 bfb 6061 bff 67048592 c 574 effc 217 f 0 d 150 daedcf 36787601

OP_PUSHBYTES_72

3045022100 e 8547 aa 2 c 2 a 2761 a 5 a 28806 d 3 ae 0 d 1 bbf 0 aeff 782 f 9081 dfea 67 b 86 cacb 321340220771 a 166929469 c 34959 daf 726 a 2 ac 0 c 253 f 9 aff 391 e 58 a 3 c 7 cb 46 d 8 b 7 e 0 fdc 4801

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/technical/script/p 2 ms/

P2MS (thanh toán đa chữ ký) thực tế không có định dạng địa chỉ. Phương pháp phổ biến nhất là gói tập lệnh thanh toán P2MS trong tập lệnh P2SH hoặc P2WSH, để địa chỉ của nó tham chiếu đến hai địa chỉ tương tự còn lại. So với việc sử dụng trực tiếp P2MS, phương pháp này có những ưu điểm sau:

Vì P2MS không có định dạng địa chỉ, nếu bạn muốn khóa trực tiếp bitcoin của mình, bạn phải tự xây dựng và gửi tập lệnh khóa gốc. Tệ hơn nữa, việc này có thể không tạo ra giao dịch cho bạn, vì hầu hết các ví chỉ cho phép giao dịch bằng địa chỉ (không phải tập lệnh thô). Điều này đồng nghĩa với việc việc xây dựng một đầu vào có khả năng chi tiêu UTXO như vậy là một thách thức chỉ dành cho các chuyên gia sử dụng các công cụ chuyên dụng hoặc bộ công cụ phát triển, khiến người dùng bình thường khó có thể tạo ra đầu vào như vậy.

P2MS bị giới hạn tối đa ba khóa công khai. Việc bao gồm tất cả các khóa công khai sẽ làm cho tập lệnh khóa của P2MS trở nên rất lớn (dẫn đến phí cao), do đó giới hạn là ba (để ngăn chặn việc tập trung quá mức dữ liệu UTXO). Tuy nhiên, với P2SH, bạn có thể sử dụng tối đa 15 khóa công khai cho khóa đa chữ ký.

Do đó, người dùng vẫn có thể sử dụng P2MS nếu muốn, nhưng sử dụng P2SH sẽ thuận tiện hơn để đạt được chức năng tương tự.

3.4. Trả tiền cho mã băm P 2 SH

P2SH (Pay To Script Hash) trả tiền cho script hash. Sau khi khả năng trả tiền cho script hash được triển khai, hiệu suất giao dịch của Bitcoin đã được cải thiện đáng kể.

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_HASH 160

OP_PUSHBYTES_20

748284390 f 9 e 263 a 4 b 766 a 75 d 0633 c 50426 eb 875

OP_EBAL

Mở khóa tập lệnh trong đầu vào

OP_0

OP_PUSHBYTES_71

3044022100 d 0 ed 946330182916 da 16 a 6149 cd 313 a 4 b 1 a 7 b 41591 ee 52 fb 3 e 79 d 64 e 36139 d 66021 f 6 ccf 173040 ef 24 cb 45 c 4 db 3 e 9 c 771 c 938 a 1 ba 2 cf 8 d 2404416 f 70886 e 360 af 401

OP_PUSHBYTES_71

5121022 afc 20 bf 379 bc 96 a 2 f 4 e 9 e 63 ffceb 8652 b 2 b 6 a 097 f 63 fbee 6 ecec 2 a 49 a 48010 e 2103 a 767 c 7221 e 9 f 15 f 870 f 1 quảng cáo 9311 f 5 ab 937 d 79 fcaeee 15 bb 2 c 722 bca 515581 b 4 c 052 ae

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/technical/script/p 2 sh/

Nguyên tắc địa chỉ

Mã hóa hàm băm 160 của khóa công khai hoặc tập lệnh thành địa chỉ cũ.

Định dạng địa chỉ này bắt đầu bằng 3 (mạng thử nghiệm bắt đầu bằng 2), ví dụ:

3 Nfmmt 78 SUwQTZtr 4 p 9 qty 5 Wgaykt 6 PhoS

Quá trình hình thành:

Băm 160 mã hóa khóa công khai hoặc tập lệnh của người dùng để có được kết quả:

băm 160 (khóa công khai hoặc Script) = d 5 ed 76 bbb 243 d 456240014178 ba 5 fbb 37 ada 36 bc

địa chỉ cơ sở 58 = tiền tố (05) + băm 160 (khóa công khai hoặc Script) + tổng kiểm tra (32 e 485 ca) = 3 MCAKgGRPTMjYP 3 cD 1 vTeD 7 aQZJPVECAC 1

Một số lợi thế rõ ràng của P2SH là:

l Các tập lệnh mở khóa phức tạp dễ sử dụng hơn (cũng cung cấp cơ sở để sử dụng cây MAST trong Taproot tiếp theo);

Phí giao dịch rẻ hơn (điều này thực sự chuyển chi phí sang người chi, người cần sử dụng nhiều byte chưa mở khóa hơn để chi đầu ra);

lP 2 SH cung cấp sự riêng tư mạnh mẽ hơn;

Vì số byte trong đầu ra được giảm bớt, nên toàn bộ tập hợp UTXO sẽ nhỏ hơn. Vì kích thước của một UTXO nhỏ hơn, nên có thể lưu trữ nhiều UTXO hơn trong bộ nhớ.

Lưu ý: Trong P2SH, độ dài tối đa của tập lệnh đổi thưởng là 520 byte. Điều này có nghĩa là nếu tập lệnh P2SH là P2MS, thì nó có thể chứa tối đa 15 khóa công khai (khóa công khai nén là 33 byte, và 15 khóa công khai nén là 33*15=495 byte, tức là giá trị tối đa nhỏ hơn 520 byte).

3.5. Chứng kiến mã băm khóa công khai P 2 SH-P 2 WPKH để thanh toán cho gói

2 SHP 2 WPKH được gói trong P 2 SH, gói thanh toán cho hàm băm khóa công khai chứng kiến P vào phương thức thanh toán cho hàm băm tập lệnh P 2 SH. PP 2 WPKH()2 WPKH

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_HASH 160

OP_PUSHBYTES_20

6 d 3 ed 4 cf 55 dc 6752 a 12 d 3091 d 436 ef 8 f 0 f 982 ff 8

OP_EBAL

Mở khóa tập lệnh trong đầu vào

OP_PUSHBYTES_22

001402 c 8147 af 586 cace 7589672191 bb 1 c 790 e 9 e 9 a 72

Sơ đồ thực thi tập lệnh

(3) Sơ đồ của địa chỉ thanh toán này như sau:

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/technical/script/p 2 sh-p 2 wpkh/

Định dạng địa chỉ này bắt đầu bằng 3, ví dụ: 3 Beer 3 irc 1 vgs 76 ENA 4 coqsEQpGZeM 5 CTd

3.6. Thanh toán cho gói chứng kiến tập lệnh băm P 2 SH - P 2 WSH

P 2 SH-P 2 WSH (P 2 WSH được gói trong P 2 SH) gói thanh toán cho mã băm tập lệnh chứng kiến PS vào phương thức thanh toán cho mã băm tập lệnh P 2 SH.

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_HASH 160

OP_PUSHBYTES_20

257014 cec 2 f 75 c 19367 b 2 a 6 a 0 e 08 b 9 f 304108 e 3 b

OP_EBAL

Mở khóa tập lệnh trong đầu vào

OP_PUSHBYTES_34

0020973 cfd 44 e 60501 c 38320 ab 1105 fb 3 ee 3916 d 2952702 e 3 c 8 cb 4 cbb 7056 aa 6 b 47 f

Sơ đồ thực thi tập lệnh

(3) Sơ đồ của địa chỉ thanh toán này như sau:

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/technical/script/p 2 sh-p 2 wsh/

Định dạng địa chỉ này bắt đầu bằng 3, ví dụ: 3 NUPJunPTWu 5 ivNHoi 375 bsTiN 7 P 2 MpZC 2

3.7. Trả tiền để chứng kiến băm khóa công khai P2 WPKH

P 2 WPHK (Pay To Witness Public Key Hash) được sử dụng để thanh toán cho địa chỉ Segregated Witness.

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_0

OP_PUSHBYTES_20

841 b 80 d 2 cc 75 f 5345 c 482 af 96294 d 04 fdd 66 b 2 b 7

Mở khóa tập lệnh trong đầu vào (Dữ liệu vùng chứng kiến)

3044022042 e 5 e 3 ed 2 a 41214 ae 864634 b 6 fde 33 ca 2 ff 312 f 3 d 89 d 6 aa 3 e 14 c 026 d 50 d 8 ed 3202206 c 38 dcd 0432 a 0724490356 fbf 599 cdae 40 e 334 c 3667 a 9253 f 8 f 4 cc 57 cf 3 c 448001

03 f 465315805 ed 271 eb 972 e 43 d 84 d 2 a 9 e 19494 d 10151 d 9 f 6 adb 32 b 8534 bfd 764 ab

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/Technology/script/p 2 wpkh/

Biểu đồ hình thành địa chỉ

Tiền tố OP_0 được sử dụng để phân biệt phiên bản đầu tiên của Segregated Witness (các địa chỉ Taproot tiếp theo sử dụng OP_1 để phân biệt chúng), theo sau là mã băm khóa công khai 20 byte và cuối cùng là định dạng mã hóa địa chỉ Bech 32.

Định dạng địa chỉ này bắt đầu bằng bc 1 q, ví dụ:

bc 1 qar 0 srrr 7 xfkvy 5 l 643 lydnw 9 re 59 gtzzwf 5 mdq

Lưu ý: P2WPKH chỉ chấp nhận khóa công khai được nén

3.8. Trả tiền để chứng kiến mã băm tập lệnh P 2 WSH

P 2 WSH (Pay To Witness Script Hash), mã băm thanh toán cho nhân chứng.

(1) Sơ đồ

(2) Dữ liệu mẫu

Khóa tập lệnh trong đầu ra

OP_0

OP_PUSHBYTES_32

65 f 91 a 53 cb 7120057 db 3 d 378 bd 0 f 7 d 944167 d 43 a 7 dcbff 15 d 6 afc 4823 f 1 d 3 ed 3

Mở khóa tập lệnh trong đầu vào

00

30440220415899 bbee 08 e 42376 d 06 e 8 f 86 c 92 b 4987613 c 2816352 fe 09 cd 1479 fd 639 f 18 c 02200 db 57 f 508 f 69 e 266 d 76 c 23891708158 bda 18690 c 165 a 41 b 0 aa 88303 b 97609 f 7801

304402203973 de 2303 e 8787767090 dd 25 c 8 a 4 dc 97 ce 1 aa 7 eb 4 c 0962 f 13952 ed 4 e 856 ff 8 e 02203 f 1 bb 425 def 789 eea 8 be 46407 d 10 b 3 c 8730407176 aef 4 dc 2 c 29865 eb 5 e 5542 bf 01

522103848 e 308569 b 644372 a 5 eb 26665 f 1 a 8 c 34 ca 393 c 130 b 376 db 2 fae 75 c 43500013 c 2103 cec 1 ee 615 c 17 e 06 d 4 f 4 b 0 a 08617 dffb 8 e 568936 bdff 18 fb 057832 a 58 ad 4 d 1 b 752103 eed 7 ae 80 c 34 d 70 f 5 ba 93 f 93965 f 69 f 3 c 691 da 0 f 4607 f 242 f 4 fd 6 c 7 a 48789233 e 53 ae

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết thêm thông tin chi tiết:

https://learnmeabitcoin.com/Technology/script/p 2 wsh/

Biểu đồ hình thành địa chỉ

Tiền tố OP_0 được sử dụng để phân biệt phiên bản đầu tiên của Segregated Witness (các địa chỉ Taproot tiếp theo sử dụng OP_1 để phân biệt chúng), theo sau là mã băm tập lệnh 32 byte và cuối cùng là định dạng mã hóa địa chỉ Bech 32.

Định dạng địa chỉ này bắt đầu bằng bc 1 q, ví dụ:

bc 1 qmc 7 d 40 nxddfklulxq 55 f 2 jhupauaystdlxnj 69 asztedz 8 uz 6 e 3 q 9 lj 223

3.9. Thanh toán vào địa chỉ Taproot P 2 TR

P2TR (Pay To Taproot) thanh toán vào địa chỉ Taproot. Loại thanh toán này có hai loại: Chi tiêu Đường dẫn Khóa và Chi tiêu Đường dẫn Tập lệnh. Xem mô tả sau để biết chi tiết.

(1) Sơ đồ

(2) Dữ liệu mẫu 1 - Chi tiêu đường dẫn chính

Khóa tập lệnh trong đầu ra

OP_1

OP_PUSHBYTES_32

0 f 0 c 8 db 753 acbd 17343 a 39 c 2 f 3 f 4 e 35 e 4 be 6 da 749 f 9 e 35137 ab 220 e 7 b 238 a 667

Mở khóa tập lệnh trong đầu vào

b 693 a 0797 b 24 bae 12 ed 0516 a 2 f 5 ba 765618 dca 89 b 75 e 498 ba 5 b 745 b 71644362298 a 45 ca 39230 d 10 a 02 ee 6290 a 91 cebf 9839600 f 7 e 35158 a 447 e 182 e 0 e 022 ae 01

Sơ đồ của tập lệnh thực thi Key Path Spend

(3) Dữ liệu mẫu 2-3 Chi tiêu đường dẫn tập lệnh

Khóa tập lệnh trong đầu ra

OP_1

OP_PUSHBYTES_32

0 f 0 c 8 db 753 acbd 17343 a 39 c 2 f 3 f 4 e 35 e 4 be 6 da 749 f 9 e 35137 ab 220 e 7 b 238 a 667

Mở khóa tập lệnh trong đầu vào

01769105 cbcbdcaaee 5 e 58 cd 201 ba 3152477 fda 31410 df 8 b 91 b 4 aee 2 c 4864 c 7700615 efb 425 e 002 f 146 a 39 ca 0 a 4 f 2924566762 d 9213 bd 33 f 825 fad 83977 fba 7 f 01

206 d 4 ddc 0 e 47 d 2 e 8 f 82 cbe 2 fc 2 d 0 d 749 e 7 bd 3338112 cecdc 76 d 8 f 831 ae 6620 dbe 0 ac

c 0924 c 163 b 385 af 7093440184 af 6 fd 6244936 d 1288 cbb 41 cc 3812286 d 3 f 83 a 3329

Sơ đồ thực thi tập lệnh

Bạn có thể xem liên kết sau để biết giải thích chi tiết hơn: https://learnmeabitcoin.com/technical/script/p 2 tr/

Tiền tố OP_1 được sử dụng để phân biệt phiên bản thứ hai của Segregated Witness (các địa chỉ SegWit trước đó sử dụng OP_0 để phân biệt chúng), theo sau là mã băm khóa công khai 20 byte và cuối cùng là định dạng mã hóa địa chỉ Bech 32.

Định dạng địa chỉ này bắt đầu bằng bc 1 p, ví dụ:

bc 1 ppsxtf 9 y 28 tx 36 e 6 nlra 79 m 270 vuagzknt 97 w 6 ga 4 ah 5 g 7 ggxpu 8 s 6 z 8 ftw

4. Địa chỉ đường dẫn phái sinh và bảo vệ quyền riêng tư trong giao dịch Bitcoin

4.1. Lịch sử giao dịch Bitcoin

Sự thay đổi trong địa chỉ Bitcoin cũng liên quan chặt chẽ đến một số thay đổi trong lịch sử giao dịch Bitcoin, chủ yếu là do những thay đổi do hai triển khai SegWit của Bitcoin gây ra.

1. Các giao dịch được xác định trong sách trắng (mô hình giao dịch đơn giản)

Các giao dịch Bitcoin cơ bản ban đầu cho phép nhiều đầu vào và tối đa hai đầu ra. Một đầu ra là để nhận tiền thừa của người nhận, trong khi đầu ra còn lại là để chuyển khoản ra bên ngoài. (Lưu ý: Chênh lệch giữa tổng đầu vào và tổng đầu ra chính là phí giao dịch.)

Các địa chỉ đầu tiên bao gồm P 2 PK, P 2 PKH, P 2 MS và P 2 SH.

2. Giao dịch trong Segregated Witness Phiên bản 1 (SegWit)

Segregated Witness (SegWit) là một bản nâng cấp giao thức cho mạng lưới blockchain Bitcoin. Được nhà phát triển Pieter Wiulle đề xuất vào tháng 12 năm 2015 như một bản cập nhật cốt lõi cho máy khách Bitcoin Core, SegWit đạt được khả năng mở rộng dung lượng bằng cách tách dữ liệu giao dịch khỏi dữ liệu chữ ký. Giải pháp này duy trì khả năng tương thích với mạng lưới Bitcoin truyền thống và tránh được việc hard fork.

Cơ chế cốt lõi của nó làm tăng giới hạn kích thước khối từ 1 megabyte lên 4 megabyte (theo thống kê, mức tăng thực tế ước tính là 2-2,1 megabyte). Công nghệ này giải phóng không gian trên chuỗi chính bằng cách lưu trữ chữ ký số trong các khối chứng kiến bổ sung. Công nghệ này giải quyết các vấn đề về tính linh hoạt của giao dịch, cải thiện việc tạo mã định danh giao dịch để ngăn chặn các cuộc tấn công chi tiêu gấp đôi và đặt nền tảng cho các giao thức lớp thứ hai như Lightning Network. Là tiêu chuẩn máy khách chính thống được hầu hết các công ty trong ngành áp dụng, Bitcoin Core yêu cầu 95% tốc độ băm của mạng để hỗ trợ nâng cấp này, nhưng hỗ trợ thực tế vẫn luôn duy trì trong khoảng từ 32% đến 33,8%. Phe đối lập tập trung vào tiện ích kỹ thuật gây tranh cãi và khả năng can thiệp của bên thứ ba làm suy yếu tính phi tập trung của Bitcoin. Giao thức đã được kích hoạt trên mạng chính Bitcoin vào ngày 24 tháng 8 năm 2017.

Các địa chỉ trong đó là P 2 WPKH, P 2 WSH, P 2 SH-P 2 WPKH, P 2 SH-P 2 WPSH và một số loại địa chỉ khác.

3. Giao dịch trong Segregated Witness v2 (Taproot)

Công nghệ Taproot được đề xuất vào tháng 1 năm 2020 và chính thức có hiệu lực dưới dạng soft fork vào tháng 11 năm 2021. Bản nâng cấp này là sự kết hợp của BIP 340, BIP 341 và BIP 342. BIP 340 giới thiệu chữ ký Schnorr, có thể xác minh đồng thời nhiều giao dịch, thay thế Thuật toán chữ ký số đường cong Elliptic (ECDSA). Điều này đã mở rộng thêm dung lượng mạng và tăng tốc xử lý các giao dịch hàng loạt, tạo điều kiện thuận lợi cho việc triển khai các hợp đồng thông minh phức tạp. BIP 341 đã triển khai Cây cú pháp trừu tượng (MAST) dựa trên Merkle để tối ưu hóa lưu trữ dữ liệu giao dịch trên blockchain. BIP 342 (Tapscript) sử dụng ngôn ngữ kịch bản của Bitcoin để mở rộng các hạn chế về khả năng kịch bản gốc của Bitcoin.

Địa chỉ trong Taproot là loại địa chỉ P 2 TR.

4.2. Định nghĩa đường dẫn phái sinh phổ biến

Trước tiên, chúng ta hãy tìm hiểu các con đường phát sinh chung của Bitcoin, sau đó xem xét các con đường phát sinh chung của các chuỗi khác.

1. Các con đường phổ biến để tạo ra Bitcoin

Định dạng chuẩn đường dẫn phái sinh được xác định trong BIP là: m/purpose'/coin_type'/account'/change/address_index

Các đường dẫn phổ biến nhất của Bitcoin chủ yếu được phân biệt theo trường mục đích, tương ứng với các loại địa chỉ khác nhau.

(1) BIP 44 - Địa chỉ cũ (Bản gốc) (1...)

Đường đi: m/44'/0'/0'/0/0

Mục đích: Tiêu chuẩn ví HD đầu tiên, được sử dụng để tạo địa chỉ P2PKH bắt đầu từ 1.

Đặc trưng:

Khả năng tương thích tốt nhất, được hỗ trợ bởi tất cả các ví và sàn giao dịch.

Phí giao dịch cao nhất vì khối lượng dữ liệu giao dịch lớn.

Tình huống sử dụng: Hiện tại chủ yếu được sử dụng để khôi phục tiền từ các ví rất cũ hoặc nạp tiền vào các nền tảng cũ không hỗ trợ các loại địa chỉ mới.

(2) BIP 49 - Địa chỉ SegWit lồng nhau (3...)

Đường đi: m/49'/0'/0'/0/0

Mục đích: Dùng để tạo địa chỉ P 2 SH-P 2 WPKH bắt đầu từ 3.

Đặc trưng:

Điều này đạt được bằng cách gói địa chỉ SegWit trong một tập lệnh P2SH.

Phí giao dịch thấp hơn Legacy nhưng cao hơn Native SegWit.

Khả năng tương thích rất tốt và hầu hết các ví và sàn giao dịch đều hỗ trợ nhận và gửi đến các địa chỉ bắt đầu bằng 3.

Trường hợp sử dụng: Trong những ngày đầu triển khai SegWit, nó đóng vai trò là giải pháp tương thích cho quá trình chuyển đổi sang Native SegWit. Hiện tại, nó vẫn được hỗ trợ rộng rãi.

(3) BIP 84 - Địa chỉ SegWit gốc (bc 1 q...)

Đường đi: m/84'/0'/0'/0/0

Mục đích: Dùng để tạo địa chỉ P 2 WPKH bắt đầu bằng bc 1 q.

Đặc trưng:

Phí giao dịch thấp nhất vì khối lượng dữ liệu giao dịch nhỏ nhất và định dạng hiệu quả nhất.

Bảo mật tối ưu, tận dụng tối đa những lợi thế kỹ thuật của SegWit.

Khả năng tương thích: Hiện tại, hầu hết các ví, node và sàn giao dịch hiện đại đều hỗ trợ nó. Tuy nhiên, một số hệ thống rất cũ có thể không nhận ra nó.

Tình huống sử dụng: Tiêu chuẩn hiện tại được ưa chuộng và khuyến nghị để tiết kiệm phí và tận hưởng các tính năng kỹ thuật mới nhất.

(4) BIP 86 - Địa chỉ rễ cái (P 2 TR) (bc 1 p...)

Đường đi: m/86'/0'/0'/0/0

Mục đích: Dùng để tạo địa chỉ P 2 TR bắt đầu bằng bc 1 p. Đây là bản nâng cấp lớn mới nhất của Bitcoin.

Đặc trưng:

Cải thiện quyền riêng tư, giúp các khoản thanh toán đơn giản và giao dịch phức tạp trở nên gần như không thể phân biệt được trên chuỗi.

Hiệu quả cao hơn, cung cấp khả năng mở rộng tốt hơn và mức phí thấp hơn cho các hợp đồng thông minh phức tạp (như Lightning Network, DLC).

Thuật toán chữ ký (Chữ ký Schnorr) hiệu quả hơn và hỗ trợ tổng hợp khóa.

Kịch bản sử dụng: Thể hiện hướng phát triển trong tương lai của Bitcoin và phù hợp với người dùng và ứng dụng muốn sử dụng công nghệ mới nhất, theo đuổi mức phí thấp hơn và quyền riêng tư tốt hơn.

(5) Đường dẫn xuất được sử dụng trong công nghệ RGB

Nếu đồng xu được định nghĩa theo tiêu chuẩn giao thức BIP-44 và giao thức SLIP-44 theo giao thức RGB-0044, mục đích là 84. Đường dẫn phái sinh chính thức của RGB như sau: m_type/84'

Ngoài ra, tác giả cũng tham khảo trang web chính thức của RGB và sử dụng đường dẫn xuất của m/9735'/ theo mô tả trong LNPBP-46: Dẫn xuất LN. Nội dung liên quan cụ thể như sau:

Lưu ý: Tiêu chuẩn cụ thể nào cần được nghiên cứu thêm về các ứng dụng liên quan và tài liệu giao thức RGB.

(6) Các con đường quan trọng khác

Đường dẫn gốc BIP 32: m/0' (hoặc đôi khi là m/0). Một số triển khai cũ hơn hoặc ví không chuẩn có thể sử dụng trực tiếp đường dẫn này, nhưng điều này không được khuyến khích vì không đáp ứng các tiêu chuẩn đa tiền tệ và đa tài khoản.

Đường dẫn ví đa chữ ký: Đối với ví đa chữ ký, mỗi bên cộng tác thường sử dụng đường dẫn chuẩn riêng (ví dụ: m/48'/0'/0'/2') để lấy khóa công khai cho đa chữ ký. Đường dẫn này thường được quản lý bởi phần mềm ví điều phối đa chữ ký (ví dụ: Electrum, Spectre), và người dùng thông thường không cần phải xử lý thủ công.

Đường dẫn mạng thử nghiệm: Chỉ cần thay đổi coin_type trong đường dẫn trên từ 0' thành 1'. Ví dụ: đường dẫn Native SegWit của mạng thử nghiệm là: m/84'/1'/0'/0/0.

2. Sau đây là danh sách một số loại tiền tệ chính thống và đường dẫn chung của chúng.

(1) Chuỗi tương thích với Ethereum và EVM (BSC, Polygon, Avalanche C-Chain, v.v.)

Ethereum và nhiều chuỗi phái sinh của nó có cùng coin_type vì chúng sử dụng cùng một mật mã (đường cong secp 256k1) và định dạng địa chỉ.

Đường đi: m/44'/60'/0'/0/0

loại tiền xu: 60'

Định dạng địa chỉ: 0x...

Lưu ý: Đây là đường dẫn mặc định được hầu hết các ví sử dụng, bao gồm MetaMask và Trust Wallet. Tất cả các chuỗi dựa trên EVM (như BSC m/44'/60'/0'/0/0 và Polygon m/44'/60'/0'/0/0) đều sử dụng cùng một đường dẫn và cùng một bộ khóa riêng. Địa chỉ của bạn sẽ xuất hiện giống hệt nhau trên các chuỗi khác nhau, nhưng chúng là các tài khoản riêng biệt trên các chuỗi khác nhau. Khi chuyển đổi mạng, phần mềm ví sử dụng các nút RPC để phân biệt giữa các chuỗi khác nhau.

(2) Chuỗi Beacon Binance Coin (BNB)

BNB có chuỗi và hệ thống địa chỉ độc lập riêng, khác với chuỗi EVM.

Đường đi: m/44'/714'/0'/0/0

loại tiền xu: 714'

Định dạng địa chỉ: bnb 1... (Bech 32) hoặc tbnb 1... (testnet)

Mô tả: Được sử dụng cho tài sản BNB trên Binance Chain.

(3) Chấm bi

Đường đi: m/44'/354'/0'/0/0

loại tiền xu: 354'

Định dạng địa chỉ: Dựa trên định dạng SS 58, thường bắt đầu bằng số 1.

(4) Solana

Tuyến đường: m/44'/501'/0'/0'

loại tiền xu: 501'

Lưu ý: Lưu ý rằng đường đi của Solana sử dụng đạo hàm 0 cố định ở cuối, thay vì 0 thông thường. Đây là thông lệ tiêu chuẩn.

(5) Cardano

Con đường phát triển của Cardano khá đặc biệt và phức tạp, dựa trên giải pháp BIP 44-ADA riêng của nó.

Đường đi: m/1852'/1815'/0'/0/0

mục đích: 1852' (được thiết kế riêng cho Cardano)

coin_type: 1815' (năm ADA ra đời)

Định dạng địa chỉ: addr 1... (Bech 32)

Lưu ý: Đây là đường dẫn chuẩn được ví Daedalus và Yoroi sử dụng.

(6) Ripple (XRP)

Đường đi: m/44'/144'/0'/0/0

loại tiền xu: 144'

Định dạng địa chỉ: r... (Cơ số 58)

(7) Litecoin

Litecoin, giống như Bitcoin, cũng có nhiều loại địa chỉ.

Di sản (L...): m/44'/2'/0'/0/0

SegWit (M...): m/49'/2'/0'/0/0

SegWit gốc (ltc 1 q...): m/84'/2'/0'/0/0

loại tiền xu: 2'

(8) Dogecoin

Đường đi: m/44'/3'/0'/0/0

loại tiền xu: 3'

Định dạng địa chỉ: D... (Cơ số 58)

(9) Tron

Đường đi: m/44'/195'/0'/0/0

loại tiền xu: 195'

Định dạng địa chỉ: T... (Cơ số 58)

3. Hoàn cảnh không chuẩn mực hoặc ngoại lệ

(1) Monero

Monero không sử dụng tiêu chuẩn BIP 32/BIP 44. Nó có sơ đồ ví xác định phân cấp riêng, sử dụng mật mã khác nhau (đường cong Ed 25519) và cấu trúc khóa khác nhau.

Đường dẫn của nó trông như sau: m/44'/128'/0' (nhưng đây không phải là đường dẫn BIP 32 chuẩn)

Quan trọng: Bạn không thể sử dụng cụm từ khôi phục được thiết kế cho Bitcoin/Ethereum để khôi phục tiền trực tiếp từ ví Monero và ngược lại. Việc khôi phục ví Monero phải sử dụng cụm từ khôi phục và hệ thống riêng của Monero.

(2) Con đường Ethereum Classic cho Ví phần cứng

Một số ví phần cứng, chẳng hạn như Ledger, có đường dẫn riêng cho Ethereum Classic (ETC) để phân biệt với Ethereum (ETH), mặc dù định dạng địa chỉ của chúng giống nhau.

Ethereum (ETH): m/44'/60'/0'/0/0

Ethereum Classic (ETC): m/44'/61'/0'/0/0

4.3. Bảo vệ quyền riêng tư và sử dụng nhiều địa chỉ

Bitcoin có một hiện tượng độc đáo gọi là "thay đổi địa chỉ", hay nói đúng hơn, bất kỳ mô hình blockchain nào dựa trên mô hình UTXO đều thể hiện đặc điểm này. Để hiểu được "thay đổi địa chỉ", cần nắm rõ ba điểm chính:

1. Mô hình UTXO (Đầu ra giao dịch chưa chi)

Đây là mô hình sổ cái cốt lõi của Bitcoin, khác với mô hình số dư tài khoản truyền thống.

Nguyên tắc cơ bản: Mạng lưới Bitcoin không ghi lại "số dư" của bạn, mà là một loạt các "séc" chưa sử dụng (UTXO). Các séc này có mệnh giá khác nhau và sẽ bị hủy sau khi được sử dụng, và các séc mới sẽ được tạo ra.

Quy trình giao dịch: Khi thực hiện thanh toán, bạn phải rút một hoặc nhiều "séc" (đầu vào) từ ví của mình, với tổng giá trị phải lớn hơn hoặc bằng số tiền bạn muốn thanh toán. Giao dịch sẽ tạo ra hai "séc" mới:

Một đối với người thụ hưởng: mệnh giá bằng với số tiền thanh toán.

Một cho chính bạn (tiền thừa): mệnh giá bằng (tổng số tiền nhập - số tiền thanh toán - phí giao dịch).

Điểm mấu chốt: Tiền thừa về cơ bản là một khoản đầu ra mới (UTXO) được trả cho bạn. Cấu trúc giao dịch của nó không khác gì so với khoản đầu ra bạn trả cho người khác.

Lưu ý: Thuật ngữ "séc" được sử dụng ở đây thay vì "tiền mặt" (thường được in với số tiền cố định) vì số tiền trên séc là ngẫu nhiên và có thể thay đổi tùy theo từng séc, điều này phù hợp hơn với kịch bản UTXO trong Bitcoin. Thông thường, các thuật ngữ "séc" và "tiền mặt" được sử dụng thay thế cho nhau để truyền tải cùng một ý nghĩa.

2. Bảo vệ quyền riêng tư theo thiết kế

Sử dụng địa chỉ cố định có thể ảnh hưởng nghiêm trọng đến quyền riêng tư.

Vấn đề tái sử dụng địa chỉ: Nếu tất cả UTXO (bao gồm cả tiền thừa) đều quay trở lại cùng một địa chỉ, các cơ quan hoặc nhân viên phân tích blockchain có thể dễ dàng:

Kết nối tất cả các giao dịch của bạn: Biết tất cả các dòng tiền chảy qua địa chỉ này.

Ước tính tài sản của bạn: Xem rõ tổng thu nhập của bạn.

Phá vỡ tính ẩn danh: không thể trộn lẫn giao dịch của người khác với giao dịch của bạn.

Giải pháp: Sử dụng một địa chỉ mới cho tiền thừa trong mỗi giao dịch. Điều này khiến người quan sát bên ngoài khó xác định được đầu ra nào trong giao dịch được trả cho người bán và đầu ra nào là tiền thừa được trả lại cho bạn. Điều này làm tăng đáng kể độ khó của việc phân tích blockchain và bảo vệ quyền riêng tư tài chính của bạn.

3. Triển khai kỹ thuật Ví HD (Ví xác định phân cấp)

Việc quản lý thủ công các địa chỉ mới và khóa riêng cho mỗi thay đổi là không khả thi và ví HD sẽ tự động hóa quy trình này.

Cấu trúc chuỗi: Ví HD có thể tạo ra số lượng địa chỉ và khóa riêng gần như không giới hạn từ một hạt giống (ghi nhớ).

Đường dẫn phái sinh: Như đã thảo luận trước đó, đường dẫn chuẩn m/44'/0'/0'/1/* được sử dụng cụ thể để thay đổi (thay đổi = 1).

m/44'/0'/0'/0/*: Được sử dụng để tạo địa chỉ nhận (liên kết ngoài).

m/44'/0'/0'/1/*: Được sử dụng để tạo địa chỉ thay đổi (chuỗi nội bộ).

Quy trình làm việc:

Khi phần mềm ví của bạn tạo một giao dịch, nếu cần thay đổi, nó sẽ tự động lấy giao dịch đó từ "nhóm địa chỉ thay đổi" nội bộ (/1/*) làm địa chỉ nhận thay đổi. Địa chỉ tiếp theo chưa từng được sử dụng

Sau khi giao dịch được phát sóng và xác nhận, UTXO thay đổi mới sẽ được lưu dưới địa chỉ mới này.

Lần tới khi bạn chi tiền, ví của bạn sẽ quét tất cả UTXO trên cả chuỗi nhận và chuỗi trả tiền và sử dụng chúng làm "đầu vào" khả dụng. Bạn không cần phải quản lý chúng theo cách thủ công; ví sẽ tự động xử lý mọi thứ.

Tóm lại, địa chỉ thay đổi là kết quả tất yếu của sự kết hợp giữa [ , ] và [ ]. Nó không phải là tùy chọn mà là hành vi tiêu chuẩn của ví Bitcoin. Yêu cầu bảo vệ quyền riêng tư của mô hình UTXO Công nghệ ví HD

Sử dụng trình khám phá blockchain: Tìm một giao dịch thực tế (ví dụ: giao dịch từ ví của bạn) và xem chi tiết giao dịch đó trên mempool.space hoặc blockstream.info. Hãy thử phân tích dữ liệu đầu vào và đầu ra của giao dịch, và đoán xem đâu là đầu ra thanh toán và đâu là đầu ra tiền thừa (thường thì đầu ra tiền thừa sẽ trỏ đến một địa chỉ mới thuộc về người gửi).

Sử dụng ví thử nghiệm: Tạo ví mới trên mạng thử nghiệm, thực hiện một số thao tác gửi và nhận, sau đó quan sát danh sách địa chỉ trong ví của bạn thay đổi như thế nào và UTXO được tạo và sử dụng ra sao.

Tài liệu tham khảo

1. https://learnmeabitcoin.com/ là một trang web tuyệt vời để tìm hiểu về Bitcoin.

2. BIP 32: Ví xác định phân cấp, 2012-02-11, https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

3. BIP 39: Mã ghi nhớ để tạo khóa xác định, ngày 10 tháng 9 năm 2013, https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki

4. BIP 44: Hệ thống phân cấp nhiều tài khoản cho ví xác định, 24/04/2014, https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

5. BIP 43: Trường mục đích cho ví xác định, 24/04/2014, https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki

6. SLIP-0044: Các loại tiền đã đăng ký cho BIP-0044, ngày 09 tháng 7 năm 2014, https://github.com/satoshilabs/slips/blob/master/slip-0044.md

7. BIP 11: Giao dịch chuẩn M-of-N, 18-10-2011, https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki

8. BIP 13: Định dạng địa chỉ để trả tiền cho mã băm tập lệnh, ngày 18 tháng 10 năm 2011, https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki

9. BIP 16: Trả tiền cho Script Hash, 2012-01-03, https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki

10. BIP 49: Sơ đồ phái sinh cho các tài khoản dựa trên P 2 WPKH lồng nhau trong P 2 SH, ngày 19 tháng 5 năm 2016 https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki

11. BIP 84: Sơ đồ phái sinh cho các tài khoản dựa trên P 2 WPKH, ngày 28 tháng 12 năm 2017, https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki

12. BIP 86: Đạo hàm khóa cho đầu ra P 2 TR khóa đơn, 22-06-2021, https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki

13. BIP 173: Định dạng địa chỉ cơ sở 32 cho đầu ra chứng kiến v 0-16 gốc, 2017-03-20, https://github.com/Roasbeef/bips/blob/bip-tap/bip-0173.mediawiki

14. BIP 350: Địa chỉ cho P 2 WPKH và P 2 WSH trong Bech 32 m, 16-12-2020, https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki

15. BIP 141: Nhân chứng tách biệt, 16-12-2020, https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki

BTC
công nghệ
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina