krone
VIP Members
-
26/07/2016
-
141
-
259 bài viết
Proof of work (PoW) Blockchain
Proof-of-work (PoW)
Đây là thuật toán phổ biến nhất được sử dụng bởi các loại tiền tệ như Bitcoin và Ethereum, mỗi loại có sự khác biệt riêng.
Trước khi bắt đầu thì sẽ có một khái niệm được thể hiện cụ thể dành cho những người chưa có kiến thức nhiều về kỹ thuật như sau:
Một “hash function” là một hàm bất kì có thể được sử dụng để ánh xạ dữ liệu có kích thước tuỳ ý đến dữ liệu có kích thước cố định.
Nếu “hash function” được bảo mật đúng cách, output của nó không thể phân biệt được sự ngẫu nhiên.
Với thuật toán Proof-of-work, một node để có thể được bầu lên làm node tiếp theo có thể chọn khối kế tiếp được thêm vào blockchain, node đó phải thực hiện tìm ra một giải pháp cho một vấn đề về toán học cụ thể.
Và bài toán cụ thể đó là:
Cho một dữ liệu X, tìm một số n chẳng hạn như băm của n được nối vào kết quả X là một số nhỏ hơn Y.
Bởi một hash function (hay còn gọi là hàm băm) được sử dụng có độ an toàn về mặt mã hoá. Cách duy nhất tìm ra đáp án cho bài toán đó là sử dụng kỹ thuật bruteforce (có nghĩa là thử mọi kết quả có thể xảy ra). Nói cách khác, ở một xác suất nào đó, một node phải có một sức mạnh tính toán hợp lí (hashpower). Những node đó còn gọi là “MINERS”.
Thuật toán trên khá thành công và dựa vào những đặc tính sau đây để phát triển:
- Rất khó để tìm ra đáp án để giải quyết bài toán.
- Nếu đáp án được đưa ra, chúng ta dễ dàng xác minh rằng kết quả đó là đúng
Bất cứ khi nào một block mới được khai thác, các miners sẽ nhận được một phần thưởng tương ứng với block đó, từ đó khuyến khích khai thác. Trong thuật toán PoW, các node khác sẽ xác minh tính hợp lệ của block mới được tạo ra bằng cách kiểm tra xem hàm băm của dữ liệu block có nhỏ hơn số được đặt ra trước hay không.
Do nguồn cung cấp năng lượng để thực hiện tính toán bị hạn chế nên các miners được khuyến khích không gian lận trong việc tính toán. Tấn công mạng vào blockchain sẽ tốn nhiều chi phí về phần cứng, năng lượng và lợi nhuận khai thác bị mất.
Hình ảnh minh hoạ cách bitcoin và bất kỳ loại coin nào khác sử dụng PoW để ngăn cản các hành vi mang tính rủi ro.
Proof-of-work cung cấp sự bảo mật cần thiết, và đã được chứng minh là hoạt động khá tốt cho đến nay. Tuy vậy, PoW tiêu thụ khá lớn năng lượng:
Đây là thuật toán phổ biến nhất được sử dụng bởi các loại tiền tệ như Bitcoin và Ethereum, mỗi loại có sự khác biệt riêng.
Trước khi bắt đầu thì sẽ có một khái niệm được thể hiện cụ thể dành cho những người chưa có kiến thức nhiều về kỹ thuật như sau:
Một “hash function” là một hàm bất kì có thể được sử dụng để ánh xạ dữ liệu có kích thước tuỳ ý đến dữ liệu có kích thước cố định.
Nếu “hash function” được bảo mật đúng cách, output của nó không thể phân biệt được sự ngẫu nhiên.
Example:
keccak256("hello") = 1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8
keccak256("hello1") = 57c65f1718e8297f4048beff2419e134656b7a856872b27ad77846e395f13ffe
Với thuật toán Proof-of-work, một node để có thể được bầu lên làm node tiếp theo có thể chọn khối kế tiếp được thêm vào blockchain, node đó phải thực hiện tìm ra một giải pháp cho một vấn đề về toán học cụ thể.
Và bài toán cụ thể đó là:
Cho một dữ liệu X, tìm một số n chẳng hạn như băm của n được nối vào kết quả X là một số nhỏ hơn Y.
Example - hash is a hypothetical hash function that has the outputs listed as below
Y = 10, X = 'test'
hash(X) = hash('test') = 0x0f = 15 > 10
hash(X+1) = hash('test1') = 0xff = 255 > 10
hash(X+2) = hash('test2') = 0x09 = 9 < 10 OK, Solved.
Bởi một hash function (hay còn gọi là hàm băm) được sử dụng có độ an toàn về mặt mã hoá. Cách duy nhất tìm ra đáp án cho bài toán đó là sử dụng kỹ thuật bruteforce (có nghĩa là thử mọi kết quả có thể xảy ra). Nói cách khác, ở một xác suất nào đó, một node phải có một sức mạnh tính toán hợp lí (hashpower). Những node đó còn gọi là “MINERS”.
Thuật toán trên khá thành công và dựa vào những đặc tính sau đây để phát triển:
- Rất khó để tìm ra đáp án để giải quyết bài toán.
- Nếu đáp án được đưa ra, chúng ta dễ dàng xác minh rằng kết quả đó là đúng
Bất cứ khi nào một block mới được khai thác, các miners sẽ nhận được một phần thưởng tương ứng với block đó, từ đó khuyến khích khai thác. Trong thuật toán PoW, các node khác sẽ xác minh tính hợp lệ của block mới được tạo ra bằng cách kiểm tra xem hàm băm của dữ liệu block có nhỏ hơn số được đặt ra trước hay không.
Do nguồn cung cấp năng lượng để thực hiện tính toán bị hạn chế nên các miners được khuyến khích không gian lận trong việc tính toán. Tấn công mạng vào blockchain sẽ tốn nhiều chi phí về phần cứng, năng lượng và lợi nhuận khai thác bị mất.
Hình ảnh minh hoạ cách bitcoin và bất kỳ loại coin nào khác sử dụng PoW để ngăn cản các hành vi mang tính rủi ro.
Proof-of-work cung cấp sự bảo mật cần thiết, và đã được chứng minh là hoạt động khá tốt cho đến nay. Tuy vậy, PoW tiêu thụ khá lớn năng lượng: