Blockchain công nghệ của tương lai

Blockchain là gì? Blockchain hoạt động như thế nào? Ưu, nhược điểm của blockchain?


Blockchain(chuỗi khối), tên ban đầu block chain là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian.Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch.Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được nó.





Blockchain được đảm bảo nhờ cách thiết kế sử dụng hệ thống tính toán phân cấp với khả năng chịu lỗi byzantine cao. Vì vậy sự đồng thuận phân cấp có thể đạt được nhờ Blockchain. Vì vậy Blockchain phù hợp để ghi lại những sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, danh tính và chứng minh nguồn gốc. Việc này có tiềm năng giúp xóa bỏ các hậu quả lớn khi dữ liệu bị thay đổi trong bối cảnh thương mại toàn cầu.

Blockchain đầu tiên được phát minh và thiết kế bới Satoshi Nakamoto vào năm 2008 và được hiện thực hóa vào năm sau đó như là một phần cốt lõi của Bitcoin, khi công nghệ blockchain đóng vai trò như là một cuốn sổ cái cho tất cả các giao dịch. Qua việc sử dụng mạng lưới ngang hàng và một hệ thống dữ liệu phân cấp, Bitcoin blockchain được quản lý tự động. Việc phát minh ra blockchain cho Bitcoin đã làm cho nó trở thành loại tiền tệ kỹ thuật số đầu tiên giải quyết được vấn đề double spending (chi tiêu gian lận khi 1 lượng tiền được dùng 2 lần). Công nghệ này của Bitcoin đã trở thành nguồn cảm hứng cho một loạt các ứng dụng khác.

Công nghệ blockchain tương đồng với cơ sở dữ liệu, chỉ khác ở việc tương tác với cơ sở dữ liệu. Để hiểu blockchain, cần nắm được năm định nghĩa sau: chuỗi khối (blockchain), cơ chế đồng thuận phân tán (decentralized consensus), tính toán tin cậy (trusted computing), hợp đồng thông minh (smart contracts) và bằng chứng công việc (proof of work). Mô hình tính toán này là nền tảng của việc tạo ra các ứng dụng phân tán.



Cơ chế đồng thuận phi tập trung (hay còn gọi là cơ chế đồng thuận phân quyền) (decentralized consensus)

Cơ chế này ngược lại với mô hình cổ điển về cơ chế đồng thuận tập trung – nghĩa là khi một cơ sở dữ liệu tập trung được dùng để quản lý việc xác thực giao dịch. Một sơ đồ phi tập trung chuyển giao quyền lực và sự tin tưởng cho một mạng lưới ảo phi tập trung và cho phép các nút của mạng lưới đó liên tục lưu trữ các giao dịch trên một khối (block) công cộng, tạo nên một chuỗi (chain) độc nhất: chuỗi khối (blockchain). Mỗi khối kế tiếp chứa một “hash” (một dấu tay độc nhất) của mã trước nó; vì thế, mã hóa (thông qua hàm hash) được sử dụng để bảo đảm tính xác thực của nguồn giao dịch và loại bỏ sự cần thiết phải có một trung gian tập trung. Sự kết hợp của mã hóa và công nghệ blockchain lại đảm bảo rằng sẽ không bao giờ một giao dịch được lưu trữ lại hai lần.




Chuỗi khối (The blockchain) và dịch vụ chuỗi khối

Một chuỗi khối giống như một nơi để lưu trữ dữ liệu bán công cộng trong một không gian chứa hẹp (khối). Bất cứ ai cũng có thể xác nhận việc bạn nhập thông tin vào vì khối chứa có chữ ký của bạn, nhưng chỉ có bạn (hoặc một chương trình) có thể thay đổi được dữ liệu của khối đó vì chỉ có bạn cầm khóa bí mật cho dữ liệu đó.

Vì thế chuỗi khối hoạt động gần giống như một cơ sở dữ liệu, ngoại trừ một phần của thông tin được lưu trữ - header của nó là công khai.

Dữ liệu lưu trữ có thể là một giá trị hoặc một số dư tiền mã hóa. Một chuỗi khối hoạt động như một hệ thống lưu chuyển giá trị thay thế mà không một quyền lực tập trung hay bên thứ ba nào có thể chen vào (vì quá trình mã hóa). Nó được dựa trên quyền công khai/ bí mật, là âm-dương của chuỗi khối: nhìn công khai nhưng kiểm soát bí mật.

Hợp đồng thông minh (smart contracts) và tài sản thông minh

Hợp đồng thông minh là các khối để xây dựng nên các ứng dụng phi tập trung. Một hợp đồng thông minh tương đương với một chương trình nhỏ mà bạn có thể tin tưởng với một đơn vị giá trị và quản lý giá trị đó. Ý tưởng cơ bản đằng sau hợp đồng thông minh là sự quản lý bằng khế ước đối với một giao dịch giữa hai bên liên quan hay nhiều hơn có thể được xác minh theo thứ tự thông qua chuỗi khối, thay vì thông qua một quan tòa tập trung. Sao phải dựa vào một quyền lực tập trung trong khi hai hay nhiều bên tham gia có thể đồng thuận lẫn nhau, và khi họ có thể đưa ra các điều khoản và thực thi sự đồng thuận bằng chương trình và các điều kiện, tiền sẽ được chuyển tự động khi hoàn thành một số dịch vụ.


Tính toán tin cậy (trusted computing)

Khi bạn kết hợp các nền tảng đằng sau chuỗi khối, cơ chế đồng thuận phi tập trung và hợp đồng thông minh, bạn sẽ nhận ra rằng chúng hỗ trợ cho việc truyền bá các nguồn lực và giao dịch trên một mặt phẳng theo một cách ngang hàng, và trong khi làm điều đó, chúng cho phép các máy tính tin tưởng lẫn nhau ở một mức độ sâu.

Vì vai trò của chuỗi khối là người xác nhận giao dịch minh bạch, mỗi khối ngang hàng có thể tiếp tục tin tưởng lẫn nhau tuân theo các quy luật tin tưởng nằm trên công nghệ.

Bằng chứng công việc (Proof of work)


Tại trung tâm của hoạt động chuỗi khối là khái niệm then chốt của “bằng chứng công việc”, một phần tích hợp tầm nhìn của Satoshi Nakamoto cho vai trò của chuỗi khối trong việc xác thực các giao dịch. Nó được biểu hiện là một rào cản lớn ngăn cản người dùng thay đổi dữ liệu trên chuỗi khối mà không sửa lại bằng chứng công việc.

Bằng chứng công việc là khối then chốt xây dựng nên blockchain vì nó không thể “sửa lại” và được bảo vệ thông qua sức mạnh của hàm hash mã hóa.

*****


Blockchain làm việc như thế nào?


Công nghệ blockchain có lẽ là phát minh tốt nhất từ chính Internet. Nó cho phép trao đổi giá trị mà không cần sự tin tưởng hoặc chứng cứ làm tin. Hãy tưởng tượng bạn và tôi đặt cược 50$ cho thời tiết ngày mai ở San Francisco. Tôi đặt cược trời sẽ nắng, bạn cược là mưa. Hôm nay chúng ta có ba tùy chọn để quản lý giao dịch này:
Chúng ta có thể tin tưởng lẫn nhau. Mưa hoặc nắng, người thua sẽ trả 50 đô la cho người chiến thắng. Nếu chúng ta là bạn, đây có thể là một cách hay để đặt cược. Tuy nhiên, dù là bạn bè hay người lạ thì vẫn không thể dễ dàng trả tiền cho người kia.
Chúng ta có thể biến tiền cược thành một hợp đồng. Với một hợp đồng tại chỗ, cả hai bên sẽ dễ phải trả tiền hơn, tuy nhiên, nếu một trong hai người quyết định không trả, người chiến thắng sẽ phải trả thêm tiền để trang trải chi phí pháp lý và bản án có thể mất một thời gian dài. Đặc biệt với một lượng tiền mặt nhỏ, điều này dường như không phải là cách tối ưu để quản lý giao dịch.
Chúng ta có thể nhờ đến một bên thứ ba trung lập. Mỗi người trong chúng ta đưa 50 đô la cho một người thứ ba, cô ấy sẽ đưa tổng số tiền cho người chiến thắng. Nhưng, cô ấy cũng có thể bỏ trốn với tất cả số tiền. Vì vậy, chúng ta sẽ chọn một trong hai lựa chọn đầu tiên: tin tưởng hoặc hợp đồng.

Cả sự tin tưởng và hợp đồng đều không phải là giải pháp tối ưu. Chúng ta không thể tin tưởng vào người lạ và thực thi hợp đồng đòi hỏi thời gian và tiền bạc. Công nghệ blockchain là thú vị vì nó cung cấp cho chúng ta lựa chọn thứ ba, an toàn, nhanh chóng và rẻ tiền.

