Hướng dẫn tạo 2 ví Bitcoin Cash có 2 chữ kí (Multi-Sig)

Ben Kaufman – là nhà phát triển phần mềm không uỷ quyền (permissionless) tại Specter Wallet ( một dịch vụ nhằm cung cấp các giao dịch MultiSig liền mạch và các giải pháp liên quan đến công nghệ HODL khác) – thực hiện bài hướng dẫn này về cách lưu trữ ví Bitcoin đa chữ ký (multisig) thật an toàn!

Tôi đã nhận được nhiều câu hỏi từ những người đang cân nhắc thiết lập ví #Bitcoin multisig nhưng bối rối về quy trình sao lưu, những gì nên sao lưu và tại sao.

Vì vậy, đây là một chủ đề về sao lưu ví đa chữ ký – lưu trữ cái gì, tại sao và bằng cách nào.

Lưu ý chính trong ví multisig là, trong khi bạn chỉ cần một ngưỡng thiết bị (tức là 2 trên 3, 3 trên 5, v.v.) để ký một giao dịch, việc mất quyền truy cập dù chỉ một thiết bị có thể khiến bạn không thể tiêu tiền – nếu bạn không sao lưu đúng cách!

Lý do là (thông thường) để thực hiện một giao dịch Bitcoin, bạn không thể ký tên vào nó mà còn cần phải cung cấp “điều khoản chi tiêu”, nghĩa làScript (mã) được sử dụng để khóa các đồng tiền.

http://bit.ly/32LbCLR

Đó là bởi vì tập lệnh đầy đủ thường không được lưu trữ trực tiếp trên blockchain, mà chỉ ở dạng băm (một mã định danh duy nhất của nó). Sau đó, khi chi tiêu, bạn cần cung cấp cả mã tập lệnh gốc khớp với hàm băm đó và đáp ứng bất kỳ điều kiện nào mà tập lệnh có thể bao gồm.

Trong một ví khóa duy nhất, điều này là nhỏ. Tập lệnh bao gồm khóa công khai của ví của bạn và một số lệnh tiêu chuẩn – và việc đáp ứng nó yêu cầu chữ ký cho khóa đó, do đó, cả tập lệnh và chữ ký đều có thể được tạo bằng cách có quyền truy cập vào một khóa riêng tư đó.

Với multisig thì điều này quan trọng. Tập lệnh cho multisig chứa danh sách các khóa công khai của tất cả các cosigner có thể có – có nghĩa là nó chỉ có thể được xây dựng bằng cách biết các khóa công khai của TẤT CẢ các thiết bị trong multisig, không chỉ của các thiết bị bạn đang ký.

Khi bạn muốn lấy một địa chỉ của multisig, phần mềm ví của bạn đang lấy các khóa công khai của cả 3 cosigner, liệt kê chúng theo cách tiêu chuẩn bên trong một tập lệnh, băm nó, sau đó với hàm băm này tạo địa chỉ.

Khi nhận bitcoin đến địa chỉ đó, trên blockchain sẽ có “cam kết” cho cả 3 khóa công khai, trong đó cần 2 chữ ký. Nhưng bản thân các khóa công khai vẫn chưa được liệt kê trên blockchain – bạn cũng phải cung cấp chúng khi chi tiêu từ địa chỉ.

Bây giờ, giả sử bạn đã mất quyền truy cập vào một khóa cá nhân (một thiết bị và bản sao lưu ghi nhớ của nó), bạn sẽ không thể biết khóa công khai của nó nữa – vì vậy bạn sẽ không thể tạo lại tập lệnh của địa chỉ.
Vì vậy, mặc dù bạn có đủ chữ ký, bạn sẽ không thể tiếp cận quỹ.

Giải pháp – là bước bổ sung của sao lưu multisig – cũng là giữ một bản sao lưu danh sách các khóa công khai (xpub) của tất cả các cosigner, từ đó bạn có thể tạo lại script.

Vì danh sách khóa công khai này không chứa khóa ký (riêng tư),
không có nguy cơ mất tiền ngay cả khi kẻ tấn công truy cập vào nó, nhưng đây sẽ là mối quan tâm về quyền riêng tư vì kẻ tấn công sau đó sẽ có thể xem số dư trên ví multisig.

Đó là lý do tại sao không nên để tệp này trên một số bản sao lưu đám mây hoặc một số tùy chọn không an toàn khác.
Bạn nên giữ nó cùng với từng bản sao lưu cosigners / seed để bạn có thể khôi phục bất kể sự kết hợp của những người đăng nhập mà bạn cuối cùng sử dụng.

Bên cạnh danh sách các khóa công khai, cũng cần biết loại tập lệnh được sử dụng (bất kỳ SegWit gốc, SegWit lồng nhau hay kế thừa),
và ngưỡng được chọn để tạo tập lệnh multisig. Có thể biết những điều này bằng cách đoán (tính vũ phu), nhưng tốt hơn là bạn nên giữ nó.

Phần cuối cùng mà bạn nên bao gồm là các đường dẫn xuất được sử dụng cho mỗi thiết bị. Mỗi đường dẫn dẫn xuất cho ví của bạn biết cách chuyển từng khóa công khai chính,
thành một khóa công khai “dùng một lần” riêng lẻ khác được sử dụng để tạo mọi địa chỉ mới.

Dữ liệu về các đường dẫn xuất này được chuẩn hóa để tất cả các ví phải sử dụng cùng một đường dẫn xuất theo mặc định, nhưng tốt nhất là bạn nên giữ nguyên đường dẫn đó, đặc biệt nếu bạn sử dụng một đường dẫn duy nhất vì lý do nào đó.

Điều này nghe có vẻ giống như rất nhiều thành phần,
nhưng để đơn giản hóa việc sử dụng, có một tiêu chuẩn để lưu trữ và khôi phục thông tin đó, được gọi là Bộ mô tả đầu ra.

Chỉ là một ví dụ về bản sao lưu cuối cùng có thể trông như thế nào, đây là một vài bức ảnh về bản sao lưu PDF được tạo từ @SpecterWallet

Điều này chứa danh sách khóa thiết bị riêng lẻ,
cũng như mọi thứ ở định dạng bộ mô tả đầu ra (và một chút dữ liệu bổ sung như tên ví, v.v.)

How to safely backup your Bitcoin multisig wallet?How to safely backup your Bitcoin multisig wallet?

Image

Bạn có thể lưu tệp này bằng cách chỉ cần in tệp PDF, lưu trữ trên thẻ SD hoặc chỉ giữ mã hóa trên bản sao lưu đám mây. Những gì bạn cần nhớ là: 1. Bạn cần thông tin này để khôi phục ví. 2. Bất kỳ ai có quyền truy cập thông tin này đều có thể xem lịch sử ví của bạn.

Vì vậy, để đơn giản, phần bổ sung bạn nên sao lưu khi sử dụng ví multisig là bộ mô tả đầu ra – danh sách các khóa công khai của các cosigner với một số dữ liệu trên ví.

Thông tin này chỉ có thể lấy khi có quyền truy cập vào tất cả các thiết bị trong multisig của bạn và bạn cần phải chi tiêu từ đó. Vì vậy, để loại bỏ điểm lỗi duy nhất khi mất quyền truy cập vào một cosigner, bạn nên giữ bản sao lưu này cùng với mỗi thiết bị của mình. vây /

Công bằng mà nói, bạn không cần phải sao lưu bất cứ thứ gì ngoại trừ hạt giống nếu bạn muốn bảo mật “cần tất cả các thiết bị”. 2 trong số 2 đã tốt hơn so với khóa đơn, nhưng vẫn không có chỗ cho sai lầm, đó luôn là sự đánh đổi …

Ben Kaufman đã và đang đóng góp vào nhiều dự án khác nhau trong không gian Bitcoin như Spectre, HWIBisq và viết nhiều về chủ đề kinh tế đằng sau Bitcoin cũng như các ấn đề liên quan đến bảo mật lưu trự.

Nếu bạn muốn ủng hộ công việc của anh ấy với một vài satoshi – bạn có thể làm như vậy tại đây.