Tuesday, February 2, 2021

self-sovereign identity

Nhận dạng kỹ thuật số là một trong những vấn đề lâu đời và khó nhất trên Internet. Trước đây, chưa có cách nào chứng minh thông tin đăng nhập kỹ thuật số là danh tính thực của một người như ở thế giới thực. Cuối cùng điều này đag thay đổi, đầu tiên W3C đag chuẩn hoá định dạng của các thông tin được ký điện tử (digital-signed credentials); thứ hai, mạng lưới blockchain công khai cung cấp hệ thống đăng ký phi tập trung và khám phá khoá công khai cần thiết để xác minh chữ ký số.

 1. Vấn đề

Trong thế giới thực, chúng ta sử dụng các thông tin vật lý để chứng thực định danh. Trong thế giới số, chúng ta không có cách chuẩn nào để xác định thông tin số.

Để xác nhận thông tin số, chúng ta phải giải quyết hai vấn đề:

  • Chuẩn hoá định dạng -> W3C đang chuẩn hoá 
  • Chuẩn hoá cách xác nhận thông tin nguồn và tính toàn vẹn của nó: -> làm thế nào để chuẩn hoá việc xác minh chữ ký số của thông tin người phát hành? -> PKI (public key infrastructure): cồng kềnh, tốn kém, không phân tán ~ thường chỉ có công ty mới mua certificate, nếu root/CA có vấn đề hoặc hệ thống có vấn đề -> ....

2. Giải pháp

- Blockchain mở là một hệ thống phi tập trung của root of trust, không ai sở hữu và mọi người đều có thể sử dụng.

- Blockchain thay thế niềm tin con người bằng niềm tin toán học.

  • Mỗi transaction trong blockchain được ký bởi block ban đầu.
  • Mỗi transaction - đơn hay khối - được móc nối với giao dịch trước đó bởi 1 mã băm kỹ thuật số. Một mã băm kỹ thuật số là một dấu tay điện tử mà có tính duy nhất trên toàn cầu và cực kỳ khó để giả mạo.
  • Các giao dịch được xác nhận sẽ được sao chép sang các máy theo thuật toán đồng thuận.

- Trong hệ thống blockchain, các khoá công khai (publish key) có địa chỉ của nó. Địa chỉ này được gọi là định danh phi tập trung (decentralize identifier) viết tắt là DID - một chuẩn từ W3C. DID cung cấp một cách chuẩn mà các cá nhân hay tổ chức có thể tạo ra một định danh vĩnh viễn, duy nhất trên toàn cầu và có thể xác nhận bằng mã hoá dưới sự cho phép của chủ định danh này.

- DID là nhận dạng số có thể xác minh duy nhất trên toàn cầu đầu tiên mà không yêu cầu cơ quan đăng ký.

  • DID được lưu trên blockchain cùng với:
Khoá công khai - publish key
Các thông tin mà chủ của đinh danh muốn tiết lộ
Địa chỉ mạng cho sự tương tác
  • Chủ định danh kiểm soát thông qua khoá cá nhân - private key.

3. Bài toán ví dụ

Hệ thống trường Faber nơi Alice tốt nghiệp thay đổi thông tin bảng điểm sang kỹ thuật số. Alice đăng nhập vào hệ thống nhà trường để lấy bảng điểm, nhưng cô ấy nhận ra hệ thống này yêu cầu một dạng định danh mới của cô, dạng định danh mới này có tính chất duy nhất trên thế giới, có thể di chuyển được, không phụ thuộc vào quá khứ, tương lai hay một cơ quan quản lý nào, không ai có thể huỷ bỏ được. Đó là dạng định danh Self-Sorvereign Identity.

Khi Alice có định danh mới, cô ấy click vào "nút Get Transcript". Để quản lý Self-Sorvereign Identity sẽ cần có ứng dụng trên máy tính hoặc mobile, nó có thể là một ứng dụng độc lập hoặc nhà cung cấp dịch vụ thứ ba mà sổ cái (Ledger) gọi là "Agency". Hệ thống của trường Faber gợi ý cho Alice cài đặt ứng dụng Indy nếu cô chưa có, ứng dụng này được cài đặt là một phần trong workflow của "nút Get Transcript".

Khi Alice nhấp chuột vào "nút Get Transcript", cô ấy sẽ cài được ứng dụng Indy, mở nó ra và được hỏi có chấp nhận yêu cầu kết nối đến Faber không? Bây giờ chúng ta sẽ xem đằng sau ngữ cảnh đó là gì...?

3.1 Chuẩn bị cơ sở hạ tầng

  1. Xác nhận Faber là Trust Anchor.
  • Trust Anchor là một người hoặc một tổ chức mà sổ cái (ledger) đã được biết, và Trust Anchor có thể bootstrap người hoặc tổ chức khác.
  • Sổ cái mục đích là để lưu trữ "bản ghi định danh" (Identity Record). "Bản ghi định danh" là dữ liệu công khai, nó có thể bao gồm: khoá công khai, service endpoint, lược đồ và sự định nghĩa của thông tin. Mỗi "bản ghi định danh" này được liên kết với chính xác một DID (decentralize identities) có tính duy nhất trên thế giới và có thể đọc được (qua sổ cái) mà không cần bất kỳ cơ quan giải quyết tập trung nào. Một Identity có thể sở hữu nhiều DID.
  • Có 2 loại DID, một là DID xác minh (Verinym) được liên kết với "Legal Identity" của "Identity Owner", nó thường dùng để xuất bản các lược đồ cho các loại tài liệu. Thứ hai, DID bút danh (Pseudonym) dùng để duy trì kết nối giữa 2 Identity. 2 Identity liên lạc với nhau sẽ có 2 Pseudonym được gọi là mã định danh theo cặp duy nhất (Pairwise-Unique Identifier)
  • Việc tạo ra một "bản ghi định danh" (Identity Record) cũng là việc tạo ra một DID mà sổ cái có thể đọc được, quá trình này gọi là giao dịch NYM (NYM transaction)
  • Bước đầu tiên để thực hiện các giao dịch trên sổ cái liên quan đến việc nhận vai trò Trust Anchor trên sổ cái. Như vậy, trường Faber cần lấy vai trò Trust Anchor trên sổ cái của họ để có thể tạo ra DID Verinym và Pairwise-Unique Identifiers để cung cấp dịch vụ cho Alice.
  • Steward là vai trò quản lý đầu tiên trong 1 hệ thống Self-Sovereign Identity, Steward có vai trò Trust Anchor

3.2 Kết nối đến hệ thống, ví dụ Hyperledger Indy

  • Lần đầu tiên, sau khi hệ thống được khởi động, chúng ta cần kết nối đến hệ thống. Chúng ta kết nối đến hệ thống với tư cách là Steward's Agent.
  • Sau khi hệ thống được khởi động nó có một NODE transaction được gọi là "genesis transaction", chúng ta có thể lấy được danh sách các node của hệ thống qua NODE transaction.
  • Cấu hình về nhóm các node được đinh nghĩa là một cặp: "name": json.({"key1": "value1", ...}) và trường quan trọng nhất trong {"keyN": "valueN"} là đường dẫn tới file lưu trữ "genesis transaction"
  await pool.set_protocol_version(2) 
  pool_ = {'name': 'pool1'}
  pool_['genesis_txn_path'] = get_pool_genesis_txn_path(pool_['name'])
  pool_['config'] = json.dumps({"genesis_txn": str(pool_['genesis_txn_path'])})
  await pool.create_pool_ledger_config(pool_['name'], pool_['config'])
  pool_['handle'] = await pool.open_pool_ledger(pool_['name'], None)
  • Steward's Agent sẽ có quyền sở hữu DID cái mà có NYM transaction tương ứng với vai trò Steward trên sổ cái. Khi cấu hình hệ thống, chúng ta phải định nghĩa một số thông tin liên quan đến NYM transaction, một trong số đó là các giá trị "seed". Các giá trị "seed" này là 1 số ngẫu nhiên, cho phép khôi phục lại DID ở Steward's Agent.
# Steward Agent
  steward = {
      'name': "Sovrin Steward",
      'wallet_config': json.dumps({'id': 'sovrin_steward_wallet'}),
      'wallet_credentials': json.dumps({'key': 'steward_wallet_key'}),
      'pool': pool_['handle'],
      'seed': '000000000000000000000000Steward1'
  }
  
  await wallet.create_wallet(steward['wallet_config'], steward['wallet_credentials'])
  steward['wallet'] = await wallet.open_wallet(steward['wallet_config'], steward['wallet_credentials'])
  
  steward['did_info'] = json.dumps({'seed': steward['seed']})
  steward['did'], steward['key'] = await did.create_and_store_my_did(steward['wallet'], steward['did_info'])