Blockchain cho phép viết một vài dòng code, chương trình chạy trên blockchain, mà cả hai chúng ta gửi 50 đô la vào đó. Chương trình này sẽ giữ 100 đô la an toàn và kiểm tra thời tiết ngày mai một cách tự động trên nhiều nguồn dữ liệu. Nắng hoặc mưa, nó sẽ tự động chuyển toàn bộ số tiền cho người chiến thắng. Mỗi bên có thể kiểm tra hợp đồng logic, và vì nó đang chạy trên blockchain nên nó không thể thay đổi hoặc ngừng lại. Nỗ lực này có thể là quá cao đối với một giao dịch 50 đô la, nhưng hãy tưởng tượng khi bán nhà hoặc công ty.

Mục tiêu của phần này là để giải thích cách blockchain hoạt động mà không thảo luận về các chi tiết kỹ thuật sâu, nhưng đủ để bạn có một ý tưởng chung về logic và cơ chế cơ bản.

Ứng dụng được biết đến và thảo luận nhiều nhất của công nghệ blockchain chính là Bitcoin. Một loại tiền tệ số có thể được sử dụng để trao đổi sản phẩm và dịch vụ, giống như đồng đô la Mỹ (USD), Euro (EUR), đồng (Việt Nam) và các loại tiền tệ quốc gia khác. Hãy sử dụng ứng dụng đầu tiên của công nghệ blockchain này để tìm hiểu cách hoạt động của nó.

Bitcoin là gì?

Một Bitcoin là một đơn vị tiền tệ kỹ thuật số của Bitcoin, giống như đô la, bản thân nó không có giá trị. Nó có giá trị vì chúng ta đồng ý trao đổi hàng hóa, dịch vụ để đổi lấy một lượng tiền lớn hơn dưới dự kiểm soát của chúng ta và chúng ta tin rằng người khác cũng sẽ làm như vậy.



Để theo dõi lượng Bitcoin mỗi người trong chúng ta sở hữu, blockchain sử dụng một sổ cái - file kỹ thuật số - theo dõi tất cả các giao dịch của Bitcoin.


Tập tin kỹ thuật số của Bitcoin đã được đơn giản hoá

File này không được lưu trữ trên máy chủ tập trung, giống như ngân hàng hay trung tâm dữ liệu. Nó được phân tán trên toàn thế giới thông qua mạng máy tính, vừa lưu trữ dữ liệu, vừa thực hiện tính toán. Mỗi máy tính đại diện cho một nút của mạng blockchain và có một bản sao của file sổ cái.





Nếu David muốn gửi Bitcoin cho Sandra, anh ta sẽ phát một tin nhắn tới mạng nói rằng số lượng Bitcoin trong tài khoản của anh ta sẽ giảm xuống 5 BTC, và số tiền của tài khoản Sandra sẽ tăng lên theo cùng số lượng. Mỗi nút trong mạng sẽ nhận được thông báo và áp dụng giao dịch yêu cầu vào bản sao của sổ cái, do đó cập nhật số dư tài khoản.



Thực tế là sổ cái được duy trì bởi một nhóm các máy tính được kết nối chứ không phải là một thực thể trung lập như ngân hàng:

Trong hệ thống ngân hàng, chúng ta chỉ biết các giao dịch và số dư tài khoản của riêng mình, trên blockchain mọi người có thể thấy mọi giao dịch khác của người khác.
Trong khi bạn có thể tin tưởng vào ngân hàng của mình, mạng Bitcoin sẽ được phân phối và nếu có vấn đề gì đó không có sự trợ giúp để gọi hoặc bất cứ ai để kiện.
Hệ thống blockchain được thiết kế theo cách mà không cần sự tin tưởng, độ an toàn và độ tin cậy thu được thông qua các chức năng toán học đặc biệt và code.

Để có thể thực hiện các giao dịch trên blockchain, bạn cần một ví, một chương trình cho phép bạn lưu trữ và trao đổi Bitcoin. Vì chỉ có bạn mới có thể chi tiêu được Bitcoin của mình, mỗi chiếc ví được bảo vệ bởi một phương pháp mật mã đặc biệt, sử dụng một cặp khóa riêng biệt khác nhau nhưng có kết nối: một khoá riêng tư (private) và công khai (public).

Nếu một thông điệp được mã hoá bằng khóa công khai cụ thể, chỉ chủ nhân của khóa riêng tư đã ghép nối mới có thể giải mã và đọc tin nhắn. Mặt khác, nếu bạn mã hóa tin nhắn bằng khóa cá nhân của bạn, chỉ có thể sử dụng khóa công khai được ghép nối để giải mã nó. Khi David muốn gửi Bitcoin, anh ta cần phát một tin nhắn được mã hóa bằng khoá riêng của ví của anh ta, vì vậy anh ta và chỉ có anh ta mới có thể sử dụng Bitcoin mà anh ta sở hữu, vì David là người duy nhất biết chìa khóa riêng của anh ta cần để mở ví của mình. Mỗi nút trong mạng có thể kiểm tra chéo yêu cầu giao dịch đến từ David bằng cách giải mã thông báo yêu cầu giao dịch với khóa công khai của ví của anh ta.

Khi mã hóa yêu cầu giao dịch với khóa riêng tư của ví của bạn, bạn sẽ tạo ra một chữ ký số được sử dụng bởi các máy tính trong mạng blockchain để kiểm tra lại nguồn và tính xác thực của giao dịch. Chữ ký số là một chuỗi văn bản, là kết quả của việc kết hợp yêu cầu giao dịch và khóa riêng tư của bạn, vì vậy nó không thể được sử dụng cho các giao dịch khác. Nếu bạn thay đổi một ký tự trong thông báo yêu cầu giao dịch, chữ ký số sẽ thay đổi, do đó không kẻ tấn công tiềm ẩn nào có thể thay đổi yêu cầu giao dịch của bạn hoặc thay đổi lượng Bitcoin bạn đang gửi.



Mã hoá giao dịch chữ ký số đơn giản hóa

Để gửi Bitcoin, bạn cần phải chứng minh rằng mình sở hữu khóa riêng của một ví cụ thể, vì cần sử dụng nó để mã hóa thông báo yêu cầu giao dịch. Lưu ý rằng, bạn chỉ phát thông báo sau khi nó đã được mã hóa, nên không bao giờ phải tiết lộ khóa riêng.

Mỗi nút trong blockchain đang giữ một bản sao của sổ cái. Vì vậy, làm thế nào một nút biết số dư tài khoản của bạn là bao nhiêu? Hệ thống blockchain không theo dõi các số dư tài khoản, nó chỉ ghi lại từng giao dịch được yêu cầu. Sổ sách trên thực tế không theo dõi số dư, nó chỉ theo dõi mọi giao dịch được phát đi trong mạng Bitcoin. Để biết số dư trong ví của bạn, bạn cần phải phân tích và xác minh tất cả các giao dịch đã từng diễn ra trên toàn bộ mạng kết nối với ví của mình.



Sổ cái Bitcoin

Xác minh số dư này được thực hiện nhờ liên kết đến các giao dịch trước đó. Để gửi 10 Bitcoin cho John, Mary phải tạo yêu cầu giao dịch bao gồm các liên kết tới các giao dịch đến (số tiền nhận được) trước đó có tổng số dư bằng hoặc vượt quá 10 Bitcoin. Các liên kết này được gọi là đầu vào, các nút trong mạng sẽ xác minh rằng tổng số tiền của các giao dịch này bằng hoặc vượt quá 10 Bitcoin và các đầu vào này chưa được chi tiêu. Trên thực tế, mỗi lần bạn tham chiếu các đầu vào trong một giao dịch được xem là không hợp lệ trong bất kỳ giao dịch nào trong tương lai. Tất cả được thực hiện tự động trong ví của Mary và kiểm tra lại bởi các nút mạng Bitcoin, cô ấy chỉ gửi một giao dịch 10 BTC đến ví của John sử dụng khóa công khai của anh ấy.








Cấu trúc yêu cầu giao dịch Bitcoin

Vậy, làm thế nào hệ thống có thể tin tưởng giao dịch đầu vào và xem xét chúng có giá trị? Nó kiểm tra tất cả các giao dịch trước đó có tương quan với ví bạn sử dụng để gửi Bitcoin thông qua các tham chiếu và đầu vào. Để đơn giản hóa và đẩy nhanh quá trình xác minh, một bản ghi đặc biệt về các giao dịch không được sử dụng sẽ được giữ bởi các nút mạng. Nhờ kiểm tra bảo mật này, bạn không thể tiêu gấp đôi số Bitcoin nhận được.

Tất cả các code để thực hiện giao dịch trên mạng Bitcoin là mã nguồn mở, điều này có nghĩa là bất cứ ai có máy tính xách tay và một kết nối Internet đều có thể thực hiện giao dịch. Tuy nhiên, nếu có một lỗi trong code được sử dụng để phát thông báo yêu cầu giao dịch, Bitcoin liên quan sẽ bị mất vĩnh viễn. Hãy nhớ rằng vì mạng được phân phối, nên không có dịch vụ hỗ trợ khách hàng nào để gọi cũng như bất cứ ai có thể giúp bạn khôi phục lại giao dịch bị mất hoặc mật khẩu ví bạn đã quên. Vì lý do này, nếu bạn quan tâm đến giao dịch trên mạng Bitcoin, bạn nên sử dụng mã nguồn mở và phiên bản chính thức của phần mềm ví Bitcoin (chẳng hạn như Bitcoin Core) và để lưu mật khẩu của ví của bạn hoặc khóa riêng tư vào kho lưu trữ rất an toàn.

Những đặc điểm chính của BlockChain


Một cơ sở dữ liệu phân tán

Hãy tưởng tượng một bảng tính được nhân đôi hàng ngàn lần thông qua mạng lưới máy tính, mạng lưới này được thiết kế để cập nhật thường xuyên bảng tính đó là bạn đã có thể hiểu được cơ bản về blockchain.

Thông tin được tổ chức trên một blockchain tồn tại dưới dạng cơ sở dữ liệu được chia sẻ và hòa hợp liên tục. Đây là cách để sử dụng mạng với những lợi ích rõ ràng. Cơ sở dữ liệu blockchain không được lưu trữ ở duy nhất một vị trí nào, nghĩa là các bản ghi được lưu trữ một cách công khai, dễ kiểm chứng. Không có một phiên bản tập trung nào của cơ sở dữ liệu này tồn tại, nên hacker cũng chẳng có cơ hội nào để tấn công nó. Blockchain được lưu trữ bởi hàng triệu máy tính cùng lúc, dữ liệu của nó có thể truy cập bởi bất cứ ai trên Internet.

Blockchain giống như Google Docs

Cách chia sẻ tài liệu thông thường khi cộng tác là gửi tài liệu Microsoft Word cho một người khác qua email và yêu cầu họ sửa nó. Vấn đề trong trường hợp này là bạn cần phải đợi cho đến khi nhận được một bản sao lưu được gửi trở lại thì mới có thể xem hoặc thực hiện những thay đổi khác, vì đã bị khóa quyền chỉnh sửa cho đến khi người cộng tác của bạn hoàn tất việc chỉnh sửa. Đó là cách cơ sở dữ liệu hiện tại đang hoạt động. Hai chủ sở hữu không thể cùng chỉnh sửa một bản ghi cùng một lúc. Đó là cách các ngân hàng duy trì số dư và số chuyển khoản, họ nhanh chóng khóa quyền truy cập (hoặc giảm số dư) trong khi thực hiện chuyển khoản, rồi sau đó cập nhật tài khoản và mở lại quyền truy cập (hoặc cập nhật lại). Với Google Docs thì khác, cả hai bên đều có quyền truy cập đồng thời vào cùng một tài liệu và phiên bản duy nhất của tài liệu đó luôn hiển thị cho cả hai. Nó giống như sổ cái được chia sẻ, nhưng nó là một tài liệu được chia sẻ. Phần phân tán chỉ hoạt động khi chia sẻ liên quan đến một số người.

Lược dịch từ ý kiến của William Mougayar, cố vấn liên doanh, nhà kinh doanh 4x, nhà tiếp thị, chuyên gia chiến lược và chuyên gia blockchain.




Tính bền vững của blockchain

Công nghệ blockchain giống như Internet vì nó có một sức mạnh được tích hợp sẵn. Bằng cách lưu trữ những khối thông tin giống nhau trên mạng lưới của mình, blockchain không thể:
   Bị kiểm soát bởi bất kỳ một thực thể nào
   Không có điểm thiếu sót, lỗi duy nhất nào.

Bitcoin được phát hành vào năm 2008, kể từ đó, blockchain Bitcoin được vận hành, hoạt động mà không có sự gián đoạn đáng kể nào. Đến này, bất kỳ vấn đề nào liên quan đến Bitcoin là do hack hoặc quản lý kém. Nói cách khác, những vấn đề này đến từ ý định xấu và lỗi của con người, không phải là những sai sót tự thân của Bitcoin.

Internet đã chứng minh được độ bền trong gần 30 năm. Đây là bản ghi theo dõi tốt cho công nghệ blockchain khi nó tiếp tục được phát triển.

Minh bạch và không thể bị phá vỡ

Mạng lưới blockchain tồn tại trong trạng thái của sự thỏa thuận, tự động kiểm tra 10 phút một lần. Một loại hệ sinh thái tự kiểm soát giá trị kỹ thuật số, mạng lưới sẽ điều hòa mọi giao dịch xảy ra trong khoảng 10 phút. Mỗi nhóm giao dịch này được gọi là khối. Hai đặc tính quan trong được rút ra từ đây:
Minh bạch: Dữ liệu được nhúng trong mạng như một khối, công khai.
Nó không bị thể bị hỏng: Khi thay đổi bất kỳ đơn vị thông tin nào trên blockchain có nghĩa là sử dụng một lượng lớn máy tính để ghi đè lên toàn bộ mạng.

Về lý thuyết, điều này có thể xảy ra. Trong thực tế, nó không xảy ra. Ví dụ, việc kiểm soát hệ thống để chiếm lấy Bitcoin sẽ khiến giá trị của nó bị hủy hoại.

Một mạng lưới các nút

Một mạng lưới các nút tính toán tạo thành blockchain. Nút ở đây là máy tính được kết nối với mạng blockchain, sử dụng client để thực hiện nhiệm vụ xác nhận và chuyển tiếp các giao dịch. Nút sẽ nhận được một bản sao của blockchain, được tải tự động khi tham gia mạng lưới blockchain.

Các nút này cùng nhau tạo ra một mạng lưới cấp 2 mạnh mẽ, một góc nhìn hoàn toàn khác về cách mà Internet có thể hoạt động. Mỗi nút là một "quản trị viên" của mạng blockchain và tự động tham gia vào mạng, động lực cho việc tham gia này chính là cơ hội giành được Bitcoin.

Nút còn được gọi là đào Bitcoin, nhưng thuật ngữ này có chút nhầm lẫn. Trong thực tế, mỗi người đang cạnh tranh để giành Bitcoin bằng cách giải quyết những câu đố. Bitcoin là "lẽ sống" của blockchain ngay từ khi nó được hình thành. Bitcoin mới chỉ được công nhận như một phần rất nhỏ trong số những tiềm năng của công nghệ blockchain.

Có khoảng 700 loại tiền kỹ thuật số tương tự như Bitcoin, ngoài ra còn có rất nhiều những biến thể của khái niệm blockchain ban đầu hiện đang hoạt động hoặc đang được phát triển.

Ý tưởng về phân quyền

Theo thiết kế, blockchain là một công nghệ được phân quyền. Bất cứ điều gì xảy ra trên đó đều là chức năng của mạng. Một số gợi ý quan trọng bắt nguồn từ điều này. Nhờ tạo ra cách mới để xác nhận giao dịch mà những khía cạnh của thương mại truyền thống có thể trở nên không cần thiết. Ví dụ như những giao dịch trên thị trường chứng khoán có thể thực hiện cùng lúc trên blockchain, hoặc có thể lưu trữ tài liệu giống như sổ đỏ, hoàn toàn công khai. Và sự phân quyền đã trở thành hiện thực.

Mạng máy tính toàn cầu sử dụng công nghệ blockchain để cùng quản lý cơ sở dữ liệu, ghi lại các giao dịch của Bitcoin. Tức là, Bitcoin được quản lý bởi mạng của nó và không một ai là trung tâm cả. Phân quyền có nghĩa là mạng lưới hoạt động dựa trên cơ sở người dùng hay P2P. Các hình thức hợp tác tập thể có thể thực hiện chỉ mới bắt đầu được nghiên cứu.

Tăng cường bảo mật

Nhờ lưu trữ dữ liệu trên mạng của mình, blockchain loại bỏ những rủi ro đi kèm với dữ liệu được tổ chức tập trung. Mạng của nó không có những điểm dễ bị tổn thương. Trong khi đó, vấn đề bảo mật trên Internet thì ngày càng trở nên phức tạp. Chúng ta đều dựa vào hệ thống username/password để bảo vệ danh tính và tài sản của mình trên mạng, nhưng hệ thống này vẫn có nhiều khả năng bị phá vỡ. Phương pháp bảo mật của blockchain sử dụng công nghệ mã hóa với cặp khóa public/private. Khóa public (một chuỗi dài các số ngẫu nhiên) là địa chỉ của người dùng trên blockchain. Bitcoin gửi qua mạng sẽ được ghi nhận thuộc về địa chỉ đó. Khóa private giống như mật khẩu, cho phép chủ sở hữu truy cập vào Bitcoin hoặc các tài sản kỹ thuật số khác. Lưu trữ dữ liệu trên blockchain và nó sẽ không bị hư hỏng. Điều này là sự thật, mặc dù bảo vệ tài sản kỹ thuật số của bạn sẽ yêu cầu bảo mật khóa private bằng cách in ra, tạo ví kỹ thuật số để đựng giống như ví đựng tiền giấy.

