區塊鏈將如何使自動駕駛汽車真正實現自動駕駛?

Alice有一輛自動駕駛的汽車,她用它來上班。她的朋友Bob想了解這輛車,並想讓Alice把車借給給他三天,因為他想參觀一些旅遊景點。現在的問題是Alice如何完全控制Bob的車。有沒有一種方法可以讓她既能保證控制權,又能讓她把車安全借給Bob?自動駕駛汽車本身有沒有辦法決定誰可以駕駛,誰不能駕駛?汽車有自主權嗎?

在研究這個問題之前,請先了解有關分散身份的一些基本知識。

這同樣適用於身份,而不是讓政府控制您的身份,區塊鏈使您可以控制自己的身份並直接與服務提供商合作,同時確保完全透明和負責。

同樣的原則在我們的案例中也適用,因此,自動駕駛汽車將擁有自己獨特的身份,而不是由Alice控制/擁有自動駕駛汽車,並擁有一切自由,可以做真正的自動駕駛汽車。

DID可以識別現在存在的所有已知事物,這是對任何身份宣告控制權的新方法。您,您的孩子,您的汽車,腳踏車,智慧手機都可以透過DID進行唯一標識,並具有自己的身份。唯一的區別是您將成為所有這些實體的監護人,並在需要時將其監護權移交給其他實體。

最吸引人的是“萬物都有自己的特性,並控制自己的特性,這是自我主權同一性的基本原則”

現在我們必須瞭解控制的另一個基本方面

功能與訪問控制列表(Capabilities vs. Access Control Lists)

從根本上說,訪問控制列表是關於身份的授權,而物件能力是關於擁有的授權。

透過身份進行授權是根據特定實體的身份將資源訪問權授予特定實體的過程。這些過程通常會問一個問題:“你是誰?”

擁有權是將擁有資源(例如鑰匙)的任何實體授予訪問權的過程。這些過程通常會問一個問題:“您有適合該鎖的鑰匙嗎?”

因此,在我們的例子中,自動駕駛汽車將有一個能力,允許任何人使用,只要他們擁有許可。這將確保汽車有自己的自主權。誰擁有開啟汽車的鑰匙,誰就是車主。

DID被表示為JSON-LD結構,這些訊息從一個代理傳遞到另一個代理。在我們的案例中,Bob將擁有一個移動錢包,用於儲存其身份。該汽車將擁有自己的雲錢包,這些實體可以安全地在訊息下方交換訊息,並驗證來自區塊鏈的每個身份的所有權。

分散生態系統中的Alice身份:

{
   "@context":[
      "https://example.org/did/v1",
      "https://example.org/ocap/v1",
      "http://schema.org"
   ],
   "id":"did:example:83f75926-51ba-4472-84ff-51f5e39ab9ab",
   "type":"Person",
   "name":"Alice",
   "publicKey":[
      {
         "id":"did:example:83f75926-51ba-4472-84ff-51f5e39ab9ab#key-1",
         "owner":"did:example:83f75926-51ba-4472-84ff-51f5e39ab9ab",
         "publicKeyPem":"-----BEGIN PUBLIC KEY-----\r\n..."
      }
   ]
}

瞭解上述結構

id-DID,唯一標識一個人或物體
publicKey-顯示此文件所有權的方式
id-代表誰控制此身份,它是alice DID金鑰
owner -Alice did
publicKeyPem:用於使用私鑰對文件進行簽名的公鑰

汽車身份:

{
   "@context":[
      "https://example.org/did/v1",
      "https://example.org/ocap/v1",
      "http://schema.org"
   ],
   "id":"https://autocar12A15.example/a-fancy-car",
   "type":"Service",
   "name":"Autonomous Car 12A15",
   "publicKey":[
      {
         "id":"did:example:0b36c784-f9f4-4c1e-b76c-d821a4b32741#key-1",
         "owner":"did:example:0b36c784-f9f4-4c1e-b76c-d821a4b32741",
         "publicKeyPem":"-----BEGIN PUBLIC KEY-----\r\n..."
      }
   ]
}

Bob身份:

{
   "@context":[
      "https://example.org/did/v1",
      "https://example.org/ocap/v1",
      "http://schema.org"
   ],
   "id":"did:example:ee568de7-2970-4925-ad09-c685ab367b66",
   "type":"Person",
   "name":"Bob",
   "publicKey":[
      {
         "id":"did:example:ee568de7-2970-4925-ad09-c685ab367b66#key-1",
         "owner":"did:example:ee568de7-2970-4925-ad09-c685ab367b66",
         "publicKeyPem":"-----BEGIN PUBLIC KEY-----\r\n..."
      }
   ]
}

現在,Alice能夠使用car 12A15:

{
   "@context":[
      "https://w3id.org/security/v2",
      "https://autopower.example/"
   ],
   "id":"https://autocar12A15.example/a-fancy-car/proc/7a397d7b",
   "parentCapability":"https://autocar12A15.example/a-fancy-car",
   "invoker":"https://social.example/alice#key-for-car",
   "proof":{
      "type":"Ed25519Signature2018",
      "created":"2018-02-13T21:26:08Z",
      "capabilityChain":[
         "https://autocar12A15.example/a-fancy-car"
      ],
      "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..lfAFjrWE-4RxhL0gtzSMRX72NR9SRDgaMmkjPA4if0ERbw4R2bnts5sAs8OyhAlbFzBAKOqrFk57AYqwSR2vCw",
      "proofPurpose":"capabilityDelegation",
      "verificationMethod":"https://example.com/i/alice/keys/1"
   }
}

瞭解以上結構:

· parentCapability-由於這是第一個委派的功能,parentCapability指向此功能將要針對的目標(在本例中為Alice's Car)
· invoker:我們正在專門授予Alice的一個加密金鑰的授權
· Proof : 最後,我們使用來自Alice Car的capabilityDelegation欄位的加密材料對該物件進行簽名,並使用capabilityDelegationproofPurpose。
· 注意:更改了alice,bob和Car的DID,只是為了直觀地瞭解誰是關鍵。

開啟汽車,用Alice寫的“去辦公室”:

{
   "@context":[
      "https://example.org/zcap/v1",
      "https://autopower.example/"
   ],
   "id":"urn:uuid:ad86cb2c-e9db-434a-beae-71b82120a8a4",
   "action":"Drive",
   "proof":{
      "type":"RsaSignature2016",
      "proofPurpose":"capabilityInvocation",
      "capability":"https://autocar12A15.example/a-fancy-car/proc/7a397d7b",
      "created":"2016-02-08T17:13:48Z",
      "creator":"https://social.example/alice/#key-for-car",
      "signatureValue":"..."
   }
}

action-要執行什麼樣的動作Drive-開啟汽車併到達辦公室
capabiltiy:在此汽車上的能力取決於汽車12A15

現在回到問題上來,Bob請求Alice讓他用幾天車。在這種情況下,Alice使用警告將使用汽車的責任委託給Bob

{
   "@context":[
      "https://example.org/zcap/v1",
      "https://autopower.example/"
   ],
   "id":"https://social.example/alice/caps#79795d78",
   "parentCapability":"https://autocar12A15.example/a-fancy-car/proc/7a397d7b",
   "invoker":"https://bob.example/bob/#key-33",
   "caveat":[
      {
         "type":"ValidWhileTrue",
         "uri":"https://social.example/alice/bob-can-still-use-car"
      }
   ],
   "proof":{
      "type":"RsaSignature2016",
      "proofPurpose":"capabilityDelegation",
      "created":"2017-03-28T06:01:25Z",
      "creator":"https://social.example/alice/#key-for-car",
      "signatureValue":"..."
   }
}
警告:它允許將來撤銷,只要警告是真的,Bob可以使用Alice汽車,或者以其他方式autocar12A15將允許Bob使用其服務,只要警告成立。
invoker : Alice授予對Bob金鑰之一的訪問權
proof: Alice用她被授予對autocar12A15的授權權的金鑰

Bob去了一家旅館,並委託代客(Carol)放權並增加了限制,要求代客泊車,以免代客在旅館內搭便車。

{
   "@context":[
      "https://example.org/zcap/v1",
      "https://autopower.example/"
   ],
   "id":"https://bob.example/bob/caps#2cdea8c1",
   "parentCapability":"https://social.example/alice/caps#79795d78",
   "invoker":"https://carol.example/#key-bf36",
   "caveat":[
      {
         "type":"DriveNoMoreThan",
         "kilometers":4000
      }
   ],
   "proof":{
      "type":"RsaSignature2016",
      "proofPurpose":"capabilityDelegation",
      "created":"2017-06-13T19:15:03Z",
      "creator":"https://bob.example/bob/#key-33",
      "signatureValue":"..."
   }
}
//警告:Alice的儀表顯示目前行駛了3995公里,因此這隻比當前值多了5公里
invoker : 授權卡羅爾使用汽車服務
proof: Bob簽署了這個物件,現在autocar12A15將允許carol使用其服務,如果需要,carol最多可以使用5公里的路程

CapabilityInvocation和CapabilityDelegation是DID的兩個重要屬性,可讓使用者控制IoT裝置,智慧汽車,數字裝置等非生物物品。

DID僅透過證明加密金鑰的所有權即可確保實體的存在,並且無需人工干預即可與其他實體進行互動。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读