# Self-sovereign of Haarlem citizen
## Introduction
哈勒姆市政府為管理法律文件製定了 **IOTA-Blockchain** 解決方案。
ICTU 和 Xurux 受哈勒姆市委託,開發了一個概念性驗證,通過開放源碼 **IOTA-Blockchain** 驗證公共註冊簿中的法律文件,
Xurux 和 ICTU 開發的軟體通過開源 **區塊鏈** 保證法律文件的真實性。在具體情況下,公民可以通過區塊鏈向住房公司證明他或她是哈萊姆市的居民。公民不再需要透過市政廳接受官方認證。
根據 Haarlem 市創新經理兼專案發起人 Bas de Boer 的觀點,概念驗證表明,區塊鏈或相互分散式帳本技術可以在短期內實施。
通過口頭表示,明天就可以部署應用程序。它加強了公共領域的技術和適應性,改善了整個社會。
選擇IOTA意味著比特幣區塊鏈的一些缺點得以解決,比如高能耗,交易成本和相對較慢的交易速度。
該專案作為開放原始碼專案免費發布,供政府和市政機構使用公共註冊摘要。目的是在 2018 年將該申請納入生產。哈萊姆市的福利將是 2 FTE,可用於替代任務。
注意:IOTA使用Tangle 來儲存交易,嚴格來說不是區塊鏈。相互分配賬本將是正確的術語。
Xurux 是一家位於荷蘭 Baarn 的公司,專注於區塊鏈 - MDL 技術。
PS: 阿姆斯特丹正在考慮使用相同的解決方案!
## Basic Architecture
![](https://i.imgur.com/spadaZ5.png)
- - -
![](https://i.imgur.com/VGmFcih.png)
- - -
* [Disciple (official website)](http://discipl.org)
* [Disciple (Github)](https://github.com/discipl/)
![](https://i.imgur.com/sAsO7Aw.png)
- - -
![](https://i.imgur.com/3cxaHhJ.png)
## Open source project
* [Github - digitale-waardepapieren](https://github.com/Haarlem/digitale-waardepapieren)
* [Document (PDF)](https://github.com/Haarlem/digitale-waardepapieren/blob/develop/docs/Waardepapieren-EN.pdf)
## Installation & Usage
[參考文檔](https://github.com/Haarlem/digitale-waardepapieren/tree/develop/poc)
#### Installation:
```$ npm install```
#### Usage:
```$ sh test.sh```
* claimattest.js 向 IOTA 寫入一個認證 (keyed hash of claim),並產生一組 QR CODE (test.png),包含 Claim, 認證以及密鑰。
* 一樣的資訊也會被儲存於 attestedClaim.dat 檔案中。
* attestedClaim.dat 內的資訊可以被 verifier-app.js 驗證。
* claimattest.js 將 MAM channel state 存於 state.tmp 中,且利用該檔打開 MAM channel
```$ node claimattest.js```
**attestedClaim.dat:**
SytyQVNJL3ZWbUZSRm4vTU1sMkY3eXZZSGxIUWdROVNVajhrVWxMejl6ZVIzTnhVTzJBLzcxd1I5d2M0Z0pOYmp4UDBSVzIrUTN6RUNaN2VXdXp0b2c9PSx7IkBpZCIgOiAiZGlkOmRpc2NpcGw6bG9jYWxEWnJXOXBzaFdHUjRGaCs2eDhXRUJpNm1pUy8xVnhDaHJHNmduRERUVVpRWTI0cWFubkxINC9Idlc4bGVJaWpTIiwibmFtZSI6IkpvaG4gRG9lIiwiU3RyZWV0yxRzxREgNyIsIlppcGNvZMQxMTIzNEFBIiwiQ2l0eSI6IkhhYXJsZW3EQFNOxyA1Njc4OSJ9/wDC/wDC/wDCLCAiYXR0ZXN0YXRpb27FZUFJSEdaR1BVQ1pVRlZQSEdNQ0w5TVNXQkM5TFNRRlFKWEZQU0dNU0FKUkJYS1lDQUZRSEhJRUdSOVdHWlhMSElGR0RKV1ZWQkRBTUVMQlZYS8plb3LxAMdpb3RhTklZV1daUVNDVE1FVVRUT1lEWVZaQVZGT0hIQ1FLWUdSQTlQT1dLUzlYTkNTRVNSVk1aQU5GUU5CUkREUFlSQkRPREpMOVlLVFFQU0dZQ1pPIn0=
**test.png:**
https://imgur.com/a/zwOOu
**QR CODE Source:**
QRCode source: K+rASI/vVmFRFn/MMl2F7yvYHlHQgQ9SUj8kUlLz9zeR3NxUO2A/71wR9wc4gJNbjxP0RW2+Q3zECZ7eWuztog==,{"@id" : "did:discipl:localDZrW9pshWGR4Fh+6x8WEBi6miS/1VxChrG6gnDDTUZQY24qannLH4/HvW8leIijS","name":"John Doe","Street":"John Doestreet 7","Zipcode":"1234AA","City":"Haarlem","SSN":"123456789"},{"@id" : "did:discipl:localDZrW9pshWGR4Fh+6x8WEBi6miS/1VxChrG6gnDDTUZQY24qannLH4/HvW8leIijS", "attestation" : "AIHGZGPUCZUFVPHGMCL9MSWBC9LSQFQJXFPSGMSAJRBXKYCAFQHHIEGR9WGZXLHIFGDJWVVBDAMELBVXK", "attestor" : "did:discipl:iotaNIYWWZQSCTMEUTTOYDYVZAVFOHHCQKYGRA9POWKS9XNCSESRVMZANFQNBRDDPYRBDODJL9YKTQPSGYCZO"}
**Validate:**
```$ node verifier-app.js a1.dat```
Waardepapieren POC testscript : verify
Reading QRcode source (a1.dat)...
Read the following information:
Key: K+rASI/vVmFRFn/MMl2F7yvYHlHQgQ9SUj8kUlLz9zeR3NxUO2A/71wR9wc4gJNbjxP0RW2+Q3zECZ7eWuztog==
Claim: {"@id" : "did:discipl:localDZrW9pshWGR4Fh+6x8WEBi6miS/1VxChrG6gnDDTUZQY24qannLH4/HvW8leIijS","name":"John Doe","Street":"John Doestreet 7","Zipcode":"1234AA","City":"Haarlem","SSN":"123456789"}
Attestation reference: AIHGZGPUCZUFVPHGMCL9MSWBC9LSQFQJXFPSGMSAJRBXKYCAFQHHIEGR9WGZXLHIFGDJWVVBDAMELBVXK
Attestator DID: did:discipl:iotaNIYWWZQSCTMEUTTOYDYVZAVFOHHCQKYGRA9POWKS9XNCSESRVMZANFQNBRDDPYRBDODJL9YKTQPSGYCZO
## Glossary:
我們以一個 identity 為例子來看其 identity Claim 的內容:
{"@id" : “did:discipl:localDZrW9pshWGR4Fh+6x8WEBi6miS/1VxChrG6gnDDTUZQY24qannLH4/HvW8leIijS”,“name”:“John Doe”,“Street”:“John Doestreet 7”,“Zipcode”:“1234AA”,“City”:“Haarlem”,“SSN”:“123456789”},{"@id" : “did:discipl:localDZrW9pshWGR4Fh+6x8WEBi6miS/1VxChrG6gnDDTUZQY24qannLH4/HvW8leIijS”, “attestation” : “AIHGZGPUCZUFVPHGMCL9MSWBC9LSQFQJXFPSGMSAJRBXKYCAFQHHIEGR9WGZXLHIFGDJWVVBDAMELBVXK”, “attestor” : “did:discipl:iotaNIYWWZQSCTMEUTTOYDYVZAVFOHHCQKYGRA9POWKS9XNCSESRVMZANFQNBRDDPYRBDODJL9YKTQPSGYCZO”}
* id:UUID
* did:discipl: DID 為 [Decentralized Identifiers](https://w3c-ccg.github.io/did-spec/) 縮寫,此欄位用意不明。
* name:identity 姓名
* Street: 所在街道
* Zipcode: 郵遞區號
* City: 城市
* SSN: 社會安全碼
* attestation: discipl 認證
* attestor: DID 認證