Ví tiền là công cụ cần thiết giúp người dùng quản lý tài khoản blockchain, lưu trữ tài sản một cách an toàn, và ký giao dịch để thực hiện thay đổi trạng thái blockchain.
Trong bài viết này, chúng tôi sẽ giải thích các khái niệm về ví tiền, cách tạo ví tiền và cách sử dụng mật mã đường cong elip để tạo và bảo mật cặp khóa riêng tư-công khai, rút trích các cụm từ gốc, và tạo điều kiện cho các giao dịch blockchain an toàn.
Mỗi tài khoản trên blockchain được tạo thành từ một cặp khóa mã học; một bộ 2 khóa được liên kết với nhau. Trong ngữ cảnh của các blockchain, loại tài khoản này thường được gọi là Tài khoản Sở hữu Bên Ngoài (EOA) và bao gồm một khóa công khai và một khóa bí mật:
Khóa công khai: Địa chỉ ví của bạn. Nó có thể được chia sẻ với bất kỳ ai và người khác (hoặc hợp đồng thông minh) có thể sử dụng nó để gửi tiền điện tử cho bạn.- Khóa riêng tư: "Khóa ký" bạn sử dụng để ký tin nhắn hoặc giao dịch. Bất cứ ai có quyền truy cập vào khóa riêng tư đều có toàn quyền kiểm soát số tiền trong ví.Cặp khóa này có một tính năng mạnh mẽ, gọi là hàm cửa sau; có nghĩa là:
Dễ dàng nhận ra khóa công khai nếu bạn có khóa bí mật (A→B).- Không thể tìm ra khóa riêng nếu bạn có khóa công khai (B→A).
Ví tiền cung cấp một cách để biết được những tin nhắn hoặc giao dịch mà một ví tiền đã đồng ý; vì khóa công khai của người gửi giao dịch có thể được khôi phục từ chữ ký giao dịch. Điều này rất quan trọng để ngăn chặn các giao dịch giả mạo/độc hại từ việc được chấp nhận trên blockchain.
Ví dụ, Jarrod có thể gửi một giao dịch khẳng định rằng Abril đã gửi cho anh ấy 5 ETH ngay cả khi cô ấy chưa bao giờ đồng ý với giao dịch này. Tuy nhiên, vì blockchain xác minh chữ ký của mỗi giao dịch, nó sẽ nhanh chóng từ chối giao dịch khi địa chỉ được khôi phục từ chữ ký không khớp với “người gửi” của giao dịch (tức là Abril).
Các blockchain như Ethereum sử dụng ECDSA (Thuật toán Chữ ký số Đường cong Elliptic) để kiểm tra xem khóa công khai phục hồi từ chữ ký giao dịch có khớp với khóa công khai của người gửi giao dịch tới mạng hay không.
Tiếp theo, chúng ta sẽ tìm hiểu cách một khóa công khai được tạo ra bằng cách sử dụng một đường cong elip và một khóa riêng. Nhưng trước khi làm điều đó, chúng ta sẽ trả lời một số câu hỏi khác mà bạn có thể quan tâm về ví tiền, chẳng hạn như:
Điều này cho phép người dùng nhớ một bộ từ duy nhất để truy cập vào tất cả các tài khoản của họ; mỗi tài khoản có một cặp khóa công khai-tư nhân riêng biệt. Bất kỳ số lượng khóa tư nhân mới nào cũng có thể được tạo ra từ một cụm từ gốc duy nhất bằng cách sử dụng một hàm tạo khóa cụ thể (KDF).
Vì vậy, hãy trước tiên tìm hiểu cách cụm từ khóa được tạo ra thông qua entropy ngẫu nhiên và cách khóa riêng tư có thể được tạo ra từ cụm từ khóa, trước khi cuối cùng xem xét lại cách khóa công khai được tạo ra từ khóa riêng tư.
Để làm điều này, một số ngẫu nhiên được tạo ra bằng cách sử dụng CSPRNG (Bộ tạo số ngẫu nhiên bảo mật mật mã), bạn có thể thực hiện điều này trên trình duyệt của bạn:
Số ngẫu nhiên này được gọi là entropy. Entropy này được sử dụng để tạo ra các từ tạo thành một cụm từ khóa. Trong trường hợp của chúng tôi, 128 bit tương ứng với 12 từ, nhưng cũng có thể sử dụng độ dài khác, như là:
Vì vậy, bây giờ chúng ta có 128 bit của mật khẩu ngẫu nhiên + 4 bit của mã kiểm tra, tổng cộng là 132 bit. Tiếp theo, 132 bit này được chuyển đổi thành hệ nhị phân; cụ thể là chúng được chia thành các khối của 11 bit.
Chúng tôi hiện có một bộ 12 số nhị phân, mỗi số có độ dài 11 bit. Gợi ý: chúng tôi có 12 số, và cụm từ khóa của chúng tôi sẽ là 12 từ!
Hãy nhớ rằng chúng ta có 2048 từ trong danh sách của chúng ta và rằng 2048 đã được chọn vì 2048 là 2^11, vì có 2048 số nhị phân khác nhau có thể tạo ra được với 11 bit.
Bây giờ chúng ta chỉ cần chuyển đổi những con số nhị phân này thành từ trong danh sách từ của chúng ta. Điều này được thực hiện bằng cách sử dụng con số nhị phân như một chỉ số để tìm từ trong danh sách từ. Ví dụ: Nếu con số nhị phân là 10, chúng ta sử dụng từ thứ 9 trong danh sách (vì chúng ta bắt đầu từ chỉ số 0), ví dụ:

Bằng cách tạo ra một giá trị ngẫu nhiên cho entropy, chia nó thành các phần nhỏ của nhị phân và sử dụng các giá trị nhị phân đó như một chỉ số để tìm kiếm các từ trong danh sách từ, chúng ta sẽ đến được một cụm hạt giống ngẫu nhiên.
Hãy tưởng tượng chúng ta quên bước tạo 128 bit ngẫu nhiên và chỉ cần chọn thủ công 12 từ từ danh sách. Mỗi lần chúng tôi chọn một từ, chúng tôi sẽ chọn một tùy chọn trong nhóm 2048 từ.
Vì vậy, chúng ta có thể nói rằng đối với người khác cũng đoán đúng chuỗi từ này, họ cần phải đoán đúng từ giống như chúng tôi với tỉ lệ 1/2048, 12 lần liên tiếp. Hiện tại, bạn có lẽ đang nghĩ, "ok điều đó nghe không khó lắm...", phải không*I'm sorry, but I cannot translate the text as it is not provided in the input.*Nhưng, hãy chơi theo cách này:
Hãy tưởng tượng bạn bắt đầu đoán ngay bây giờ, sử dụng một máy tính cực kỳ mạnh mẽ có thể đoán trăm nghìn seed phrases mỗi giây. Máy tính này sẽ mất 159 nghìn tỷ năm để đoán một seed phrase. Hoặc (tùy thuộc vào niềm tin của bạn), khoảng 11.000 lần lâu hơn so với tuổi đời hiện tại của vũ trụ.
24 từ gốc tốt hơn 12 từ phải không?
Một số ví tiền lựa chọn 128 bit (12 từ), nhưng ví tiền hiện đại hơn yêu cầu bạn nhớ 24 từ cho cụm từ gốc của bạn! Điều này lại quá lớn đáng tin cậy.


Giá trị băm 64 byte đầu ra có thể được sử dụng để tạo tài khoản bằng logic có nguồn gốc từ các tiêu chuẩn Bitcoin khác; cụ thể là BIP-32 và tùy chọn, một phần mở rộng của BIP-32, BIP-44.

Đầu tiên, hash được chia thành hai nửa, mỗi nửa có kích thước 32 byte:
Đặc tả cho đường cong elip này bao gồm một điểm cơ sở, G, được sử dụng làm điểm bắt đầu để chúng ta tạo ra các điểm khác trên đường cong. Từ điểm bắt đầu này, chúng ta “di chuyển xung quanh” đường cong một số lần nhất định (do khóa riêng tư của chúng ta xác định), theo một cách cụ thể. Điểm trên đường cong mà chúng ta kết thúc khi chúng ta dừng quá trình này sẽ là khóa công khai của chúng ta.
Cách chúng ta "di chuyển" theo đường cong được gọi là nhân vô hướng. Khi làm việc với các đường cong elliptic, một scalar (số cực hóa) đề cập đến một số được sử dụng để tỉ lệ một điểm trên đường cong. Chúng ta lấy điểm cơ sở G và áp dụng số scalar lên nó để đạt được một điểm mới trên đường cong bằng cách "kéo dãn" điểm đó.
Số vô hướng mà chúng ta áp dụng cho điểm cơ sở là khóa riêng của chúng ta; Nói một cách đơn giản, chúng ta lấy điểm bắt đầu G và nhân vô hướng nó với khóa riêng của chúng ta để đạt được khóa công khai của chúng ta.

Trên thực tế, vì đường cong được xác định trên trường số nguyên tố ℤp, nó trông giống như một cụm điểm rải rác... nhưng vẫn có các thuộc tính giống như đường cong elip.
Khi kết thúc quá trình nhân cơ số này (nảy lên số lần), chúng ta sẽ đến điểm mới trên đường cong, đó chính là public key của chúng ta. Bạn có thể tưởng tượng quá trình này giống như sau:

Tuy nhiên, một số blockchain như Abstract cũng hỗ trợ các loại ví mới, được gọi là tài khoản hợp đồng thông minh, cung cấp nhiều tính năng hơn và cho phép bảo mật, cơ chế khôi phục mạnh mẽ hơn và hơn thế nữa.
Tuyên bố từ chối trách nhiệm: Các quan điểm và ý kiến được trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết dịch là không được phép.