Blockchain có thể dùng ở đâu?

Danh sách này được lấy từ bài viết "What is Blockchain Technology? A Step-by-Step Guide For Beginners" trên blockgeeks.com, mình đã lược bớt một số vì quá dài và khó hiểu, dưới đây là những gì còn lại:

Hợp đồng thông minh

Các sổ cái được phân chia cho phép mã hóa các hợp đồng đơn giản, sẽ được thực thi khi những điều kiện nhất định được thỏa mãn. Ethereum là một dự án blockchain mã nguồn mở, được xây dựng đặc biệt để đáp ứng yêu cầu này. Tuy nhiên, trong giai đoạn đầu phát triển, Ethereum có tiềm năng để tận dụng lợi thế của blockchain trên một quy mô lớn hơn như thế rất nhiều.

Ở cấp độ phát triển hiện tại của công nghệ, hợp đồng thông minh có thể được lập trình để thực hiện những chức năng đơn giản. Ví dụ, một giao dịch phát sinh có thể được thanh toán khi công cụ tài chính đáp ứng một số tiêu chuẩn, với việc sử dụng công nghệ blockchain và Bitcoin cho phép thanh toán tự động, không cần sự tham gia của con người hay bên trung gian làm chứng.

Kinh tế chia sẻ

Với những công ty như Uber, AirBnBm nền kinh tế chia sẻ đã chứng minh được những thành công ban đầu. Tuy nhiên, ở thời điểm hiện tại, người dùng muốn thuê dịch vụ chia sẻ xe phải dựa vào một trung gian là Uber. Bằng cách cho phép thanh toán ngang hàng, blockchain mở ra một cánh cửa mới để tạo sự tương tác trực tiếp giữa các bên, kết quả sẽ dẫn tới kinh tế chia sẻ được thực sự phân quyền.

Ví dụ, OpenBazaar sử dụng blockchain để tạo eBay ngang hàng. Tải ứng dụng về máy tính, bạn có thể giao dịch với nhà cung cấp OpenBazaar mà không phải trả lệ phí giao dịch. Phong cách "không có quy tắc" của giao thức nghĩa là danh tiếng cá nhân trong tương tác kinh doanh còn quan trọng hơn cả bản thân tương tác đó trên eBay. 

Mở rộng thị trường gọi vốn

Các sáng kiến thu hút vốn đầu tư như Kickstarter và Gofundme đang "dọn đường" cho nền kinh tế ngang hàng mới nổi này. Những trang web kể trên đã cho thấy mọi người muốn có tiếng nói trực tiếp trong việc phát triển sản phẩm. Blockchain đưa công việc này lên một cấp độ mới nhờ có khả năng tạo ra nguồn vốn mạo hiểm nhiều hơn cho các startup.

Năm 2016, đã có một minh chứng cho điều này. DAO (Decentralized Autonomous Organization), dựa trên Ethereum, đã gây vốn được 200 triệu USD chỉ trong vòng 2 tháng. Những người tham gia mua DAO được vote trên một hợp đồng thông minh về đầu tư mạo hiểm (quyền vote dựa trên số DAO họ đang nắm giữ). Số tiền mà dự án thu được đã chứng minh, dự án được đưa ra không cần thẩm định rủi ro. Như vậy, có thể thấy rằng, blockchain có tiềm năng để mở ra một mô hình mới cho hợp tác kinh tế.



Quản trị

Bằng cách tạo ra những kết quả minh bạch và có thể truy cập công khai, công nghệ cơ sở dữ liệu phân tán có thể mang lại sự minh bạch đầy đủ cho cuộc bầu cử hay bất cứ hình thức thăm dò nào khác. Những hợp đồng thông minh dựa trên Ethereum sẽ giúp tự động hóa toàn bộ quá trình.

Ứng dụng như Boardroom, cho phép tổ chức ra quyết định trên blockchain, nhờ đó giúp quá trình quản trị công ty trở nên minh bạch, kiểm chứng được tài sản số, sự công bằng hay những thông tin nội bộ.

Kiểm tra chuỗi cung ứng

Người tiêu dùng ngày càng muốn biết rằng có bao nhiêu phần trăm sự thật trong những tuyên bố về tiêu chuẩn sản phẩm của các công ty. Blockchain cung cấp cách thức xác nhận dễ dàng rằng những sản phẩm chúng ta mua là chính hãng. Tính minh bạch đi kèm với dấu thời gian dựa trên blockchain của ngày tháng, vị trí - ví dụ, trên viên kim cương, sẽ tương ứng với số sản phẩm.

Ở Anh có thể kiểm tra nguồn gốc xuất xứ của những mặt hàng tiêu dùng thông qua chuỗi cung ứng. Sử dụng blockchain Ethereum, dự án thí điểm kiểm tra chất lượng đảm bảo rằng cá được bán trong các nhà hàng Sushi của Nhật đã được các nhà cung cấp cá ở Indonesia khai thác đúng cách. 

Lưu trữ file

Việc lưu trữ phân quyền trên Internet mang lại những lợi ích rõ rệt. Phân phối dữ liệu trong toàn mạng giúp bảo về các file không bị tấn công hoặc bị mất.

Inter Planetary File System (IPFS) giúp dễ dàng khái niệm hóa cách thức một trang web phân tán có thể hoạt động. Tương tự như cách bittorrent di chuyển dữ liệu trên Internet, IPFS sẽ loại bỏ nhu cầu về các mối quan hệ giữa máy chủ, máy khách. Một mạng Internet được tạo thành từ những trang web phân tán hoàn toàn có khả năng tăng tốc độ truyền file và thời gian stream. Sự cải tiến này không chỉ thuận tiện mà còn là một nâng cấp cần thiết cho những hệ thống phân phối nội dung trên web hiện đang quá tải.

Dự đoán thị trường

Sự chính xác của một sự kiện sẽ cao hơn khi có càng nhiều dự đoán về xác suất của sự kiện đó, điều này đã được chứng minh. Những sai lệch chưa được khảo sát có thể dẫn đến những phán đoán sai lầm. Việc lấy ý kiến trung bình từ những dự đoán sẽ giúp triệt tiêu bớt những sai lệch đó. Đã có những ứng dụng đầu tiên áp dụng blockchain trong việc dự đoán thị trường. Ví dụ như Augur, ứng dụng dự đoán thị trường còn đang trong giai đoạn phát triển. Nó đưa ra lời đề nghị chia sẻ về kết quả của các sự kiện trong thế giới thực. Người tham gia có thể kiếm tiền bằng cách mua vào những dự đoán chính xác. Càng nhiều cổ phiếu được mua vào theo dự đoán đúng, số tiền nhận được càng cao. Với một khoản đầu tư nhỏ (ít hơn 1$), bất kỳ ai cũng có thể đặt câu hỏi, tạo một thị trường dựa trên kết quả dự đoán và thu được một nửa tổng số phí giao dịch mà thị trường tạo ra.

Bảo vệ quyền sở hữu trí tuệ

Như bạn đã biết, thông tin kỹ thuật số có thể bị sao chép vô hạn và phân phối rộng rãi nhờ Internet. Điều này đã giúp người dùng web trên toàn cầu có một mỏ vàng nội dung miễn phí. Tuy nhiên, chủ sở hữu bản quyền thì không may mắn như vậy, họ mất quyền kiểm soát sở hữu trí tuệ và số tiền lẽ ra phải thuộc về họ từ quyền đó. Hợp đồng thông minh có thể bảo vệ bản quyền và tự động hóa việc bán các tác phẩm trực tuyến, loại bỏ nguy cơ sao chép, phân phối lại.

Mycelia sử dụng blockchain để tạo một hệ thống phân phối nhạc ngang hàng. Được sáng lập bởi ca sĩ kiêm nhạc sĩ người Anh, Imogen Heap, Mycelia cho phép nhạc sĩ bán bài hát trực tiếp cho khán giả cũng như những mẫu giấy phép cho người sản xuất và chia lợi nhuận cho nhạc sĩ, ca sĩ, tất cả những chức năng này được thực hiện tự động hóa bằng những hợp đồng thông minh. 

Internet of Things (IoT)

Nếu chưa biết về Internet of Things, bạn đọc tại đây nhé (Internet of Things - IoT hay Mạng lưới vạn vật kết nối là gì?). Hiểu nôm na, IoT là việc quản lý mạng lưới kiểm soát của một số loại thiết bị điện tử, ví dụ như nhiệt độ không khí trong nhà kho. Hợp đồng thông minh có thể tự động hóa việc quản lý hệ thống này từ xa. Một sự kết hợp của phần mềm, cảm biến và mạng sẽ tạo điều kiện trao đổi dữ liệu giữa các đối tượng và cơ chế vận hành. Kết quả làm tăng hiệu quả làm việc của hệ thống và cắt giảm chi phí theo dõi.

