BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Một chút khoa học phổ biến: số ngẫu nhiên thực và số giả ngẫu nhiên

Đọc bài viết này mất 10 phút
Trong lịch sử đã có rất nhiều trường hợp người dùng ví bị mất coin, tất cả đều do vấn đề với chức năng ngẫu nhiên.

Tiêu đề gốc: "Khoa học phổ biến nhỏ: Số ngẫu nhiên thực sự và số giả ngẫu nhiên"
Nguồn gốc: bitpieteam


Người dùng Bitcoin thích thảo luận về các chủ đề sâu sắc như "mã hóa bất đối xứng", "đường cong elip" và "máy tính lượng tử", sau đó sử dụng chúng theo cách rất khó giải thích. Đồng xu bị mất, ví dụ: "ngẫu nhiên".




Trong lịch sử, đã có rất nhiều sự cố người dùng ví của nhiều thương hiệu khác nhau bị mất xu, tất cả đều do vấn đề với chức năng ngẫu nhiên .


Tính ngẫu nhiên rất quan trọng, đặc biệt đối với các loại tiền điện tử mã hóa như Bitcoin. Rất tiếc là cộng đồng chưa có nhiều thảo luận về tính ngẫu nhiên nên nhiều người chưa có hiểu biết đúng đắn nên hôm nay chúng tôi sẽ nói chuyện với các bạn về tính ngẫu nhiên.

Nói đến tính ngẫu nhiên, có hai khái niệm cần phải hiểu: "True Random Number Generator" (TRNG) và pseudo-randomness Number Máy phát điện (PRNG).


Các hàm ngẫu nhiên trong hầu hết các chương trình và ngôn ngữ máy tính là các bộ tạo số giả ngẫu nhiên, được xác định bởi Thuật toán sử dụng một "hạt giống" (chẳng hạn như "thời gian") để tạo ra kết quả "dường như ngẫu nhiên".

Chắc chắn rằng bất kỳ ai biết thuật toán và hạt giống hoặc các số ngẫu nhiên đã được tạo trước đó đều có thể nhận được số tiếp theo số ngẫu nhiên, thông tin trình tự. Do khả năng dự đoán và tính chất không an toàn về mặt mật mã của chúng, chúng tôi gọi chúng là “giả ngẫu nhiên”. Loại số ngẫu nhiên này có thể dùng để kẻ xấu trong trò chơi bỏ chạy mà không gặp nhiều khó khăn, nhưng nếu dùng để tạo khóa riêng Bitcoin thì quá không an toàn.

Hãy nói về trình tạo số ngẫu nhiên thực sự. Trong Wiki tiếng Trung, "Trình tạo số ngẫu nhiên phần cứng" (HRNG) tương đương với tính ngẫu nhiên thực sự Trình tạo số, điều này thực sự không chính xác lắm. Tính ngẫu nhiên thực sự theo nghĩa chặt chẽ có thể chỉ tồn tại trong cơ học lượng tử. Thứ chúng ta hiện đang muốn (hoặc có thể muốn) không phải là loại ngẫu nhiên này.

Chúng tôi thực sự muốn một số ngẫu nhiên không thể đoán trước, nói theo thống kê, được bảo mật bằng mật mã, miễn là chúng tôi có thể làm được điều này. Bất kỳ trình tạo số ngẫu nhiên nào cũng có thể được gọi là bộ tạo số ngẫu nhiên thực sự. Loại ngẫu nhiên thực sự này không nhất thiết yêu cầu phần cứng được thiết kế đặc biệt. Trình tạo số ngẫu nhiên (/dev/ngẫu nhiên) trong nhân hệ điều hành Linux duy trì một nhóm entropy (thu thập tiếng ồn phần cứng, chẳng hạn như thao tác bàn phím, chuột, thay đổi cường độ tín hiệu mạng, v.v.), cho phép nó cung cấp entropy dữ liệu ngẫu nhiên tối đa có thể và do đó cũng là một trình tạo số ngẫu nhiên thực sự chất lượng cao.

Tuy nhiên, /dev/random đang chặn, nghĩa là, nếu nhóm entropy trống, thao tác đọc của /dev/random sẽ bị tạm dừng cho đến khi thu được đủ tiếng ồn xung quanh.


Do đó, khi phát triển chương trình, chúng ta nên sử dụng /dev/urandom làm bản sao của /dev/random. không chặn, nhưng đầu ra của nó có thể có ít entropy hơn/dev/ngẫu nhiên.

Được rồi, sau khi nói rất nhiều, loại trình tạo số ngẫu nhiên nào nên được sử dụng khi chúng tôi phát triển ứng dụng Bitcoin? Còn việc tạo một trình tạo số riêng tư thì sao? chìa khóa?

Câu trả lời rất đơn giản: urandom. Luôn luôn chỉ sử dụng urandom.

Không sử dụng bất kỳ giải pháp số ngẫu nhiên nào của bên thứ ba, ngay cả một số thư viện bảo mật nâng cao tự nhận là chức năng ngẫu nhiên "rất an toàn". Bởi vì cả hai đều là trình tạo số ngẫu nhiên mã hóa không gian người dùng và urandom là trình tạo số ngẫu nhiên trong không gian hạt nhân, hạt nhân có quyền truy cập vào entropy của thiết bị thô và hạt nhân có thể đảm bảo rằng trạng thái tương tự không được chia sẻ giữa các ứng dụng.

Trong lịch sử, đã có vô số trường hợp lỗi số ngẫu nhiên, hầu hết xảy ra trong các trình tạo số ngẫu nhiên ở chế độ người dùng. Hơn nữa, người dùng- chế độ số ngẫu nhiên Trình tạo số hầu như luôn dựa vào trình tạo số ngẫu nhiên trạng thái hạt nhân (nếu nó không phụ thuộc vào nó thì rủi ro sẽ lớn hơn). Ngoại trừ việc nó có thể đơn giản hóa một số công việc phát triển của bạn, không có lợi ích bổ sung nào cả ... Ngược lại, nó làm tăng nguy cơ bảo mật tiềm ẩn do việc đưa mã của bên thứ ba vào.

Do đó, các nhà phát triển nên sử dụng urandom khi họ cần số ngẫu nhiên được bảo mật bằng mật mã.

Cuối cùng, Một số trẻ hỏi về phần cứng BITHD của bạn. những con số được tạo ra bởi ví thực sự ngẫu nhiên?

Đây là câu trả lời: Tất nhiên rồi~


chip của BITHD có bộ tạo số ngẫu nhiên phần cứng, tạo ra các số ngẫu nhiên thực sự bằng cách thu thập các nguồn nhiễu vật lý. Điều này là không thể đoán trước và không thể đoán trước. Những gì được phát hiện là một nguồn gốc thực sự của sự ngẫu nhiên.


Liên kết nguồn: weixin.qq.com


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi