# 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 認證