Các nhà sản xuất lớn nhất trong lĩnh vực sản xuất, công nghệ và viễn thông đều đang tranh giành ngôi vị thống trị của IoT. Hãy nghĩ đến Samsung, IBM, AT&T. Việc mở rộng cơ sở hạ tầng hiện có được kiểm soát bởi con người bằng ứng dụng IoT sẽ thực hiện nhiệm vụ từ dự đoán các bộ phận cơ khí đến thống kê dữ liệu và quản lý hệ thống tự động trên quy mô lớn. 

Quản lý danh tính

Nhu cầu xác thực danh tính trên web ngày càng trở nên bức thiết, nhất là đối với những giao dịch tài chính trực tuyến. Những giải pháp hiện có để phục vụ nhu cầu này chưa thực sự hoàn hảo. Với blockchain, chúng ta sẽ có những phương pháp nâng cao để chứng minh mình là ai, cùng với khả năng số hóa tài liệu cá nhân. Như trên đã nói, trong nền kinh tế chia sẻ hay các giao dịch kinh doanh, một danh tính tốt là vô cùng quan trọng.

Phát triển các tiêu chuẩn nhận diện kỹ thuật số là một quá trình rất phức tạp. Bên cạnh các thách thức về kỹ thuật, một giải pháp nhận diện trực tuyến phổ quát đòi hỏi sự hợp tác giữa các cá nhân và chính phủ. Thêm vào đó là cần phải điều hướng hệ thống pháp luật ở các quốc gia khác nhau và vấn đề trở nên khó khăn theo cấp số nhân. Thương mại điện tử trên Internet hiện tại dựa trên chứng nhận SSL (khóa màu xanh lá cây nhỏ trên trình duyệt) cho những giao dịch bảo mật trên web. Nếu blockchain được áp dụng thì mọi việc sẽ trở nên dễ dàng hơn rất nhiều.

AML và KYC

Blockchain có tiềm năng mạnh mẽ trong vấn đề Anti-money laundering (AML) - chống rửa tiền và know your customer (KYC) - biết khách hàng của bạn. Hiện tại, các tổ chức tài chính phải thực hiện quy trình nhiều bước, đòi hỏi nhiều lao động để tìm kiếm khách hàng mới. Chi phí cho KYC có thể giảm xuống thông qua việc xác minh khách hàng đồng thời nâng cao hiệu quả giám sát và phân tích.

Polycoin, một startup có AML và KYC, liên quan đến việc phân tích các giao dịch. Những giao dịch được xác định là đáng ngờ được chuyển tiếp tới các bộ phận liên quan. Tradle, một startup khác đang phát triển ứng dụng có tên Trust in Motion (TiM). Được mô tả như "Instagram cho KYC", TiM cho phép khách hàng chụp ảnh nhanh các tài liệu chính (hộ chiếu, hóa đơn điện nước, v.v...). Sau khi được ngân hàng xác minh, dữ liệu này sẽ được lưu trữ như mật mã trên blockchain.

Giao dịch chứng khoán

Khả năng của blockchain trong thị trường chứng khoán đang được kiểm tra mạnh mẽ. Khi thực hiện ngang hàng, xác nhận giao dịch trở nên gần như tức thời. Nhờ vậy, những khâu trung gian như kiểm toán viên, người lưu ký,... có thể được loại bỏ.
Hệ thống lưới vi mô lân cận (Neighbourhood Microgrid)

Công nghệ blockchain cho phép mua và bán năng lượng tái tạo, được tạo ra bởi các lưới vi mô lân cận. Khi các tấm pin mặt trời làm cho năng lượng dư thừa, những hợp đồng thông minh dựa trên Ethereum sẽ tự động phân phối lại nó. 

Những bất lợi khi sử dụng Blockchain

Blockchain không phải là một phép màu hay toàn là những điều quyến rũ, nó cũng có những trở ngại nhất định mà trong tương lai gần chúng ta cần phải khắc phục. Những quảng cáo hoặc lời thổi phồng xung quanh blockchain có thể khiến nhiều người mù quáng, không nhận ra sự thật rất rõ ràng rằng, blockchain tồn tại những bất lợi khi sử dụng khiến các ngành công nghiệp phải tìm cách giảm thiểu nó trước khi có thể áp dụng trên quy mô lớn.

Rất tốn điện

Vì mỗi blockchain đã sao chép chính mình đến mọi nút trên blockchain nên đã tạo ra một số lượng lớn những sự dư thừa. Mỗi lần giao dịch Bitcoin được thực hiện, nó được xác nhận nhiều lần vì có nhiều nút trên mạng. Quy trình này sử dụng rất nhiều điện. Các blockchain tư nhân có thể không bị ảnh hưởng nhiều vì họ có thể giới hạn các blockchain đến một số ít máy tính. Tuy nhiên, nếu là ngân hàng, phải xử lý hàng nghìn giao dịch mỗi phút trên toàn cầu, thì đây sẽ là vấn đề lớn.

Tốn không gian lưu trữ

Ngay bây giờ, để vận hành một nút trên blockchain Bitcoin, bạn phải tải xuống 60GB dữ liệu. Sẽ như thế nào nếu dữ liệu là 1 Terabyte? Nếu thị trường Bitcoin phát triển mạnh, sẽ có nhiều blockchain với dung lượng hàng Terabyte xuất hiện trong thực tế. Khi đó, chỉ có các trang trại máy chủ và những người thực sự quan tâm đến việc thương mại hóa tiền kỹ thuật số quy mô lớn, mới có thể vận hành toàn bộ các nút. Điều này sẽ tạo ra một mạng lưới tập trung, vốn được coi là một sự phân quyền kỳ lạ.

Tính không thể bị phá vỡ cũng có nhược điểm của nó

Giả sử bạn có một chiếc ví trên mạng, bạn bị mất chìa khóa chứng thực để mở ví đó. Không có liên kết để reset mật khẩu, không có hotline hỗ trợ. Bạn mất toàn bộ số tiền trong ví. Không có sự thu hồi. Bạn mất trắng.

Nếu biết cách xử lý dữ liệu một cách có trách nhiệm, bạn sẽ không gặp phải điều giả sử ở trên. Tiền của bạn vẫn sẽ ở trong túi của bạn, và tất nhiên, bạn có toàn quyền kiểm soát nó. Nhưng quyền lực luôn đi đôi với trách nhiệm, điều mà không phải ai cũng hiểu được. Những người như thế chính là nguyên nhân khiến cho 1/4 số Bitcoin trên trái đất biến mất mãi mãi.

Nếu bạn đặt một thứ gì đó lên blockchain, bạn phải thật chắc chắn là mình sẽ không hối hận. Vì giao dịch một khi được thực hiện sẽ không thể đảo ngược, hay làm lại. Nó sẽ ở trên blockchain mãi mãi, theo đúng nghĩa đen luôn.

Blockchain và Internet

Ngày nay chúng ta có thể phân chia thời đại công nghệ hiện đại thành hai giai đoạn đặc biệt: Trước Internet và sau Internet, đây là cách mà World Wide Web bị phá vỡ. Sự bùng nổ Internet đã làm thay đổi cách chúng ta thực hiện những giao dịch, liên lạc, chia sẻ thông tin, quảng bá kinh doanh, giải trí, nghiên cứu,...

Bạn sẽ nghĩ rằng tất cả mọi thứ chúng ta đang làm bây giờ gần như là phải kết nối Internet. Vâng, nhiều chuyên gia thích suy nghĩ rằng công nghệ blockchain có tiềm năng để tạo ra một cuộc cách mạng giống như Internet đã từng.

Dưới đây là một số khía cạnh của blockchain mà rất giống với Internet vào những năm trước 2000:
Các chuyên gia đồng ý và hướng chúng ta chú ý đến blockchain, rằng nó có tiềm năng để thay đổi hầu hết mọi thứ.
Những công ty lớn đang đầu tư vào blockchain và thử nghiệm nó cho những trường hợp sử dụng khác nhau, với những phản hồi rất tích cực về khả năng sử dụng của nó.
Người ta đầu tư vào hầu hết các dự án liên quan đến blockchain. Ví dụ, Bioptix, một công ty niêm yết trên NASDAQ đã đổi tên thành Riot Blockchain và ngay lập tức giá cổ phiếu đã tăng lên 20%. Ở Anh, một công ty đầu tư đã đổi tên từ On-line Plc thành On-line Blockchain và giá cổ phiếu của nó đã có lúc nhảy lên đến 394%.
Không có cơ sở hạ tầng blockchain ở cấp độ toàn cầu hay quốc tế, nhưng sự thu hút và số lượng người lao vào thí điểm thì rất lớn.
Mọi người không thực sự hiểu nó là gì, nhưng họ chắc chắn nó có thể thay đổi cuộc sống của chúng ta.

Liệu lịch sử có lặp lại?


