1. Hãy dành vài giây Đăng nhập hoặc Đăng ký tài khoản để truy cập và sử dụng TBit hiệu quả nhất.
    Ẩn thông báo
  2. Bạn hãy like trang Facebook của TBit để nhận được tin tức công nghệ nhanh nhất từ chúng tôi.
    Ẩn thông báo

Thông não về Blockchain. Có thể bạn đang hiểu sai về nó. (P2)

Thảo luận trong 'Thông tin công nghệ' bắt đầu bởi Phạm Đạt, 13/6/18.

0/5, 0 phiếu

    1. Phạm Đạt TBit-Mod

      Tiếp nối phần trước của bài viết. Hôm nay chúng ta lại cùng nhau đến với bài tập thể dục cho não. Vì việc giải thích về công nghệ Blockchain rất khó hiểu đặc biết là đối với newbie hoặc những người có ít kiến thức về IT nên mình đã tham khảo qua một số trang web để tìm ra cách truyền tải rõ ràng và dễ hiểu nhất.

      [​IMG]

      3) Blockchain hoạt động như thế nào ?
      Yêu cầu chính của phương thức này, đó là phải có đủ số lượng người cần thiết. Chỉ có như vậy nhóm người này mới có thể tự duy trì được sổ cái của họ. Họ cần ít nhất là 3 người để công nghệ Blockchain hoạt động.

      Giả sử có 10 người muốn không phụ thuộc vào bất kỳ tổ chức thứ ba nào. Họ sẽ có thông tin chi tiết về tài khoản của những người khác trong suốt thời gian thỏa thuận có hiệu lực, NGOẠI TRỪ MỘT THÔNG TIN QUAN TRỌNG - danh tính của người đó.
      Tất cả mọi người đều được cung cấp một thư mục rỗng để bắt đầu. Khi quá trình bắt đầu diễn ra, tất cả 10 cá nhân độc lập này sẽ cùng thêm các trang giấy vào thư mục rỗng hiện tại của họ. Và tập hợp các trang giấy này sẽ tạo thành một cuốn sổ cái để theo dõi các giao dịch.

      3.1 Khi có một giao dịch xảy ra
      Giả sử có một giao dịch xảy ra, #2 muốn chuyển 10$ cho #9
      Để thực hiện giao dịch, # 2 thông báo với tất cả mọi người
      "Tôi muốn chuyển 10$ cho #9. Mọi người hãy note lại vào trang giấy của mình".
      Tiếp đó, Mọi người sẽ cùng kiểm tra xem #2 có đủ số dư trong tài khoản để chuyển 10$ cho #9 hay không. Nếu Ok, tất cả mọi người sẽ cùng note lại lịch sử giao dịch trên trang giấy của mình.
      -> Giao dịch này được coi là hoàn thành.

      3.2 Cất trang giấy ghi thông tin các giao dịch vào tập tài liệu
      Giả sử mỗi trang giấy chỉ ghi được 10 lượt giao dịch. Thì chúng ta cần phải cất trang giấy đó đi và lấy ra một trang giấy trắng.

      Trước khi cất trang giấy ghi lại các giao dịch vào tập tài liệu, chúng ta cần niêm phong nó bằng một khoá mà tất cả mọi người trong mạng lưới đều đồng ý. Bằng cách niêm phong trang giấy này, chúng ta sẽ đảm bảo rằng không ai có thể thực hiện bất kỳ thay đổi về nội dung nào khi mà bản sao của nó được lưu giữ trong tập tài liệu của từng người - không phải hôm nay, ngày mai hay thậm chí là rất nhiều năm về sau.
      Một khi đã ở trong tập tài liệu, nó sẽ mãi ở trong đó, và luôn được niêm phong. Hơn nữa, nếu mọi người tin tưởng vào dấu niêm phong, mọi người cũng sẽ tin tưởng vào nội dung của trang giấy ghi lại giao dịch. Dấu niêm phong chính là điểm mấu chốt của phương pháp này.

      3.3 Vậy chúng ta sẽ niêm phong trang giấy ghi lại các giao dịch như thế nào?
      Trước khi tìm hiểu xem làm thế nào để có thể niêm phong lại trang giấy ghi giao dịch, chúng ta cần phải hiểu cách thức hoạt động của dấu niêm phong một cách tổng quát.
      Đã đến lúc chúng ta cùng làm quen với một thứ được gọi là máy xay thần kì
      [​IMG]
      Hãy tưởng tượng có bạn đưa chiệc hộp chứa gì đó vào máy rồi từ phía dưới cố máy bạn lại nhận được một chiếc hộp khác. Thực ra chiếc hộp này có tên là Hash Function (Hàm băm), nhưng để hiểu được mớ lý thuyết sâu xa đằng sau khái niệm này cần nhiều thời gian và kiến thức chuyên ngành, nên hôm nay để đơn giản tui sẽ gọi nó là máy xay thần kì

      Giả sử thế này, bạn gửi vào cỗ máy số 4 , sau quá trình xử lý nó sẽ đưa trả lại bạn một chuỗi ký tự dcbea. Không ai có thể biết chiếc máy đã xay dữ liệu như thế nào. Hơn thế nữa khi đã xay ra thì chúng ta không thể đảo ngược lại. Nghĩa là bạn KHÔNG thể gửi vào máy xâu ký tự dcbea và nhận lại giá trị ban đầu là số 4. Nhưng bất cứ khi nào bạn đưa số 4 vào cỗ máy này sẽ đều trả về cho bạn cùng một xâu ký tự là dcbea.
      [​IMG]
      Khoan đã, có khi nào bạn có thể cho tui biết tui cần gửi vào máy con số nào để có thể nhận được một chuỗi ký tự mà bắt đầu bằng 3 chữ số 0 không ? VD: 000ab, 00069 hoặc 000fa,...
      Tui nghĩ đến một phương pháp. Đó là sao chúng ta không thử từng số một cho đến khi thu được kết quả.

      Hãy lạc quan lên, sau vài nghìn lần thử, có thể chúng ta sẽ tìm được chuỗi ký tự đáp ứng yêu cầu ban đầu.
      Bạn thấy đấy, việc tính toán đầu vào ban đầu dựa vào kết quả đầu ra là cực kỳ khó khăn. Nhưng đồng thời, nó lại cực kỳ dễ dàng để kiểm tra xem một đầu vào cho trước có thoả mãn đầu ra theo yêu cầu hay. Hãy nhớ rằng cỗ máy này trả về kết quả giống nhau với cùng một giá trị đầu vào.
      -> Với một kết quả output cho trước, sẽ rất khó để tính toán giá trị input, nhưng nếu có một giá trị input và kết quả output , bạn sẽ có thể dễ dàng kiểm tra giá trị input sau khi đưa qua cỗ máy có trả về giá trị output cho trước hay không

      Quay trở lại với chủ đề. Chúng ta sẽ cùng sử dụng máy xay thần kỳ này để sinh ra một dấu niêm phong cho những trang giấy ghi thông tin giao dịch của chúng ta.

      Giả sử mỗi một trang giấy ghi thông tin giao dịch của chúng ta được viết 1 con số lên đó. Và có 1 trang giấy ghi số 20893. Để niêm phong trang thông tin giao dịch này chúng ta sẽ đóng 1 con dấu đỏ có nhãn là con số 21191 lên trên trang giấy. Ngay khi con dấu chứa số niêm phong 21191 được đóng lên trang giấy, trang giấy sẽ ngay lập tức bị niêm phong.

      Tại sao lại là con số 21191. Hãy tưởng tượng tôi đưa cho bạn 2 chiếc hộp. Chiếc hộp đầu tiên chứa con số 20893. Sau đó, tôi sẽ hỏi bạn "Cậu có thể tìm cho tôi một số mà khi cộng với con số trong chiếc hộp đầu tiên và đưa vào máy xay thần kỳ thì sẽ trả về cho chúng ta một chuỗi ký tự bắt đầu bằng 3 chữ số 0 không ?"

      Sau vài nghìn nghìn lần thử, có thể chúng ta sẽ ngẫu nhiên bắt được con số đó, VD 21191, mà khi cộng với 20893 (21191 + 20893 = 42084) và đưa qua cỗ máy, sẽ trả về chuỗi ký tự thoả mãn yêu cầu của tôi.
      -> Con số 21191 trở thành dấu niêm phong cho số 20893.

      Con số niêm phong được gọi là ProofOfWork, điều đó có nghĩa con số này là bằng chứng cho những nỗ lực để tính toán ra nó. Vì mục đích của bài viết, chúng ta vẫn sẽ thống nhất gọi nó là số niêm phong nhé.
      Nếu ai đó muốn xác nhận xem nội dung của trang ghi thông tin giao dịch có bị thay đổi, hoặc đánh tráo hay không, tất cả những gì anh ta cần làm là cộng nội dung của trang giấy với số niêm phong và đưa qua máy xay thần kỳ.

      Nếu cỗ máy trả về một chuỗi ký tự bắt đầu bằng 3 chữ số 0, điều đó có nghĩa nội dung của trang ghi thông tin giao dịch không hề bị thay đổi. Nếu chuỗi kết quả trả về không đáp ứng yêu cầu, chúng ta có thể vứt bỏ trang giấy đó đi vì nội dung của nó đã bị xâm nhập và không còn hiệu lực.
      Cuối cùng, niêm phong các trang giấy của chúng ta lại ...
      [​IMG]
      Để niêm phong trang giấy ghi các thông tin giao dịch của toàn bộ mạng lưới, chúng ta cần tìm ra một con số mà khi nối vào danh sách giao dịch và đưa qua cỗ máy thần kỳ, chúng ta sẽ thu được một chuỗi ký tự thỏa mãn yêu cầu. Lúc này, tất cả mọi người trong mạng lưới sẽ cùng thực hiện việc tính toán để tìm ra con số niêm phong. Người đầu tiên tìm ra được số niêm phong sẽ thông báo cho tất cả những người còn lại.
      Ngay khi nhận được số niêm phong, tất cả mọi người trong mạng sẽ xác nhận xem nếu dùng Hash Function (máy xay thần kỳ), đầu vào là số niêm phong và trang ghi thông tin giao dịch, chuỗi ký tự trả về có thoả mãn yêu cầu hay không. Nếu có, tất cả mọi người sẽ đóng dấu trang thông tin giao dịch của mình với số niêm phong này và đặt nó vào tập tài liệu.

      Nhưng nếu có ai đó, giả sử là # 7, nói rằng số niêm phong này không thoả mãn yêu cầu đầu ra. Những trường hợp như vậy không phải là điều bất thường. Những lý do có thể gây ra điều này bao gồm :

      1. Có lỗi trong quá trình tiếp nhận thông tin (nhiễu,...) do đó số niêm phong # 7 nhận được không phải là số niêm phong đã được thông báo ra.
      2. Anh ta có thể đã viết sai các giao dịch được thông báo
      3. Anh ta có thể đã cố gắng lừa dối hoặc không trung thực khi viết lại các giao dịch

      Không quan trọng lý do là gì, # 7 chỉ có duy nhất một lựa chọn, đó là loại bỏ trang ghi thông tin giao dịch của mình và copy lại từ một người khác, sau đó có thể đặt nó vào tập thư mục của mình.
      Nếu # 7 không đưa trang ghi thông tin giao dịch của mình vào tập thư mục, anh ta không thể tiếp tục viết thêm các giao dịch khác nữa, và anh ta sẽ bị cấm tham gia vào mạng lưới.
      Bất kể số niêm phong nào được đa số thành viên trong mạng đồng ý, sẽ trở thành số niêm phong chính được sử dụng.
      Vậy tại sao tất cả mọi người lại phải bỏ công sức, nguồn lực của mình để thực hiện việc tính toán, khi mà họ biết ai đó trong mạng sẽ tìm thấy con số niêm phong và thông báo cho họ. Tại sao không đơn giản chỉ cần ngồi nhàn rỗi và chờ đợi thông báo ?
      Đây là một câu hỏi tuyệt vời. Và đây là sự thực trong bức tranh toàn cảnh. Tất cả mọi người là thành viên của mạng Blockchain khi tìm ra số niêm phong đều có đủ điều kiện nhận phần thưởng. Người đầu tiên tìm ra được số niêm phong sẽ nhận được phần thưởng để khích lệ cho những nỗ lực anh ta đã bỏ ra (tiêu tốn điện sức mạnh của CPU và điện năng,...)
      [​IMG]
      Hãy tưởng tượng thế này, nếu # 5 tìm ra số niêm phong của một trang, anh ta sẽ nhận được 1 phần thưởng. Nói cách khác, tài khoản của # 5 được cộng thêm một số dư mà không làm giảm số dư tài khoản của những người khác trong mạng.
      Đó chính là cách Bitcoin ra đời. Đó là đơn vị tiền tệ đầu tiên được giao dịch trên một Blockchain.Và đổi lại, để giữ cho những nỗ lực tính toán ra các con số niêm phong trong mạng được duy trì, mọi người sẽ được trả công bằng Bitcoin.
      Bây giờ thì bạn đã hình dung ra được, việc tính toán ra các con số niêm phong hay gọi theo ngôn ngữ thực tế chính là việc đào Bitcoin rồi phải không.
      * Tạm kết: Qua đây mình hy vọng các bạn đã tạm hiểu được nguyên lí hoạt động của Blockchain rồi. Đừng quên like, share bài viết này để nhiều người hiểu hơn và mình có động lực để post bài cuối !
       
      Chỉnh sửa cuối: 13/6/18
      Admin thích bài này.
      Đang tải...

Chia sẻ trang này

Đang tải...