3.3 Faber thiết lập kết nối đến Steward

  • Mỗi kết nối có một Pairwise-Unique Identity (các DID mù). Mỗi bên sở hữu một Pseudonym DID, cả hai bên đều biết Pseudonym của nhau và không chia sẻ được cho bên khác.
  • Steward tạo DID mới trong ví (wallet) để sử dụng trong tương tác bảo mật với duy nhất Faber
# Steward Agent
(steward['did_for_faber'], steward['key_for_faber']) = await did.create_and_store_my_did(steward['wallet'], "{}")
  • Steward gửi giao dịch NYM tương ứng đến sổ cái (khả năng sổ cái này của Steward???)
# Steward Agent
nym_request = await ledger.build_nym_request(steward['did'], steward['did_for_faber'], steward['key_for_faber'], None, role)
await ledger.sign_and_submit_request(steward['pool'], steward['wallet'], steward['did'], nym_request)
  • Steward tạo yêu cầu kết nối đến Faber
 # Steward Agent
connection_request = {
    'did': steward['did_for_faber'],
    'nonce': 123456789
}
  • Steward gửi yêu cầu kết nối đến Faber (có thể là qua mail, phone, hoăc ...??? không thấy mô tả)
  • Faber nhận yêu cầu kết nối và sau đó tạo sổ cái, nếu nó chưa tồn tại trên Faber Agent
# Faber Agent
await wallet.create_wallet(faber['wallet_config'], faber['wallet_credentials'])
faber['wallet'] = await wallet.open_wallet(faber['wallet_config'], faber['wallet_credentials'])
  • Faber tạo DID mới trong ví để sử dụng trong tương tác bảo mật với Steward
# Faber Agent
(faber['did_for_steward'], faber['key_for_steward']) = await did.create_and_store_my_did(faber['wallet'], "{}")
  • Faber tạo yêu cầu kết nối với Steward
# Faber Agent
connection_response = json.dumps({
    'did': faber['did_for_steward'],
    'verkey': faber['key_for_steward'],
    'nonce': connection_request['nonce']
})
  • Faber hỏi sổ cái về khoá xác minh (verkey) của DID của Steward
# Faber Agent
faber['steward_key_for_faber'] = await did.key_for_did(faber['pool'], faber['wallet'], connection_request['did'])
  • Faber mã hoá ẩn danh phản hồi kết nối bằng khoá xác minh của Steward
# Faber Agent
anoncrypted_connection_response = await crypto.anon_crypt(faber['steward_key_for_faber'], connection_response.encode('utf-8'))
  • Faber gửi phản hồi kết nối được mã hoá ẩn danh đến Steward (không thấy mô tả)
  • Steward giải mã ẩn danh phản hồi kết nối này
# Steward Agent
decrypted_connection_response = \
    (await crypto.anon_decrypt(steward['wallet'], steward['key_for_faber'], anoncrypted_connection_response)).decode("utf-8")
  • Steward chứng thực Faber bằng cách so sánh Nonce
# Steward Agent
assert connection_request['nonce'] == decrypted_connection_response['nonce']
  • Steward gửi giao dịch NYM của DID của Faber tới sổ cái (quá trình tạo DID trên sổ cái gọi là giao dịch NYM). Chú ý, mặc dù Steward là người gửi giao dịch này, chủ sở hữu DID sẽ là Faber vì nó sử dụng khoá xác minh mà Faber cung cấp
# Steward Agent
nym_request = await ledger.build_nym_request(steward['did'], decrypted_connection_response['did'], decrypted_connection_response['verkey'], None, role)
await ledger.sign_and_submit_request(steward['pool'], steward['wallet'], steward['did'], nym_request)





Đại học Harvard chỉ ra 4 sai lầm của cha mẹ khiến con kém thông minh

 Không ăn sáng, thiếu ngủ

Số liệu khảo sát trên 12000 học sinh tiểu học cho thấy: Điểm trung bình của học sinh ăn sáng hàng ngày cao hơn học sinh không thường xuyên ăn sáng.

Trẻ ăn sáng thường xuyên có chỉ số IQ cao hơn trẻ không ăn sáng. Do một bữa ăn sáng lành mạnh sẽ cung cấp carbohydrate thiết yếu, giúp não bộ hoạt động bình thường, cải thiện sự tỉnh táo và tập trung của não bộ.

Nếu trẻ không ăn sáng, lúc 9-10h, trẻ sẽ thấy rất đói, não bộ không tập trung, điều này sẽ ảnh hưởng đến trạng thái học của trẻ, theo đó ảnh hưởng đến điểm số.

Ngoài thói quen ăn uống, thiếu ngủ cũng có thể ảnh hưởng đến chỉ số IQ của trẻ.

Có một "Thí nghiệm về giấc ngủ của Sadf", chia 77 học sinh lớp 4 và lớp 6 thành hai nhóm: nhóm thứ nhất ngủ nhiều hơn bình thường nửa tiếng, và nhóm thứ hai ngủ ít hơn bình thường nửa tiếng.

Đại học Harvard chỉ ra 4 sai lầm của cha mẹ khiến con kém thông minh - Ảnh 2

Trẻ thiếu ngủ ảnh hưởng tới kết quả học tập.

Bốn ngày sau, một cuộc kiểm tra chức năng thần kinh đã đưa ra kết luận đáng ngạc nhiên: Một học sinh lớp sáu thiếu ngủ có kết quả xấp xỉ bằng một học sinh lớp bốn. Nói cách khác, ngủ ít hơn một tiếng đồng hồ bằng cả hai năm học tập và phát triển!

Trẻ ngủ không đủ giấc, ngủ gật trong lớp sẽ ảnh hưởng nghiêm trọng đến trạng thái nghe của trẻ và từ đó ảnh hưởng đến kết quả học tập của trẻ. Đầu óc không tỉnh táo luôn chệnh choạng, tư duy não bộ trong trạng thái ức chế, không thể hưng phấn được, cũng sẽ ảnh hưởng đến hiệu quả học tập, hình thành một vòng luẩn quẩn.

Có thể thấy, ăn uống không điều độ, thiếu ngủ sẽ ảnh hưởng đến trí não của trẻ. .

Các bậc cha mẹ phải cố gắng hết sức để đảm bảo chất lượng bữa sáng và chất lượng giấc ngủ của con mình, đồng thời tránh cho con cái họ rơi vào thói quen của chính chúng.

Bạo lực ngôn ngữ của cha mẹ làm giảm chỉ số IQ của trẻ

Năm 2009, nhóm nghiên cứu của Giáo sư Harvard Techer đã phân tích não của những người trẻ tuổi và phát hiện ra rằng những người thường xuyên bị cha mẹ bạo hành bằng lời nói nghiêm trọng đã làm giảm mối liên hệ giữa vùng Wernicke và thùy trán, ảnh hưởng đến chỉ số IQ ngôn ngữ.

Đồng thời, việc quát mắng cũng làm giảm trí nhớ của trẻ, dẫn đến não trái và não phải phát triển không hoàn thiện, từ đó ảnh hưởng đến chỉ số IQ. Nếu quan sát kỹ, bạn sẽ thấy rằng khi bạn hét lên, phản ứng của trẻ nhìn chung là đờ đẫn, nhìn thẳng và mất hồn. Ngay cả khi bạn la mắng, trẻ vẫn không biết phải làm gì. Thậm chí bạn càng làm vậy, trẻ càng mắc nhiều lỗi hơn.

Đại học Harvard chỉ ra 4 sai lầm của cha mẹ khiến con kém thông minh - Ảnh 3

Trẻ em bị ảnh hưởng bởi những lời quát mắng của cha mẹ. Ảnh minh họa

Bởi vì, trước những lời mắng mỏ của cha mẹ, tâm trí của trẻ căng thẳng cao độ, trong lòng đầy lo sợ.  Nếu để trẻ ở trạng thái này lâu, trẻ sẽ trở nên ngỗ ngược, chậm chạp trong hành vi và càng ngày càng “đơ” hơn.

Cha mẹ nên học cách kiểm soát cảm xúc của mình. Nếu bạn thấy mình đang nổi cơn thịnh nộ, hãy rời khỏi phòng ngay lập tức, ở một mình một lúc, bình tĩnh lại trong 10 phút và sau đó giao tiếp với con cái. Còn hơn là mắng mỏ trẻ không tiếc lời.

Thường xuyên đàn áp và “dán nhãn tiêu cực” cho trẻ

"Đồ vô dụng", "Sao dốt thế"? "," Anh là con lợn à?” … Trên thực tế, những lời này thường xuyên trấn áp tinh thần trẻ và gán cho chúng cái nhãn mình rất ngu ngốc.

Về mặt tâm lý, khi một người bị dán nhãn, anh ta sẽ tự quản lý ấn tượng của bản thân và làm cho chính mình Hành vi phù hợp với nội dung của nhãn. Đây là hiệu ứng "nhãn" nổi tiếng,

Nhà tâm lý học người Mỹ Becol cũng chỉ ra rằng: “Một khi mọi người bị dán nhãn với một loại nhãn nào đó, họ sẽ trở thành người bị nhãn đó dán nhãn”.

Trẻ còn nhỏ, chưa hình thành khả năng tự đánh giá, khả năng suy nghĩ độc lập, còn phụ thuộc nhiều vào cha mẹ nên rất đồng tình với sự đánh giá của cha mẹ về mình.

Đại học Harvard chỉ ra 4 sai lầm của cha mẹ khiến con kém thông minh - Ảnh 4

Trẻ cần được khen ngợi, động viên, khích lệ.

Những nhãn mác mà cha mẹ đặt cho trẻ sẽ trở thành nguồn tham khảo quan trọng để trẻ hình thành tính tự giác. Một khi trẻ chấp nhận gợi ý về cái mác “ngu ngốc” của cha mẹ, đứa trẻ sẽ tự phát triển theo hướng của cái nhãn đó, biến mình thành một đứa trẻ “ngu ngốc”.

Vì vậy, cha mẹ phải Từ chối tất cả các nhãn. Nếu con gặp khó khăn, mẹ hãy nói rõ con sai ở đâu, đúng ở đâu và cách cải thiện trong tương lai.

Đối với những hành vi sai trái không đáng có, cha mẹ nên giảm nhẹ cách xử lý, không nên quá chú ý, tránh để trẻ tạo ấn tượng sâu sắc về hành vi sai trái và hình thành những tín hiệu tiêu cực.

Không thích đọc

Nhà giáo dục Suhomlins từng nói "Tại sao một số trẻ em thông minh và lanh lợi trong thời thơ ấu, nhưng lại trở nên thiếu linh hoạt khi còn trẻ? Bởi vì chúng không biết đọc! ".

Ông cho rằng sự phát triển trí tuệ của học sinh phụ thuộc vào khả năng đọc tốt, đọc không giỏi, tư duy chưa tốt. Một đứa trẻ không biết đọc là học sinh kém tiềm năng trong học tập.

Trẻ em khi chưa hình thành thói quen đọc khi học lớp 1 và lớp 2, sẽ cảm thấy rằng chúng không có đủ vốn từ, không thể nhóm các từ và tạo thành câu, không thể đọc văn bản và không thể hiểu các chủ đề.

Đứa trẻ không hình thành thói quen đọc những bài văn dài trước lớp 4, không đủ kiên nhẫn để đọc xong một cuốn tiểu thuyết, rất có thể sẽ không thể phát triển được tính kiên nhẫn trong suốt cuộc đời.

Nhà văn Lin Yutang, Trung Quốc từng nói: “Những người không có thói quen đọc sách đều bị giam hãm bởi thế giới trước mắt”.

Đại học Harvard chỉ ra 4 sai lầm của cha mẹ khiến con kém thông minh - Ảnh 5

Cần nuôi dưỡng khả năng đọc của trẻ. Ảnh minh họa

Những người không thích đọc sách có tầm nhìn hạn chế, họ không thể nhìn thấy thế giới rộng lớn hơn, đa dạng hơn. Việc trao đổi ý kiến, họ không thể có được những kiến ​​thức mới nhất và bị trì trệ. Những người này có tầm nhìn hạn hẹp, cấu trúc nhỏ, tư duy hạn hẹp và kiến ​​thức hạn chế.

Theo sự tích lũy của thời gian, những người thích đọc và những người không thích đọc, lượng kiến ​​thức, sẽ có sự khác biệt đáng kể tùy theo độ sâu và chiều cao của vấn đề, đó là sự khác biệt giữa những gì chúng ta gọi là "ngu ngốc" và "thông minh".

Nghiên cứu cho thấy, 98% trẻ em có chỉ số IQ tương tự, và chỉ 1% trẻ em là thiên tài. Và 98% những đứa trẻ này ở những nền giáo dục khác nhau thì chỉ số IQ lại xuất hiện sự khác biệt rõ ràng.

Vì vậy, là bậc cha mẹ, khi phàn nàn rằng con mình đã trở nên kém cỏi, tốt hơn là hãy tìm hiểu nội tâm xem cách giáo dục của bạn đã ổn chưa.

source: www.doisongphapluat.com