Một số chuyên gia đã đưa ra danh sách dài những điểm tương đồng giữa hai thời đại và hai hiện tượng, một số chuyên gia lại cảnh báo rằng blockchain có thể sẽ có kết cục giống như bong bóng dot com vào năm 1999, sau đó mới đạt đến thời điểm chín muồi khi nó được chấp nhận rộng rãi. Điều này có nghĩa rằng, blockchain tạo điều kiện cho những tài sản bị định giá quá cao, có thể gây ra sự điều chỉnh thị trường trong tương lai, làm ảnh hưởng đến nhiều công ty và toàn bộ ngành.

Chúng ta không biết trước tương lai sẽ như thế nào, nhưng bất chấp sự thay đổi, khủng hoảng từ năm 1999, Internet đã không biến mất, nó vẫn tiếp tục con đường của mình bằng cách định hình toàn bộ ngành công nghiệp. Điều tương tự rất có thể cũng sẽ xảy ra với công nghệ blockchain.

Blockchain thực sự có thể biến đổi thị trường, vì chúng ta có thể kiểm soát được mọi giao dịch, hợp đồng hoặc bất kỳ sự di chuyển nào trong mạng. Chúng ta có thể làm cho các giao dịch và quy trình P2P trở nên minh bạch, được bảo mật với sự trợ giúp của mật mã, có dấu thời gian và dễ theo dõi. Điều này khác với Internet ngày nay, nơi các trung gian đóng vai trò quan trọng. Các công ty như Facebook, Google, chính phủ, ngân hàng, công ty công nghệ cao đều là những trung gian ảnh hưởng đến thông tin và quy trình trong mạng Internet. Blockchain loại bỏ những trung gian như vậy vì lợi ích của tất cả mọi người.



***

Thực trạng tại Viêt Nam


Ở Việt Nam cũng đang có những bước tiếp cận đầu tiên đối với công nghệ blockchain. Trao đổi với ICTnews xung quanh câu chuyên xây dựng Chính phủ điện tử, chính quyền điện tử tại Việt Nam hồi tháng 12/2017 vừa qua, ông Nguyễn Thế Trung, Tổng giám đốc Công ty DTT cho biết DTT đang ứng dụng các công nghệ như big data hay blockchain từ đó hiểu và bám sát tiến trình phát triển năng lực điều hành chính quyền tại các địa phương, các ngành.

Blockchain được DTT ứng dụng để chứng thực các giao dịch của chính quyền, đặc biệt trong lĩnh vực y tế, hồ sơ điện tử. "Tầm nhìn của chúng tôi là công dân không phải nộp lại hồ sơ đã nộp một lần trên toàn lãnh thổ Việt Nam. Và ứng dụng blockchain vô cùng thích hợp để hiện thực hóa tầm nhìn này" - ông Nguyễn Thế Trung chia sẻ.

Một trường hợp khác là ngày 12/1/2018 mới đây, Tập đoàn CNTT HI-TEK Hoa Kỳ tổ chức khai trương hệ thống website du lịch One-Stop-Shopping trên toàn cầu thông qua các cổng travel.vn, hotels.vn, vietnamesevisa.com và website dành cho hội viên tại prebook.com. Ở đó HI-TEK đã áp dụng các công nghệ blockchain để xây dựng thành công công cụ đặt phòng, vé máy bay trực tuyến có khả năng kết nối với hơn 800.000 khách sạn, cung cấp 150.000 chuyến bay trên toàn thế giới và công cụ xin visa trực tuyến vào Việt nam với mức giá ưu đãi nhất tại thời điểm thực tại các hệ thống website công khai www.travel.vn và www.hotels.vn.

