Let’s blockchain – Chương 1: Sự tồn tại
1. Công ty số 1 Châu Á
A: Hãy nói rằng Septeni là công ty số 1 Châu Á đi.
B: Chắc chứ? Theo tôi quyết định thì Septeni không nằm ở vị trí đó được, nhưng chắc chắn ít nhất cũng đứng thứ 2 Châu Á đó.
Bạn đồng ý với tôi điều này chứ? Cứ đồng ý đi mà dù sao xem xét thỏa thuận này ở quy mô giữa bạn và tôi thì điều này cũng chả ảnh hưởng tới bất kỳ điều gì cả, tuy nhiên nếu thỏa thuận này được mang ra quy mô toàn xã hội thì lượng gạch đá mà tôi được bonus khi phát biểu chắc đủ để xây toà keangnam rồi. Giả sử xã hội này là một blockchain cực lớn và quyết định của tôi là một transaction, tôi sẽ mang quyết định này của tôi được mang đặt vào xã hội, có thể tôi sẽ thông đồng được 70 Node của Septeni đồng tình (hack thành công), tuy nhiên vì mọi người trong blockchain này sau khi nghe quyết định lập tức google search “công ty số 1 châu á” và biết được cùng một kết quả. Ngay lập tức không những quyết định của tôi bị đá mà cả 70 Node đã thông đồng với tôi cũng bị biệt lập với mạng blockchain… Bạn có hiểu tôi nói gì không nhỉ? (cơ mà nếu quyết định của tôi được duyệt tôi đã gieo thành công tư tưởng của mình để toàn xã hội công nhận, Septeni sẽ đứng đầu danh sách google search “công ty số 1 châu á” :D)
Vậy rốt cuộc blockchain là cái gì?
I have a Cryptography
I have a Game Theory
And I have P2P Networks
Uh! Blockchain
2. Giải thích nội dung
2.1. Hashing
Đầu tiên là cryptography cung cấp hashing function – một one-way function mã hóa nội dung thành một chuỗi ký tự có chiều dài cố định. Điểm thú vị của hashing là nếu nội dung bạn đưa vào dù có biến đổi một tí xíu (như thêm 1 khoảng trắng) thì sau đó nội dung sau mã hóa sẽ biến đổi rất khó lườm. Mà trong blockchain chúng ta đâu có hashing có một lần, chúng ta sẽ tiếp tục hashing các nhóm mã đã hashing. Việc này không những sẽ bảo mật toàn bộ nội dung ghi trên blockchain mà còn đưa nội dung về dạng dễ dàng cho máy tính xử lý dễ dàng phát hiện ra các thông tin sai để xử lý kịp thời.
2.2. The Block
Cấu tạo của blockchain là từ các block chứa dữ liệu lưu trữ. Một blockchain là của bạn thì bạn có toàn quyền quyết định dữ liệu mà block hiển thị tuy nhiên có một số trường dữ liệu buộc có khi làm blockchain. Đầu tiên là “Hash” lưu dữ liệu hashing được tạo ra sau khi đã hashing các đã được hashing??? Kế tiếp là trường “Timestamp” lưu lại thời điểm tạo khối block. Và cuối cùng là trường “Previous” lưu lại trường “Hash” của block trước đó để Chain của mình có thể tồn tại và bảo mật dưới dạng cây Merkle.
Vì blockchain tồn tại dưới dạng cơ sở dữ liệu phi tập trung, điều này có nghĩa là nếu một block bị sửa, kết quả sai khi Hash sẽ trở lên sai khác và ta phải sửa toàn bộ block nối sau nó sẽ sai lệch thông tin và kiến toàn chain bị lệch dữ liệu (thực ra chỉ cần 1 khác là xong rồi). Và kết quả cuối cùng chain đó sẽ bị từ chối và loại bỏ khỏi mạng blockchain.
2.3. Bảo mật dữ liệu
Dữ liệu công khai trên blockchain có một cách hoạt động hết sức thú vị, nó biến người tham gia thành một đoạn mã hóa mà không ai có thể biết (và cần phải biết) về danh tính người đó được ngoại trừ chính bản thân người đó.
Sẽ có những dữ liệu trên blockchain được qua encryption có cho phép được decode nếu có mật khẩu hoặc một cụm từ mật mã nào đó (với những ai đã từng chơi crypto thì đó là khóa cá nhân của ví). Điều này tạo lên tính available của dữ liệu đặt trên blockchain tuy nhiên chỉ có người sở hữu chìa khóa mới có thể truy cập được dữ liệu.
3. Cách blockchain hoạt động
Blockchain hoạt động thế nào nhỉ? Câu trả lời là còn tùy. Blockchain của bạn thì bạn thiết kế sao nó chạy thế…
Cơ mà căn bản ta vẫn cần một cơ sở để thiết kế nên ở đây ta sẽ lấy ví dụ từ anh cả của giới blockchain – Bitcoin.
Tình huống: Alo alo, cho tôi đặt 2 cái pizza với giá 10.000 bitcoin nha, tôi vừa gửi tiền vào ví cá nhân của anh đó. (Bitcoin Pizza Day)
Hoạt động:
Transaction (send 10.000BTC) xuất hiện và bắt đầu đi vào bitcoin network để xác nhận.
Sau khi đã được phần đa các node chấp thuận yêu cầu transaction sẽ được đưa vào block nếu block hết chỗ chứa thì sẽ chuyển vào block sau (mỗi block của bitcoin chỉ chứa được 1MB dữ liệu).
Các thợ đào (node) nỗ lực tìm ra đoạn mã hóa để đóng block tuy nhiên 10 phút mới xuất hiện một đoạn mã hóa chính xác của block đó nên chỉ có một node duy nhất sở hữu được nó (nói cách khác đây là lý thuyết trò chơi Proof of work – bằng chứng công việc).
Note: Tuy là chỉ có một người mỗi 10 phút có được 1 đoạn mã để đóng block, tuy nhiên nếu có một siêu máy tính để đào so với một máy tính bình thường khi đào thì chả khác nào 1 cái máy xúc thi đào với một cái xẻng vậy.
Block được khởi tạo sau đó được gắn vào chain (nơi dữ liệu tồn tại vĩnh viễn).
Tất cả các node cập nhập chain.
Kết quả: Tiền được chuyển sang ví của cửa hàng. Pizza được ship đến???
4. Các loại blockchain
Blockchain tồn tại dưới 2 dạng chính là public blockchain và private blockchain. Xem xét cụ thể ta có thể so sánh chúng trên một vài khía cạnh để phân loại:
- Khả năng truy cập: public blockchain cung cấp quyền truy cập tới bất kì ai kết nối tới bằng internet, private blockchain sẽ chỉ cung cấp quyền truy cập cho các thành viên trong mạng lưới.
- Chi phí vận hành và lưu trữ dữ liệu: public blockchain vì sử dụng tài nguyên của cộng đồng để vận hành cho nên nhìn chung khá là tốn kém trong khi đó private blockchain có thể kiểm soát được điều này.
- Bảo mật: Cả 2 đều có xu hướng càng nhiều node càng an toàn và cần phải kiếm soát được 51% số node mới thể kiểm soát cả mạng lưới. Vì phân tán nhiều hơn trong cộng đồng nên public blockchain nhìn chung sẽ bảo mật hơn do có nhiều điểm để tấn công hơn so với private blockchain.
- Quyền lợi: public blockchain đại diện cho quyền dân chủ – ai cũng có quyền tham gia đóng góp dưới sự chấp thuận của phần đa, còn private blockchain thì sẽ được sở hữu và quản lý bởi 1 hoặc 1 nhóm tổ chức.
5. Ứng dụng
Blockchain tốt thật đấy nhưng không phải là thần thánh do những hạn chế còn tồn đọng như tốc độ xử lý khá chậm nên sẽ không thích hợp để cho những tương tác yêu cầu tốc độ xử lý hay việc cần một mạng lưới rộng để bảo mật trở lên không cần thiết cho các tác vụ hoạt động nhỏ. Tuy nhiên với sức mạnh của blockchain ta có thể xếp ra một vài ví dụ điển hình có thể đưa blockchain vào để hoạt động:
Hình như có gì đó thiêu thiếu mà chưa đề cập tới thì phải?