Trước đó blockchain cũng là một trong các công nghệ mà FPT và Viện Nghiên cứu Daiwa (Daiwa Institute of Research - DIR, thành viên của Daiwa Security, Công ty Chứng khoán lớn thứ hai Nhật Bản ký kết thỏa thuận hợp tác chiến lược trong việc nghiên cứu, phát triển các giải pháp công nghệ mới. Theo đó, dựa trên thế mạnh riêng, hai bên sẽ cùng hợp tác nghiên cứu, phát triển và cung cấp các giải pháp, dịch vụ có giá trị gia tăng cao dựa trên 4 công nghệ gồm trí tuệ nhân tạo (AI), tự động hóa quy trình dựa trên trí tuệ nhân tạo (RPA), nhận diện hình ảnh và dữ liệu theo thời gian thực, và blockchain.

Tất nhiên một số hạn chế của blockchain cũng được điểm qua trong Hội thảo "Tiềm năng ứng dụng của Blockchain" trong khuôn khổ Ngày hội Khởi nghiệp đổi mới sáng tạo Việt Nam 2017 (TechFest 2017) ngày 15/11/2017. Anh Kendrick Nguyễn, Đồng sáng lập Republic nhận định dù tính bảo mật được đề cao nhưng blockchain vẫn có khả năng mắc lỗi nếu hơn một nửa số máy tính đầu mối (các nút) phục vụ mạng lưới "nói dối".

Hay như ông Long Vương, CEO Tomocoin.io bổ sung thêm thì hạn chế của blockchain còn là về tốc độ. Như với giao dịch của bitcoin hiện tại, chỉ có thể tiến hành đồng thời 7 giao dịch mỗi giây, giá mỗi giao dịch là khoảng 0,2 USD, một giao dịch chỉ chứa được 80 byte dữ liệu...

Dù vậy blockchain vẫn đang được đánh giá là có những đặc tính để trở thành nền tảng công nghệ tương lai của Internet.

Tham khảo: quantrimang, wikimedia


#

Đại số gia tử và ứng dụng

Định nghĩa đại số gia tử [khoa Điện - Điện tử ĐH Duy Tân]


Một cấu trúc đại số AT = (T, G, H, ≤) với H được phân hoạch thành H+ và Hcác gia tử ngược nhau được gọi là một đại số gia tử nếu nó thỏa mãn các tiên đề sau:
(1) Mỗi gia tử hoặc là dương hoặc là âm đối với bất kỳ một gia tử nào khác, kể cả với chính nó.
(2) Nếu hai khái niệm u và v là độc lập nhau, nghĩa là u∉H(v) và v∉H(u), thì (∀x∈H(u)) {x∉H(v)}. Ngoài ra nếu u và v là không sánh được thì bất kỳ x∈H(u) cũng không sánh được với bất kỳ y∈H(v). (H(u) là tập các giá trị được sinh ra do tác động của các gia tử của H vào u).
(3) Nếu x ≠ hx thì x∉H(hx) và nếu h ≠ k và hx ≤ kx thì h’hx ≤ k’kx, với mọi gia tử h, k, h’ và k’. Hơn nữa nếu hx ≠ kx thì hx và kx là độc lập.
(4) Nếu u ∉ H(v) và u ≤ v (hoặc u ≥ v) thì u ≤ hv (hoặc u ≥ hv) đối với mọi gia tử 
Các hàm đo
(Hàm đo trên đại số gia tử):
Cho đại số gia tử mở rộng đối xứng (T, G, H, ≤), f: T→[0, 1] là một hàm đo trên T
nếu thoả mãn:
(1) ∀t∈T: f(t) ∈ [0, 1], f(g+h) = 1, f(g-j) = 0; trong đó: g+k
- ∈ G, là các phần tử sinh
dương và âm.
(2) ∀x, y ∈ T, nếu x<y thì f(x)<f(y).

*************

Một số ứng dụng Đại số gia tử:

[1] ĐIỀU KHIỂN HỆ THỐNG KOESTER HAI ĐẦU VÀO - MỘT ĐẦU RA ỨNG DỤNG ĐẠI SỐ GIA TỬ VỚI THAM SỐ HIỆU CHỈNH NGỮ NGHĨA

[5] TIẾP CẬN ĐẠI SỐ GIA TỬ TRONG ĐIỀU KHIỂN MỞ [Luận án tiến sĩ]

#

Thuật toán di truyền và ứng dụng

Thuật toán di truyền và ứng dụng



Đầu thế kỷ 19, một lý thuyết được nêu ra bởi nhà khoa học Darwin: “Loài người có họ hàng với loài vượn” đã làm chấn động nền tảng khoa học. Trong đó, ý tưởng chủ đạo là sự tiến hóa của các muôn loài dựa trên sự chọn lọc tự nhiên. Lấy cảm hứng từ lý thuyết này, các nhà khoa học máy tính đã phát triển một thuật toán phỏng theo ý tưởng này nhằm giải quyết các bài toán tìm kiếm tối ưu có không gian cực lớn mà phương pháp vét cạn đơn thuần không giải quyết nổi.

GIẢ THUYẾT NHỮNG CON KHỈ VÀ SHAKESPEARE

Giả thuyết này được tạo ra bởi Nick Hoggard nói rằng khở đầu từ 100 con khỉ, số lượng khỉ sẽ gấp đôi sau vài ngày. Nếu một con khỉ, giả sử rằng mỗi giây gõ được 1 ký tự, và mỗi trang giấy là 2000 ký tự. Xác xuất chọn lựa để gõ 1 phím trên bàn phím của một con khỉ là như nhau. Với một giả thiết như vậy, thì sẽ mất khoảng 2,737,850 tỷ tỷ tỷ tỷ năm để có thể tạo ra một văn bản giống hệt với toàn bộ công trình văn học của Shakespeare.

Chúng ta không đi sâu vào giả thuyết này. Chỉ xét đơn cử một ví dụ: Giả sử rằng ta sinh ngẫu nhiên các chuỗi ký tự cùng độ dài với chuỗi “to be or not to be”, 18 ký tự kể cả khoảng trắng. Và giả sử các lựa chọn sinh ngẫu nhiên chỉ gồm 27 lựa chọn bao gồm các ký tự từ a đến z và một khoảng trắng. Như vậy số lượng các chuỗi ngẫu nhiên có thể sinh ra là 27^18 (lũy thừa) = 58,149,737,003,040,059,690,390,169. Rõ ràng đối với một số lượng các trường hợp như vậy, vét cạn là phương pháp hoàn toàn không khả thi.

Thuật toán di truyền đã được giới thiệu để giải quyết các bài toán tối ưu tìm kiếm trong không gian cực lớn như đã nếu ở trên.

THUẬT TOÁN DI TRUYỀN (GENETIC ALGORITHM)

Tư tưởng thuật toán này dựa trên ý tưởng về lai tạo và biến dị để tạo ra cá thể tốt hơn như sau:
Giả sử rằng khởi điểm ta có một quần thể các các thể. Các cá thể có thể “lai tạo”(crossover) với nhau và “biến dị”(mutate) để tạo ra cá thể mới. Các cá thể mới tốt hơn và dần thay thế những cá thể cũ. Như vậy sau một số thế hệ tiến hóa, chúng ta sẽ dần tạo ra cá thể tối ưu.

Ở đây sẽ có một số câu hỏi đặt ra, đó là:

Thế nào là tối ưu?

Đó là trạng thái mục tiêu mà ta cần đạt được. Nghĩa là, ta cần sinh ra một cá thể có trạng thái ứng với trạng thái mục tiêu. Ví dụ như sinh ra một chuỗi có nội dung là “to be or not to be”.

Thế nào là cá thể tốt hơn cá thể khác?

Đó là sự đánh giá độ mạnh yếu (fitness) được định nghĩa dựa trên khoảng cách từ một cá thể đến cá thể mục tiêu. Khoảng cách càng gần thì cá thể càng tốt.

Thế nào là sự lai tạo?

Mỗi cá thể được mã hóa thành một chuỗi các gene gọi là chromosome. Trong máy tính, chromosome thường được mô tả là một chuỗi bit (mỗi gene là một bit) hoặc một chuỗi các ký tự (mỗi gene là một ký tự). Sự lai tạo được thực hiện bằng cách lựa chọn hai cá thể trong quần thể để lai tạo. Để mô tả chọn lọc tự nhiên, cũng như để hướng tới việc cá thể sau tốt hơn cá thể trước, việc chọn lựa sẽ ưu tiên chọn các cá thể mạnh hơn hay nói cách khác, các cá thể mạnh hơn có nhiều cơ hội được lựa chọn để lai tạo hơn. Sự lai tạo giữa hai cá thể thực chất là việc ghép phần đầu chromosome của cá thể này với phần đuôi chromosome của cá thể kia.

Làm sao để mã hóa thành các chromosome?

Tùy vào từng bài toán sẽ có những cách mã hóa khác nhau. Đây cũng chính là mấu chốt của vấn đề, nếu ta có thể mã hóa bài toán thành dạng chromosome, bài toán có thể giải quyết bằng thuật giải di truyền.

Biến dị là gì?

Việc lai tạo đơn giản là các sự kết hợp giữa 2 chromosome cũ với nhau đến một lúc nào đó sẽ bị bão hòa và không thể tạo ra phần tử mới nữa. Lúc này đòi hỏi phải có một phẩn tử hoàn toàn mới để cung cấp sự đa dạng cho quần thể. Sự biến dị sẽ tạo nên cá thể mới so với quần thể, đảm bảo tính đa dạng cho quần thể. Sự biến dị không phải lúc nào cũng xảy ra mà chỉ xảy ra ở một tỷ lệ nhất định.

BÀI TOÁN SINH CHUỖI “TO BE OR NOT TO BE”.

  • Trạng thái mục tiêu chính là chuỗi “to be or not to be”.
  • Các trạng thái là các chuỗi được sinh ngẫu nhiên có cùng độ dài. Mỗi chuỗi này biểu diễn cho một chromosome bao gồm các gene nối tiếp nhau, mỗi gene là một ký tự. Sự lai tạo có thể được hình dung như sau:

  • Nếu việc lai tạo được thực hiện ở chính giữa chuỗi, ta có cá thể mới sinh ra bằng cách lấy nửa đầu chuỗi 1 ghép với nửa sau chuỗi 2 để có: “ABCEDD”.
  • Sự biến dị thực chất chỉ là việc thay đổi một số gene trong chuỗi được sinh ra. Ví dụ ký tự đầu của chromosome “ABCEDD” bị biến dị thành “ABCEFD”.

  • Fitness của một trạng thái có thể được định nghĩa là số lượng các ký tự giống với trạng thái mục tiêu

THUẬT TOÁN

  1. Khởi tạo quần thể ngẫu nhiên
  2. Lặp:
        - Tính fitness cho mỗi cá thể so với mục tiêu
        - Lựa chọn ngẫu nhiên 2 cá thể theo quy luật chọn lọc tự nhiên. Ở đây, sau khi update fitness cho từng cá thể, ta tạo ra một mating pool để lấy 2 phần tử sao ngẫu nhiên từ pool này cho cá thể mạnh hơn có cơ hội được chọn lựa cao hơn.




Giải thuật sẽ được thực hiện qua các bước sau:
  • Khởi tạo quần thể: Sinh ra ngẫu nhiên một quần thể gồm n cá thể (trong đó n là lời giải cho bài toán).
  • Tính giá trị thích nghi: Ước lượng độ thích nghi của mỗi cá thể.
  • Điều kiện dừng: Kiểm tra điều kiện để kết thúc giải thuật.
  • Chọn lọc: Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn).
  • Trao đổi chéo: Với một xác suất được chọn, trao đổi chéo hai cá thể bố mẹ để tạo ra một cá thể mới.
  • Đột biến: Với một xác suất đột biến được chọn, biến đổi cá thể mới.
  • Chọn kết quá: Nếu thỏa mãn điều kiện dừng thì giải thuật kết thúc và chọn được lời giải tốt nhất trong quần thể hiện tại.

Ta có thể thấy rằng, khi Điều kiện dừng chưa được thỏa mán, quần thể mới sẽ liên tục được tạo ra bằng cách lặp lại 3 bước Chọn lọc, Trao đổi chéo và Đột biến.

GAs có 2 điều kiện dừng cơ bản:
  • Dựa trên cấu trúc nhiễm sắc thể, kiểm soát số gene được hội tụ, nếu số gene được hội tụ tại một điểm hoặc vượt quá điểm đó thì giải thuật kết thúc.
  • Dựa trên ý nghĩa đặc biệt của nhiễm sắc thể, đo sự thay đổi của giải thuật sau mỗi thế hệ, nếu thay đổi này nhỏ hơn một hằng số xác định thì giải thuật kết thúc.


Ví dụ:

  • Có 5 cá thể A,B,C,D,E lần lượt có fitness như sau: 1, 3, 2, 0, 4. 
  • Như vậy mating pool như sau: A, B, B, B, C, C, E, E, E, E. 
  • Rõ ràng nếu ta lấy ngẫu nhiên 1 phần tử trong pool này, tỷ lệ chọn ra E sẽ là cao nhất.
  • Thực hiện lai ghép để tạo ra cá thể mới
  • Thay thế cá thể cũ bằng cá thể mới tạo ra
  • Nếu cá thể mới giống với mục tiêu hoặc giống ở mức chấp nhận được thì dừng. Ở đây, rất có thể chúng ta không tìm được kết quả tối ưu hoặc sẽ rất lâu mới tìm thấy trạng thái này, như vậy ta có quyền dừng ở trạng thái chấp nhận được để tiết kiệm thời gian.

THIẾT KẾ THUẬT TOÁN:
// khởi tạo quần thể với số lượng n cá thể, mỗi cá thể có chiều dài k
InitializePopulation(int len, int nPopulation);
while (foundTarget){
// tạo mating pool
var matingPool = UpdateFitnessAndCreateMatingPool();
// lấy 2 phần tử dựa vào mating pool
var p1 = population[matingPool[_rnd.Next(pool.Count)]];
var p2 = population[matingPool[_rnd.Next(pool.Count)]];
// ngẫu nhiên tìm điểm cắt
var splitPoint = _rnd.Next(_target.Length - 2) + 1;
// lai tạo để tạo ra phần tử mới
var newDNA = p1.CrossOver(p2, splitPoint);
// biến dị dựa trên tỷ lệ biến dị
newDNA.Mutate(mutationRate, materials);
// thay thế phần tử cũ
population[i] = newDNA;
// kiểm tra điều kiện dừng
if (newDNA.CompareTo(target) == target.Length)
foundTarget = true;
}

Như vậy, ta cần định nghĩa thêm một class DNA để đại diện cho một cá thể trong quần thể:
class DNA
{
public char[] Content { get; private set; } // chuỗi gene
// lai tạo ra dna mới
public DNA CrossOver(DNA dna, int splitPoint);
// biến dị theo tỷ lệ
public void Mutate(double mutationRate);
// hàm tính khoảng cách tới DNA khác
// hỗ trợ việc tính fitness
public int CompareTo(char[] content);
}

***********


Bài toán: Guessing Password — Đoán mật khẩu
Nào chúng ta bắt đầu ứng dụng giải thuật di truyền vào giải quyết bài toán đoán mật khẩu.

Về bài toán, sử dụng những ký tự trong bảng chữ cái để tái tạo lại mật khẩu. Cụ thể, ở bài này chúng ta sẽ bắt đầu với những ký tự: a-z, A-Z, !. để tái tạo nên mật khẩu: “Hello World!”.

Các bước giải bài toán:
  • Khởi tạo quần thể: Sinh ra ngẫu nhiên một đoạn dài 11 ký tự (dài bằng với mục tiêu “Hello World”.
  • Tính giá trị thích nghi: Đếm số ký tự trùng giữa đoạn tạo ra và “Hello World”.
  • Điều kiện dừng: Kiểm tra xem số ký tự trùng bằng 11 hay không.
  • Chọn lọc: Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn).
  • Trao đổi chéo (Không thực hiện ở bài toán này): Với một xác suất được chọn, trao đổi chéo hai cá thể bố mẹ để tạo ra một cá thể mới.
  • Đột biến: Với một xác suất đột biến được chọn, biến đổi cá thể mới.
  • Chọn kết quá: Khi số ký tự trùng bằng 11 thì dừng giải thuật.
Chromosomes và Gene

Trong sinh học, nói một cách khái quát, trong một Chromosomes (nhiễm sắc thể) sẽ có thể chứa rất nhiều loại gene khác nhau.

Ở bài toán của chúng ta, tất cả những trình tự đoạn 11 ký tự ( độ dài bằng với “Hello World”) được gọi là Chromosomes. Và mỗi loại ký tự sẽ đại diện cho 1 loại Gene khác nhau.
geneSet = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
target = "Hello World"

Đầu tiên chúng ta khai báo biến geneSet chứa các ký tự trong bảng chữ cái, mỗi ký tự đại diện cho một loại Gene. Cùng với đó, khai báo biến target là đoạn ký tự mục tiêu “Hello World”.
Bước 1: Khởi tạo quần thể
import random
def initialize_chromosomes(length):
    chromosomes = []
    while len(chromosomes) &lt; length:
        sampleSize = min(length - len(chromosomes), len(geneSet))
        chromosomes.extend(random.sample(geneSet, sampleSize))
    return ''.join(chromosomes)
Sử dụng random.sample để tạo ngẫu nhiên từ geneSet theo độ dài cho trước. Chúng ta có thể có test bằng initialize_chromosomes(11). Kết quả sẽ có dạng: ‘yTtumWSgfkM’
Chú ý: Vòng While sinh ra nhằm xử lý vấn đề nếu độ dài của Chromosomes dài hơn số lượng loại Gene ban đầu
Bước 2: Tính giá trị thích nghi
Chúng ta thấy rằng, Chromosomes có khả năng là những trường hợp như:
  • Sekmo xosmd
  • Seklo Wocle
  • Fello Wosld
  • Gello World
  • Hello World
Có thể nhận ra ngay đoạn cuối cùng là đoạn chính xác. Nhưng làm sao chúng ta có thể “đo” được độ tối ưu của Chromosomes này?
Hàm lỗi (error function/ cost function/loss function) là một hàm số giúp đo độ tối ưu của một Chromosome. Ở hàm này, chúng ta đang hướng tới giá trị càng nhỏ càng tốt.
Với bài toán Đoán mật khẩu, để đo độ tối ưu, chúng ta đếm số kí tự sai khác trên cùng vị trí giữa Chromosome và đoạn kí tự mục tiêu “Hello World”. Vì vậy, hàm lỗi ở đây sẽ tối ưu ở số kí tự sai khác bằng 0.
Dùng quy luật trên để tính sai khác cho các trường hợp Chromosomes trên:
  • Sekmo xosmd(6)
  • Seklo Wocle(4)
  • Fello Wosld(2)
  • Gello World(1)
  • Hello World(0)
def error_function(chromosome):
    return len(target) - sum(1 for expected, actual \
                             in zip(target, chromosome)  \
                             if expected == actual)
Hàm error_function sẽ tính số ký tự sai khác ở cùng một vị trí giữa Chromosome và “Hello World”. Có thể test hàm trên như sau: error_function(“Hello World”) sẽ cho kết quả bằng 0.
Bước 3: Điều kiện điểm dừng
Kiểm tra điều kiện điểm dừng là error_function có bằng 0 hay không.
Bước 4: Tiến hóa
Trong bước này, chúng ta sẽ gộp chung cả 3 kỹ thuật: chọn lọctrao đổi chéo và đột biến. Mục tiêu của bước này là tạo ra thế hệ mới tối ưu hơn thế hệ cũ. Độ tối ưu sẽ được đo theo hàm lỗi. Chúng ta có thể mường tượng ra rằng, đây là một vòng lặp, mỗi vòng lặp sẽ thực hiện 3 kỹ thuật trên, sau đó check điều kiện dừng. Nếu không đáp ứng được thì vòng lặp sẽ tiếp tục cho đến khi đáp ứng được thì thôi.
Ở bài toán này, chúng ta sẽ chỉ sử dụng chọn lọc và đột biến. Phần về trao đổi chéo tôi sẽ có một bài riêng vì nó có chút phức tạp hơn.
def mutate(parent):
    index = random.randrange(0, len(parent))
    childGenes = list(parent)
    newGene, alternate = random.sample(geneSet, 2)
    childGenes[index] = alternate \
    if newGene == childGenes[index] \
    else newGene
    return ''.join(childGenes)
index sẽ là một số được chọn ngẫu nhiên tức là đột biến sẽ xảy ra một cách ngẫu nhiên trên Chromosome. newGene và alternate cũng sẽ được ngẫu nhiên tạo ra từ geneSet.
Vì sao lại phải tạo ra tận 2 đột biến? Câu trả lời là đột biến có thể vô nghĩa tại 1 điểm nên cần 1 đột biến khác thay thế.
Hàm hỗ trợ
Xây dựng hàm display giúp hiển thị sự thay đổi qua từng thế hệ và thời gian chạy tương ứng
import datetime
def display(guess):
    timeDiff = datetime.datetime.now() - startTime
    fitness = error_function(guess)
    print("{0}\t{1}\t{2}".format(guess, fitness, str(timeDiff)))
Main
Sau đây sẽ là phần chạy main cho giải thuật GAs:
random.seed(1)
startTime = datetime.datetime.now()
bestParent = initialize_chromosomes(len(target))
bestFitness = error_function(bestParent)
display(bestParent)
while True:
    child = mutate(bestParent)
    childFitness = error_function(child)
     
    if bestFitness &lt;= childFitness:
        continue
    display(child)   
    if childFitness == 0:
        break
    bestFitness = childFitness
    bestParent = child

Kết quả:

hJYVdpgEBDO 11 0:00:00
HJYVdpgEBDO 10 0:00:00
HJYVdpgEBDd 9 0:00:00.001003
HJYVopgEBDd 8 0:00:00.001003
HJYVopgErDd 7 0:00:00.004010
HJYVopgErld 6 0:00:00.005012
HJlVopgErld 5 0:00:00.008021
HJlVo gErld 4 0:00:00.008021
HelVo gErld 3 0:00:00.009036
HelVo gorld 2 0:00:00.010026
Hello gorld 1 0:00:00.017045
Hello World 0 0:00:00.020052
Khởi tạo quần thể với Chromosome đầu tiên bestParent . Tính hàm lỗi cho Chromosome này cho chúng ta kết quả là 11, cho thấy chưa có vị trí nào giữa Chromosome khởi tạo và “Hello World” trùng nhau.
Chúng ta sẽ thấy rằng, việc chọn lọc đã diễn ra ở điều kiện vòng lặp, tức là cứ mỗi khi hàm lỗi giảm là sẽ giữ lại bestParent thay thế cho Chromosome cũ kém tối ưu hơn.
Kết luận
Chúng ta đã cùng nhau xây dựng một giải thuật di truyền và hiểu các bước diễn ra bên trong giải thuật.
Giải thuật trên gần như là dạng đơn giản nhất. Nếu có bài tiếp theo, tôi sẽ giới thiệu thêm về một số vấn đề bên trong và xử lý những bài toán phổ biến và có đôi chút phức tạp hơn.

#

Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (108) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (5) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (4) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)